A real-time chat web app where users can log in, add friends and communicate with them in real time. This application was built publicly with the entire build process avaiable on YouTube in a tutorial format.
This was a passion project. I built it for fun and to challenge myself.
Through the creation of this project I gained a foundation in systems design and project management.
I learned how to use JWT for authentication and the basics of NGINX.
Most of my growth came from the back-end implementations as I used front-end technology that was familiar to me.
- client - react.js frontend
- server - node.js backend
- common - code shared between client and server
- Front-End: React.js
- Back-End: Node.js / Express.js / Socket.io
- Authenticaion: JWT
- Database: PostgreSQL and Redis
- Hosting: Digital Ocean Linux Server with NGINX and SSL
- Clone the repository
- CD into the repository and run
yarn
ornpm install
- Make sure redis is installed and the
redis-cli
functions properly - Create a postgres database and a table called users, as defined in
./packages/server/database.sql
- Create a file named
.env
in./packages/server
and make sure it has the following variables defined:
DATABASE_NAME=
DATABASE_HOST=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_PORT=
COOKIE_SECRET= - Run
yarn dev:server
andyarn dev:client