/cex

A centralized crypto currency exchange

Primary LanguageTypeScript

A centralized crypto currency exchange

This project uses lerna

How to run locally:

  • Clone the repo and run the yarn install and yarn build
  • Run the yarn start:dev command to start the services.

Project structure

  • packages/app
  • packages/crypto-lib
  • packages/db-lib
  • packages/price
  • packages/redis-lib
  • packages/signer

*-lib(e.g crypto-lib, db-lib, redis-lib) is a dependency of app (and most likely other services). To ensure changes to *-lib are reflected across board, always run yarn build in the root of the project

Services (view the docker-compose.local-yml for more details)

- db (postgres database)
- redis
- app (the main application that serves api requests)
- worker (a worker that handles background task and jobs, it runs the same code as the app)
- signer (a service for signing transactions)
- price (a service for communicating crypto prices in real-time)

The app has two entry points.

  1. src/main.ts
  2. src/worker.ts

The application uses typeorm as the ORM.

Ensure to run the database migrations immediately after starting the services.

cd packages/db-lib/

yarn exec:typeorm migration:run

If there are ever permission issues when running the bash scripts, use chmod command to grant the required privileges.

cd /path/to/target
chmod +x the_file_name

Thanks AskUbuntu 🚀🚀

Read the Documentation to understand the project better