A secure digital wallet application with peer-to-peer payments, bank transfers, and transaction management.
- User Authentication : Uses NextAuth for Sign up & Sign in.
- Onramp transactions : Transfer money from bank account to wallet.
- P2P transactions : Transfer money to peers.
- Transaction history : Showcases history of past On-ramp & P2P transactions.
Frontend
- Next.js 15 - React framework
- TypeScript - Type safety
- Tailwind CSS - Styling
Backend
Database
- PostgreSQL - Primary database
DevOps & Infrastructure
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- GitHub Actions - CI/CD pipeline
Architecture
- Turborepo - Monorepo management
To get a local copy up and running, follow these simple steps.
- Node.js (Version: >=18.x)
- Docker
- Clone the repo
git clone git@github.com:aadityasingh9601/Paytm.git- Go to the project folder
cd paytm- Install packages
npm install- Setting up
.envfiles
-
Duplicate
.env.exampleto.envcp apps/user-app/.env.example apps/user-app/.env cp apps/mock-bank/.env.example apps/mock-bank/.env cp apps/bank-webhook/.env.example apps/bank-webhook/.env cp packages/db/.env.example packages/db/.env
-
Use
openssl rand -base64 32to generate a key and add it underNEXTAUTH_SECRETin theapps/user-app/.envfile.
- Setup postgres database locally using docker
docker compose up db- Apply database migrations
npm run db:migrate-dev- Generate prisma client
npm run db:generate- Run the development server
npm run dev- Setting up
.envfile
-
Duplicate
.env.exampleto.envcp .env.example .env
-
Use
openssl rand -base64 32to generate a key and add it underNEXTAUTH_SECRETin theapps/user-app/.envfile.
- Run the development server
docker compose up- To gracefully stop the development server
docker compose downCreate .env.test file in the root directory and set the environment variable DATABASE_URL in the .env.test file. The
value should be postgresql://postgres:mysecretpassword@localhost:5432/paytm_test_db.
# In a terminal just run:
./scripts/run-e2e.sh
# To open the last HTML report run:
npx playwright show-reportRun npx playwright install --with-deps to download the test browsers and the dependencies.
- GitHub: https://github.com/aadityasingh9601
- LinkedIn: https://www.linkedin.com/in/aadityasingh999
- X: https://x.com/AadityaSingh771
- Portfolio: https://aadityasingh.dev
