Backend services to manage user accounts and their transactions. It comprises two main components: the Account Service and the Payment Service.
Deals with:
- User authentication
- User registration
Made for:
- Deposits, transfers, and withdrawals
- Transaction history
- Supabase (auth)
- Go + Gin Gonic
- Typescript + Fastify + Prisma
- PostgreSQL
- Nginx
- Docker compose
- Supabase as a third-party service that helps managing the authentication and authorization part of the system.
- Nginx wraps the API services to make them easier to access
- PostgreSQL is utilized to retain data (that are not handled by Supabase; e.g. transactions, payment accounts, etc.)
- Both services do not communicate directly, instead the payment manager accesses the token that is provided by Supabase, generated by authenticating through the account manager.
git clone https://github.com/titanrukmana/be-assignment.gitGo to the project directory
cd my-projectPlease refer to the existing .env.example or see the instructions below:
- root
.env
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
POSTGRES_PORT=- account_service
.env
SUPABASE_URL=
SUPABASE_ANON_KEY=- payment_service
.env
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_DB=
DATABASE_HOST=
DATABASE_PORT=
DATABASE_URL="postgresql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DB}?schema=public"
SUPABASE_URL=
SUPABASE_ANON_KEY=Run this from the root directory:
docker-compose up -d