This is a Full-stack Project developed as part of the CHALLENGE.md.
This README provides instructions on setting up and running the application to manually test its features.
- Node.js: 18.18.2
- Yarn: 1.22.22
Before starting, ensure you define the required environment variables using a .env
file. Refer to .env.example
for the necessary variables.
Run the backend locally with the following commands:
yarn
yarn start:dev
Alternatively, you can use Docker Compose:
chmod +x ./setup-dev
./setup-dev # ⚠️ Warning: This will remove ALL running and stopped containers.
docker compose up -d
Once started, the API will be available at http://localhost:3000
by default. You can customize the port using the PORT
variable in the .env
file.
Access the built-in API documentation at the /api-docs
endpoint.
⚠️ Note: The batch service works only when using Docker Compose, as it requires RabbitMQ to function.
The Consumer is preconfigured to connect to RabbitMQ's default local URL, which is exposed via Docker Compose. To run the Consumer, use the following commands:
yarn
yarn start:dev
To start the frontend application, run:
yarn
yarn dev
This project is still a work in progress and lacks features like Unit Tests, Resilience, and Infrastructure as Code. Below are specific tasks planned for each component:
- Add a relation between
assignor
andpayable
in Prisma. - Define a default queue in Prisma.
- Limit field lengths in Prisma.
- Review and remove unused code.
- Validate input data and display error messages to users.
- Turn this repo into a functional monorepo.
I created a simple design to guide the development of the frontend interface. You can view it on Figma.