Instant Transfer is a full-stack application that allows users to transfer money between accounts, view their account balance, and search for other users to initiate transactions. Built with ReactJS, ExpressJS, MongoDB, and NodeJS, it provides a secure, user-friendly interface for financial transactions.
- User Registration: Sign up new users securely with encrypted passwords.
- User Login: Authenticate users with JWT tokens.
- Account Balance: Check the available balance.
- Money Transfer: Transfer money to other users with transaction validation.
- User Search: Find other users by name for easy transfers.
- Protected Routes: Secure routes with authorization checks.
- Frontend: ReactJS, Tailwind CSS
- Backend: NodeJS, ExpressJS, MongoDB
- Libraries: Zod, Axios, Mongoose, JSON Web Token (JWT)
- Deployment: Vercel, Render, MongoDB Atlas
-
Clone the repository:
git clone https://github.com/vvssgowtham/InstantTransfer.git cd InstantTransfer -
Install dependencies:
# Install server dependencies cd frontend npm install cd backend npm install
-
Environment Variables: Create a
.envfile in the root and add:JWT_SECRET=your_jwt_secret MONGO_URI=your_mongodb_connection_string -
Run the application:
# Start backend server node index.js # Start frontend cd client npm run dev
The server runs at http://localhost:5001 and the client at http://localhost:5173.
- Sign Up: Register a new account on the
/signuppage. - Sign In: Login with your credentials on the
/signinpage. - View Balance: Check your account balance on the Dashboard.
- Transfer Money: Use the search bar to find users and transfer money securely.
- POST
/api/v1/user/signup- Sign up a new user - POST
/api/v1/user/signin- Log in a user
- GET
/api/v1/account/balance- Get the balance for the logged-in user - POST
/api/v1/account/transfer- Transfer money to another account
- GET
/api/v1/user/bulk?filter=...- Search for users
instant-transfer/
│
├── frontend/ # Frontend application
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # App pages (SignUp, SignIn, Dashboard)
│ │ ├── hooks/ # Custom hooks
│ │ └── App.js # Main App component
|
├── backend/ # Backend application
│ ├── models/ # MongoDB models (User, Account)
| ├── routes/ # Express routes
| ├── controllers/ # API logic
| middleware.js # Authentication middleware
└── index.js # Express server
Contributions are welcome! Feel free to open an issue or submit a pull request.
- Fork the project.
- 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.