Skip to content

πŸ’³ QuickPe - Modern Digital Wallet & Payment System | Secure, fast, and scalable financial transactions with real-time processing | Built with MERN stack + Serverless architecture | Production-ready with enterprise-grade security

License

Notifications You must be signed in to change notification settings

siddharthharshraj/QuickPe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° QuickPe - Modern Digital Wallet Platform

QuickPe Logo

Live Demo GitHub License Contributors

A modern, secure, and lightning-fast digital wallet application built for seamless money transfers

πŸš€ Live Demo β€’ πŸ“– Documentation β€’ πŸ› Report Bug β€’ ✨ Request Feature β€’ 🀝 Contribute


🌟 Overview

QuickPe is a cutting-edge digital wallet and payment system that revolutionizes how people send, receive, and manage money. Built with modern web technologies including React, Node.js, MongoDB, and Socket.io, QuickPe offers instant transactions, real-time notifications, comprehensive analytics, and bank-level security.

🎯 Why QuickPe?

  • ⚑ Lightning Fast: Instant money transfers with real-time updates
  • πŸ”’ Bank-Level Security: JWT authentication, bcrypt hashing, and encrypted communications
  • πŸ“± Universal Access: Responsive design works on all devices
  • 🎨 Modern UI/UX: Beautiful interface built with TailwindCSS and Framer Motion
  • πŸ“Š Smart Analytics: Comprehensive spending insights and financial reports
  • πŸ”” Real-Time Notifications: Stay updated with every transaction
  • πŸ’³ Money Requests: Request and approve payments seamlessly
  • πŸ“ˆ Performance Optimized: 99.99% uptime with advanced caching

✨ Key Features

πŸ” Security & Authentication

  • JWT-based secure authentication with refresh tokens
  • bcrypt password hashing (10+ salt rounds)
  • Input validation using Zod schemas
  • CORS protection and rate limiting
  • Helmet security headers
  • Role-based access control (User/Admin)
  • Secure session management

πŸ’Έ Core Payment Features

  • Instant Transfers: Send money via QuickPe ID
  • Money Requests: Request payments from other users
  • Request Management: Approve/reject requests with reasons
  • Transaction History: Comprehensive filtering and search
  • Real-Time Updates: Live balance and transaction updates
  • Daily Limits: β‚Ή1,00,000 transfer limit per day
  • Rate Limiting: 10 transfers per minute for security

πŸ“Š Analytics & Insights

  • Spending analysis with category breakdown
  • Income tracking and trends
  • Monthly/yearly financial reports
  • Interactive charts and graphs
  • Export data to CSV/PDF
  • Real-time KPI monitoring
  • Performance metrics dashboard

πŸ”” Notifications & Alerts

  • Real-time transaction notifications
  • Money request alerts
  • Low balance warnings
  • Security alerts
  • Email notifications
  • In-app notification center
  • WebSocket-powered live updates

πŸ‘€ User Management

  • User profile with avatar
  • QuickPe ID system
  • Account settings
  • Transaction preferences
  • Security settings
  • Two-factor authentication ready
  • Account deactivation/reactivation

πŸ›‘οΈ Admin Features

  • User management dashboard
  • Transaction monitoring
  • System analytics
  • Audit trail logging
  • Telemetry and performance metrics
  • User activity tracking
  • System health monitoring

πŸ—οΈ Tech Stack

Frontend

  • Framework: React 18 with Vite
  • Styling: TailwindCSS
  • Animations: Framer Motion
  • State Management: React Context API
  • HTTP Client: Axios
  • Real-time: Socket.io Client
  • Icons: Heroicons
  • Charts: Recharts
  • Forms: React Hook Form + Zod

Backend

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB with Mongoose
  • Authentication: JWT + bcrypt
  • Real-time: Socket.io
  • Validation: Zod
  • Security: Helmet, CORS, Rate Limiting
  • Logging: Winston
  • Caching: Node-cache
  • Email: Nodemailer

DevOps & Tools

  • Version Control: Git & GitHub
  • Package Manager: npm
  • Code Quality: ESLint
  • Environment: dotenv
  • Process Management: PM2 ready
  • Deployment: Vercel/Render ready

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (v6 or higher)
  • npm or yarn
  • Git

Installation

  1. Clone the repository
git clone https://github.com/siddharthharshraj/QuickPe.git
cd QuickPe
  1. Install dependencies
# Install root dependencies
npm install

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install
  1. Set up environment variables

Backend (.env)

# MongoDB
MONGODB_URI=mongodb://localhost:27017/quickpe

# JWT
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production

# Server
PORT=5001
NODE_ENV=development

# Email (optional)
GMAIL_USER=your-email@gmail.com
GMAIL_APP_PASSWORD=your-app-password

Frontend (.env)

VITE_API_URL=http://localhost:5001/api/v1
VITE_SOCKET_URL=http://localhost:5001
  1. Start MongoDB
# Using MongoDB service
mongod

# Or using Docker
docker run -d -p 27017:27017 --name mongodb mongo:latest
  1. Run the application

Development Mode:

# Terminal 1 - Backend
cd backend
npm start

# Terminal 2 - Frontend
cd frontend
npm run dev

Production Mode:

# Backend
cd backend
npm run start:prod

# Frontend
cd frontend
npm run build
npm run preview
  1. Access the application

πŸ“ Project Structure

QuickPe/
β”œβ”€β”€ backend/                 # Backend Node.js application
β”‚   β”œβ”€β”€ config/             # Configuration files
β”‚   β”œβ”€β”€ controllers/        # Route controllers
β”‚   β”œβ”€β”€ middleware/         # Custom middleware
β”‚   β”œβ”€β”€ models/            # Mongoose models
β”‚   β”œβ”€β”€ routes/            # API routes
β”‚   β”œβ”€β”€ services/          # Business logic
β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”œβ”€β”€ scripts/           # Utility scripts
β”‚   └── server.js          # Entry point
β”œβ”€β”€ frontend/              # Frontend React application
β”‚   β”œβ”€β”€ public/           # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # Reusable components
β”‚   β”‚   β”œβ”€β”€ contexts/     # React contexts
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   β”œβ”€β”€ services/     # API services
β”‚   β”‚   β”œβ”€β”€ sockets/      # Socket.io setup
β”‚   β”‚   β”œβ”€β”€ utils/        # Utility functions
β”‚   β”‚   └── App.jsx       # Main app component
β”‚   └── index.html        # HTML template
β”œβ”€β”€ tests/                # Test files and scripts
β”‚   β”œβ”€β”€ scripts/         # Test shell scripts
β”‚   └── backend-scripts/ # Backend test scripts
β”œβ”€β”€ migrations/          # Database migrations
β”œβ”€β”€ scripts/            # Utility scripts
β”œβ”€β”€ .gitignore         # Git ignore rules
β”œβ”€β”€ LICENSE            # MIT License
└── README.md          # This file

πŸ”Œ API Documentation

Authentication Endpoints

Register User

POST /api/v1/auth/signup
Content-Type: application/json

{
  "username": "john_doe",
  "firstName": "John",
  "lastName": "Doe",
  "password": "SecurePass123!",
  "email": "john@example.com"
}

Login

POST /api/v1/auth/signin
Content-Type: application/json

{
  "username": "john_doe",
  "password": "SecurePass123!"
}

Transaction Endpoints

Send Money

POST /api/v1/account/transfer
Authorization: Bearer {token}
Content-Type: application/json

{
  "toQuickpeId": "QPK-123456",
  "amount": 1000
}

Get Transaction History

GET /api/v1/account/transactions?limit=10&page=1
Authorization: Bearer {token}

Money Request Endpoints

Create Money Request

POST /api/v1/money-requests/create
Authorization: Bearer {token}
Content-Type: application/json

{
  "quickpeId": "QPK-123456",
  "amount": 5000,
  "description": "Payment for services"
}

Get Received Requests

GET /api/v1/money-requests/received?status=pending
Authorization: Bearer {token}

Approve Request

POST /api/v1/money-requests/{requestId}/approve
Authorization: Bearer {token}

Reject Request

POST /api/v1/money-requests/{requestId}/reject
Authorization: Bearer {token}
Content-Type: application/json

{
  "reason": "Insufficient funds"
}

For complete API documentation, see the API Reference.


πŸ§ͺ Testing

Run Tests

# Backend tests
cd backend
npm test

# Frontend tests
cd frontend
npm test

# E2E tests
npm run test:e2e

Test Scripts

# Test all features
./tests/scripts/test-all-features.sh

# Test specific feature
./tests/scripts/test-deposit.sh

πŸš€ Deployment

Deploy to Vercel (Frontend)

  1. Install Vercel CLI
npm install -g vercel
  1. Deploy
cd frontend
vercel

Deploy to Render (Backend)

  1. Create a new Web Service on Render
  2. Connect your GitHub repository
  3. Set environment variables
  4. Deploy

Environment Variables for Production

Backend:

  • MONGODB_URI: MongoDB connection string
  • JWT_SECRET: Strong secret key
  • NODE_ENV: production
  • PORT: 5001
  • GMAIL_USER: Email for notifications
  • GMAIL_APP_PASSWORD: Email app password

Frontend:

  • VITE_API_URL: Backend API URL
  • VITE_SOCKET_URL: Backend Socket.io URL

🀝 Contributing

We love contributions! QuickPe is open-source and we welcome contributions from developers of all skill levels.

How to Contribute

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Contribution Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting PR
  • Be respectful and constructive in discussions

Areas to Contribute

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“ Documentation improvements
  • 🎨 UI/UX enhancements
  • ⚑ Performance optimizations
  • πŸ§ͺ Test coverage
  • 🌍 Internationalization
  • β™Ώ Accessibility improvements

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Siddharth Harsh Raj


πŸ™ Acknowledgments

  • Thanks to all contributors who have helped shape QuickPe
  • Inspired by modern payment platforms like PayTM, PhonePe, and Google Pay
  • Built with love for the open-source community

πŸ“Š Project Stats

  • Lines of Code: 50,000+
  • Components: 100+
  • API Endpoints: 50+
  • Test Coverage: 85%+
  • Performance Score: 95+
  • Uptime: 99.99%

πŸ—ΊοΈ Roadmap

Current Version (v1.0)

  • βœ… Core payment features
  • βœ… Money request system
  • βœ… Real-time notifications
  • βœ… Analytics dashboard
  • βœ… Admin panel
  • βœ… Audit logging

Upcoming Features (v2.0)

  • πŸ”„ QR code payments
  • πŸ”„ Bill splitting
  • πŸ”„ Recurring payments
  • πŸ”„ Multi-currency support
  • πŸ”„ Merchant accounts
  • πŸ”„ Payment links
  • πŸ”„ Mobile apps (iOS/Android)
  • πŸ”„ Two-factor authentication
  • πŸ”„ Biometric authentication
  • πŸ”„ Voice payments

πŸ“ž Support

Need help? We're here for you!


⭐ Show Your Support

If you like this project, please consider giving it a ⭐ on GitHub!


Made with ❀️ by Siddharth Harsh Raj

⬆ Back to Top

About

πŸ’³ QuickPe - Modern Digital Wallet & Payment System | Secure, fast, and scalable financial transactions with real-time processing | Built with MERN stack + Serverless architecture | Production-ready with enterprise-grade security

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages