NOTE: This project will not be completed due to paystacks limitations on starter business accounts, preventing implementation of features such as Withdrawals(payouts/tranfers). Sidenote: I learnt what i wanted to learn so 🤷♂️
I developed this project to serve as an system allowing registered users to store money in virtual wallets, withdraw money from the wallets and lock money for a duration and release it on a specified date back into their wallets.
This project was built using a progressive nodejs framework, Nestjs, the underlying payment service's are provided by Paystack, as for data storage I used a Redis container for caching, a Postgres container for data persistence and Cloudinary for image storage, Prisma is my ORM of choice.
- Withdrawal of money from waller.
- Track money withdrawn through webhooks.
- Send apporiate mails to users based on the webhook tracking results.
- Lock their money, escrow stuff.
- Setup dynamic schedules to hold users money for a specified period of time.
- Release users money back into there wallet once the time is right.
- I guess thats all
- Create a .env file in the project root directory.
- Ensure all the environment variables are provided as described in the env.example.txt file.
- run
docker compose up -d
- run
npm run start:dev
- server should be runing on http://localhost:/api/v1