Simple Slack lite clone for users to create teams and channels to collaborate via chat in real time.
- Node.js
- Express
- TypeScript
- Redis
- Postgres
- TypeOrm
- Type-Graphql
- Apollo-Server
- Docker
- Next.js
- Styled-Components
- Apollo-Client
Dependencies needs to be installed from both directories. Run both of these commands from root directory.
yarn can be replaced with npm i if using npm is preferred.
$ cd client && yarn
$ cd server && yarn
Install PostgreSQL and create a new database instance for this project. If psql isn't installed, follow installation guide.
$ psql
$ CREATE DATABASE 'database name';
Install Redis and make sure redis server is running. Redis installation.
Start redis server:
$ redis-server
Check if Redis is working by sending a PING command using redis-cli:
$ redis-cli ping
Redis will send a response if its working correct with:
PONG
Both client and server directories require a .env file. Rename .env.example to .env and fill out the remaining required environment variables to run this project.
In server directory, rename ormconfig-example.json to ormconfig.json to match the database config to your psql configurations for this project.
To run this project create a seperate terminal window and run both of these commands from root:
- Replace
yarn devwithnpm run devif usingnpm.
$ cd client && yarn dev
$ cd server && yarn dev
- Responsive design for mobile
- Batching sequel queries for more optimization
- Private teams and channels
- Document (PDF, DOC, etc) uploads (currently only supports images)
- User status
