A Complete MERN Stack Solution for Microfinance Loan Processing
Built with MongoDB, Express.js, React.js, and Node.js
Experience the application live: https://microfinance-app.netlify.app
- User Authentication System - Secure JWT-based login and registration
- Role-Based Access Control - Separate interfaces for users and administrators
- Loan Request Management - Submit loan applications with comprehensive validation
- Admin Dashboard - Manage and process loan requests efficiently
- Real-time Loan Tracking - Monitor loan status (Pending, Approved, Rejected)
- Responsive Design - Optimized for desktop and mobile devices using Tailwind CSS
- Secure API Integration - RESTful APIs with proper authentication middleware
| Category | Technologies |
|---|---|
| Frontend | React.js, Vite, Tailwind CSS, React Router |
| Backend | Node.js, Express.js, JWT Authentication |
| Database | MongoDB Atlas |
| Deployment | Netlify (Frontend), Vercel (Backend) |
- Node.js (v16 or higher)
- npm or yarn
- MongoDB Atlas account
- Git
-
Clone the repository
git clone https://github.com/Hafiz-Muhammad-Furqan/Microfinance-App.git cd Microfinance-App -
Backend Setup
cd Backend npm install -
Frontend Setup
cd ../Frontend npm install -
Environment Configuration
- Rename
.env.sampleto.env - Fill in the required values:
Backend Environment Variables (Backend/.env)
MONGO_URI=YOUR_MONGODB_CONNECTION_STRING PORT=3000 JWT_SECRET=YOUR_JWT_Secret Email=admin@gmail.com Password=admin@123
Frontend Environment Variables (Frontend/.env)
VITE_API_BASE_URL=http://localhost:3000
- Rename
Start Backend Server
cd Backend
node server.js
# Server will run on http://localhost:3000Start Frontend Development Server
cd Frontend
npm run dev
# Application will run on http://localhost:5173Microfinance-App/
├── Frontend/
│ ├── node_modules/
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── context/ # React context providers
│ │ ├── pages/ # Application pages
│ │ ├── routes/ # Route configurations
│ │ ├── utils/ # Utility functions
│ │ ├── App.jsx # Main application component
│ │ ├── index.css # Global styles
│ │ └── main.jsx # Entry point
│ ├── .env.sample # Environment variables template
│ ├── eslint.config.js # ESLint configuration
│ ├── index.html # HTML template
│ ├── netlify.toml # Netlify deployment config
│ ├── package.json # Frontend dependencies
│ ├── package-lock.json # Lock file
│ └── vite.config.js # Vite configuration
├── Backend/
│ ├── controllers/ # Request handlers
│ ├── db/ # Database configuration
│ ├── middlewares/ # Custom middleware
│ ├── models/ # MongoDB schemas
│ ├── node_modules/
│ ├── routes/ # API routes
│ ├── utils/ # Backend utilities
│ ├── .env.sample # Environment variables template
│ ├── package.json # Backend dependencies
│ ├── package-lock.json # Lock file
│ ├── server.js # Main server file
│ └── vercel.json # Vercel deployment config
└── README.md # Project documentation
For testing purposes, use these credentials to access the admin panel:
- Email: admin@gmail.com
- Password: admin@123
- Registration & Login - Create account and secure authentication
- Loan Application - Submit loan requests with Details
- Dashboard - View loan history and current status
- Admin Dashboard - Overview of all loan applications
- Loan Processing - Approve or reject loan requests
- User Management - View user details and loan history
- JWT Authentication - Secure token-based authentication
- Password Hashing - Bcrypt encryption for user passwords
- Route Protection - Middleware to protect sensitive routes
- Input Validation - Server-side validation for all inputs
- CORS Configuration - Proper cross-origin resource sharing setup
The application is fully responsive and provides an optimal experience across:
- Desktop computers
- Tablets
- Mobile devices
- Various screen resolutions
- Connect your GitHub repository to Netlify
- Set build command:
npm run build - Set publish directory:
dist - Add environment variables in Netlify dashboard
- Connect your GitHub repository to Vercel
- Configure environment variables
- Deploy using the provided
vercel.jsonconfiguration
Contributions are welcome! Please follow these steps:
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you encounter any issues or have suggestions for improvements:
- Check existing issues on GitHub
- Create a new issue with detailed description
- Contact the developer directly
For questions, suggestions, or contributions:
Hafiz Muhammad Furqan
Project Repository: https://github.com/Hafiz-Muhammad-Furqan/Microfinance-App