Full-Stack app for practicing Clean Architecture and safe JWT authorization.
- Node.js
- Express.js
- PostgresQL
- TypeORM
- GraphQL
- Apollo
- TypeGraphQ
- GraphQL Code Generator
- React.
- An implementation for safe usage of JWT authorization - Using access and refresh tokens mechanism for silent refreshes.
- Utilizes GraphQL Code Generator in order to build strict types on the client-side from the GraphQL schema and operations.
- Implements concepts demonstrated in Robert Cecil Martin's Clean Architectural Design.
Steps to run this project:
- Run
npm i
command for both client and server. - Setup database settings inside
ormconfig.json
file in the server directory. - Setup
.env
in the server directory with the following structure:
NODE_ENV=<"development" | "production" | "staging" | "test">
JWT_ACCESS_KEY=<Your private key for JWT access token generation>
JWT_REFRESH_KEY=<Your private key for JWT access token generation>
PORT=<The desired port to run the server on>
CLIENT_HOST=<The client app host, e.g, "http://localhost:3000">
- Run
npm start
command for both the server and the client.