Chatify API is a REST API for chatting application with real-time features built with NestJS as the core technology.
Project using a PostgreSQL as a database providing high data-consistency, with TypeORM for safe and efficient manipulations with DB,
and WebSockets for bidirectional and real-time user experience.
- Authorization: custom authorization build with JWT access and refresh tokens.
- User profile: view users public information or update personal public data.
- Direct chats: private chats between two users with secure message encryption and decryption.
- NestJS: A progressive Node.js framework for efficient and scalable server-side apps.
- PostgreSQL: Powerful, open-source relational database for high data consistency and scalability.
- TypeORM: ORM for TypeScript that supports multiple databases and provides flexible and safe interactions with DB.
- WebSockets: Provides bidirectional communication channels between server and client and allows to implement real-time features.
- Docker: Containerization technology for software that allows to run the same project everywhere with the same result.
Pre-requirements - create a .env file with configured variables
npm install
# dev
npm run start:dev
# prod
npm run build
npm run start:prod # build from local Dockerfile (only API)
docker build -t <image-name>:<tag> .
docker run -d --env-file <path-to-env-file> --name <container-name> <image-name>:<tag>
# build from docker-compose (API and database)
docker-compose up --build -d
# or use Makefile
make up