A full-stack payment application built with TypeScript, Node.js, and Nextjs.
- User Authentication
- Account Management
- Money Transfer
- Transaction History
- Real-time Balance Updates
- Node.js
- Express.js
- TypeScript
- Prisma (PostgreSQL)
- Zod (Schema Validation)
- NextJs
- TypeScript
- Tailwind CSS
- Node.js (v18 or higher)
- PostgreSQL
- pnpm (recommended) or npm
- Clone the repository:
git clone <repository-url>
cd paytm- Install dependencies:
pnpm install- Set up environment variables:
# Create .env file in apps/http_server
DATABASE_URL="postgresql://username:password@localhost:5432/paytm_db"
PORT=8000- Set up the database:
cd packages/db
pnpm prisma migrate dev
pnpm prisma generatecd apps/http_server
pnpm devcd apps/web
pnpm devThe application will be available at:
- Backend: http://localhost:8000
- Frontend: http://localhost:3000
## 🔧 Turborepo Configuration
The project uses Turborepo for managing the monorepo workspace. Key configurations:
- **Workspace Management**: Using pnpm workspaces
- **Build Pipeline**: Configured in `turbo.json`
- **Shared Dependencies**: Managed through the root `package.json`
- **Development Scripts**: Unified commands for all packages
## 🔒 Environment Variables
### Backend (.env)
```env
DATABASE_URL="postgresql://username:password@localhost:5432/paytm_db"
PORT=8000
- POST /api/v1/auth/register
- POST /api/v1/auth/login
- POST /api/v1/transaction/send-money
- GET /api/v1/transaction/history
- GET /api/v1/account/balance
- GET /api/v1/account/details
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Krishan Kumar Safi