Status: On hold until refactor using Nest
A demo project to showcase different technologies and how they work together. The ultimate goal is to have a full-stack, production-ready application.
You can use the setup.sh
script to run it locally.
The goal for this project is to be a "domain driven" starter that will help you bootstrap a new application in seconds and just work your business logic instead of all the bootstrapping.
Inspired by ts-app, this project aims to be a little lighter version of that project, with clearer separation of frontend and backend code. And a bigger focus and metrics and monitoring.
You can start by running:
sh ./setup.sh
You can also start the project locally:
yarn dev
After you finish you can clean your setup with:
sh ./clean.sh
Work in progress.
-
Backend
- Node.js
- Express
- tsoa
- Generates Express Routes from TypeScript controllers
- Generates OpenAPI ("Swagger") specification, enabling automatic documentation
- SQLite as a local development database
- PostgreSQL as RDBMS
- TypeORM for code-first database migrations and ORM queries
- Redis for caching
-
Developer environment
- docker and docker-compose for non-Node.js project dependencies
- VSCode, eslint and prettier for a consistent development experience
- A setup script
setup.sh
to help you get started in a guided way.
-
Frontend
-
Testing
- TBD
A high-level list of
- SQLite in dev
- PG in docker
- Redis for cache
- Setup script
- Setup initial DB data in a migration
- Prometheus for metrics
- Grafana for monitoring
- Frontend: CRA for client
- Frontend: validation using Yup, mui-rff
- Cache redis on get /users query
- Kafka producer for real-time events
- Nginx for web-server
- Kafka consumer for real-time events
- Web-Socket
- Start-up script
- Refactor backend to use Nest
- Refactor frontend to use Next (or remix)
- Secure Nginx
- Generate client from swagger.json
- Deploy on a production environment (OVH, GCP, AWS..)