demo-project icon indicating copy to clipboard operation
demo-project copied to clipboard

Full-stack TypeScript application

Demo-Project: Full-stack TypeScript Application

Status: On hold until refactor using Nest

backend backend-realtime frontend

chart

A demo project to showcase different technologies and how they work together. The ultimate goal is to have a full-stack, production-ready application.

ui

You can use the setup.sh script to run it locally.

asciicast

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.

Where do I start

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

Status

Work in progress.

System Requirements

Technologies Used

Todo

A high-level list of

  • [x] SQLite in dev
  • [x] PG in docker
  • [x] Redis for cache
  • [x] Setup script
  • [x] Setup initial DB data in a migration
  • [x] Prometheus for metrics
  • [x] Grafana for monitoring
  • [x] Frontend: CRA for client
  • [x] Frontend: validation using Yup, mui-rff
  • [x] Cache redis on get /users query
  • [x] Kafka producer for real-time events
  • [x] Nginx for web-server
  • [x] Kafka consumer for real-time events
  • [x] Web-Socket
  • [x] 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..)

FOSSA Status