Digital cash equivalent.
This project is a monorepo set up using Turborepo.
.
βββ apps
β βββ account-service
β βββ atm
β βββ payment-service
β βββ web
βββ deployment
β βββ nginx-config
βββ docker-compose.yml
βββ packages
βββ accounts
βββ api
βββ config-eslint
βββ config-typescript
βββ payments
apps- Contains the services & applications that make up the projectaccount-service- The account service backend (Express.js, TypeScript)atm- The ATM frontend application (React.js, TypeScript)payment-service- The payment service backend (Express.js, TypeScript)web- The frontend web application (React.js, TypeScript)
deployment- Contains the deployment configurations for the projectnginx-config- Contains the Nginx configuration for the project
docker-compose.yml- The Docker Compose configuration for the projectpackages- Contains the shared packages used across the projectaccounts- Contains the account database client (Prisma)api- Contains the shared API client (Axios)config-eslint- Contains the shared ESLint configurationconfig-typescript- Contains the shared TypeScript configurationpayments- Contains the payment database client (Prisma)
The project is managed using Docker Compose. Simply run the build command to deploy:
docker compose upOnce deployed & up & running, you will need to create & deploy migrations to your database to add the necessary tables. This can be done using Prisma Migrate:
npx prisma migrate devIf you need to push any existing migrations to the database, you can use either the Prisma db push or the Prisma migrate deploy command(s):
yarn run db:push
# OR
yarn run db:migrate:deployThere is slight difference between the two commands & Prisma offers a breakdown on which command is best to use.
An optional additional step is to seed some initial or fake data to your database using Prisma's seeding functionality.
yarn run db:seedLearn more about the power of Turborepo: