This repo is a Single Page Application with schema first approach for backend/frontend api server/client, code first approach for database. Tech Stacks are:
-
Frontend
- React (Typescript) for frontend.
- MaterialUI (>= v5.0.0) for UI component library. For styling, we use styled utility.
- eslint as linter.
- Prettier as formatter.
- Jest for unit tests.
- Testing libraray for integration tests.
- Fetch API as API client.
- React query for state management.
- Storybook for UI catalog and documentation.
- openapi-codegen to automatically generate api client and react query hooks from schema.
-
Backend
- FastAPI(Python 3.11) for backend.
- PostgreSQL for the database.
- SqlAlchemy for ORM.
- Celery for background tasks.
- Alembic for database migrations.
- Pytest for backend tests.
- Ruff as linter and formatter.
- openapi-generator to automatically generate api server from schema.
-
Infra
Docker compose is a tool to define and run multi-container applications. If you want to only build containers, you can run
./react-ts-sandbox $ docker compose build
To create and start containers containers,
./react-ts-sandbox $ docker compose up
If you want run on background,
./react-ts-sandbox $ docker compose up -d
To start|restart|stop|kill,
./react-ts-sandbox $ docker compose start|restart|stop|kill
Very simple cheetsheet is here