PayPL is a full-stack digital wallet and payment web app built with the MERN stack. It allows users to sign up, log in, manage their wallet, send and request money, apply for loans, and view transaction history. The app uses Tailwind CSS for styling, JWT for authentication, and Zod for robust input validation. Payment gateway integration is provided via Razorpay.
- User Authentication: Secure signup and login with JWT-based authentication.
- Wallet Management: Add money to your wallet, view your balance, and see transaction history.
- Send & Request Money: Instantly transfer funds to other users or request money from them using UID, email, or phone number.
- Transaction History: View all your sent, received, and wallet transactions in a user-friendly dashboard.
- Search People: Find users by name or phone number and send/request money directly from the search results.
- Loan Application: Apply for loans and get the amount credited to your wallet.
- Payment Gateway Integration: Supports Razorpay for real and simulated transactions.
- Responsive UI: Modern, mobile-friendly interface built with React and Tailwind CSS.
- Frontend: ReactJS, Tailwind CSS, TypeScript, Vite
- Backend: Node.js, Express.js
- Database: MongoDB (with Mongoose)
- Authentication: JWT
- Validation: Zod
- Data Fetching: Axios
- Payment Gateway: Razorpay
To run PayPL locally:
- Clone the Repository:
git clone https://github.com/shreyashkatkar07/PayPL.git cd PayPL
- Open a new terminal window or tab.
- Navigate to the
backenddirectory:cd backend - Install backend dependencies:
npm install
- Create a
.envfile in thebackenddirectory and add the following environment variables:databaseurl=your_mongodb_uri RAZORPAY_KEY_ID=your_razorpay_key_id RAZORPAY_KEY_SECRET=your_razorpay_key_secret secret=your_jwt_secret CORS_ORIGIN=http://localhost:5173
- Set up your MongoDB database and update the connection string (
databaseurl), Razorpay keys (RAZORPAY_KEY_ID,RAZORPAY_KEY_SECRET), JWT secret (secret), and allowed frontend origins (CORS_ORIGIN) in the.envfile. - Start the backend server:
Or
node server.js
npm start
- Open another new terminal window or tab (still in the project directory
PayPL). - Navigate to the frontend directory:
cd frontend - Install frontend dependencies:
npm install
- Create a .env file in the frontend directory and add:
VITE_API_BASEURL=http://localhost:3000
- Start the frontend development server:
npm run dev
- Open your browser and visit http://localhost:5173.
- Sign Up or Log In: Create a new account or log in to your existing account.
- Wallet Dashboard: View your wallet balance, add money, and see your transaction history.
- Send/Request Money: Search for users and send/request money using UID, email, or phone number.
- Apply for Loan: Use the loan section to apply for a loan and get the amount credited to your wallet.
- Transactions: Track all your wallet and transfer transactions in one place.
For transaction support, MongoDB must be configured as a replica set or a sharded cluster. Standalone deployments do not support transactions. If you're using MongoDB Atlas, all clusters are already set up as replica sets or sharded clusters. For standalone MongoDB, see the MongoDB guide.
- Frontend: Can be deployed on Vercel or Netlify.
- Backend: Can be deployed on Render, Railway, or as a Docker container.
- Environment Variables: Set the above variables in your deployment dashboard for both frontend and backend.
PayPL is currently under active development. More features and improvements are planned. Contributions are welcome!
Contributions are welcome! If you have suggestions, improvements, or feature requests, please open an issue or create a pull request.
For any questions or feedback, contact shreyashkatkar04@gmail.com.