This is a simple Paytm-like payment web application where users can sign up, sign in, search for other users, and transfer money to them from their wallet. The application utilizes a dummy wallet, eliminating the need to input real bank details. Upon signing up, each user is allocated a random amount of money between 200 and 10,000.
Additionally, users have the ability to update their details such as password, first name, and last name. The application implements user authentication using JSON Web Tokens (JWT) for secure access, and input validation is performed using Zod. Passwords are hashed before being stored in the database, ensuring data security.
- User authentication using JWT
- Sign up and sign in functionalities
- Search functionality to find other users
- Wallet functionality for transferring money between users
- Update user details (password, first name, last name)
- Dummy wallet system (no real bank details required)
- Input validation using Zod
- Password hashing for data security
- Backend: Node.js, Express
- Database: MongoDB
- Frontend: React, Tailwind CSS
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/Habeel-Shamsudeen/Paytm-Lite.git
- Navigate to the project directory:
cd <project-directory>
- Install dependencies:
- For backend:
cd backend && npm install
- For frontend:
cd frontend && npm install
- For backend:
- Set up environment variables:
- Create a
.env
file in the backend directory - Define the following environment variables:
DB_URL
: MongoDB connection URIJWT_SECRET
: Secret key for JWT
- Create a
- Start the backend server:
npm start
ornpm run dev
for development mode - Start the frontend development server:
npm start
- Better backend exception handling.
- Setup a signout function which will delete the token in local Storage.
- Setup a delete route where the user can delete his account.
- Create the frontend to allow the user to update his details
Contributions are welcome! If you'd like to contribute to this project, please follow these guidelines:
- Fork the repository
- Create a new branch:
git checkout -b feature/<feature-name>
- Make your changes and commit them:
git commit -am 'Add new feature'
- Push to the branch:
git push origin feature/<feature-name>
- Submit a pull request
Please ensure your code follows the project's coding conventions and includes appropriate documentation and tests.
This project is licensed under the MIT License.