{"id":28275199,"url":"https://github.com/akhil07-ctrl/loan-manager-application","last_synced_at":"2026-05-05T20:40:42.528Z","repository":{"id":293260642,"uuid":"983450437","full_name":"Akhil07-ctrl/Loan-Manager-Application","owner":"Akhil07-ctrl","description":"The Loan Manager is a comprehensive web application built with React that facilitates loan management between users and administrators. The platform features a secure authentication system, allowing users to apply for loans while administrators can manage loan applications through a sophisticated dashboard that displays real-time statistics.","archived":false,"fork":false,"pushed_at":"2025-05-17T13:59:05.000Z","size":3987,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-27T22:38:55.554Z","etag":null,"topics":["api","axios","cors","dotenv","express","mongoose"],"latest_commit_sha":null,"homepage":"https://loan-manager-application.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Akhil07-ctrl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-14T11:58:36.000Z","updated_at":"2025-05-17T14:29:05.000Z","dependencies_parsed_at":"2025-05-14T13:59:18.039Z","dependency_job_id":null,"html_url":"https://github.com/Akhil07-ctrl/Loan-Manager-Application","commit_stats":null,"previous_names":["akhil07-ctrl/loan-manager-application"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Akhil07-ctrl/Loan-Manager-Application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akhil07-ctrl%2FLoan-Manager-Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akhil07-ctrl%2FLoan-Manager-Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akhil07-ctrl%2FLoan-Manager-Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akhil07-ctrl%2FLoan-Manager-Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akhil07-ctrl","download_url":"https://codeload.github.com/Akhil07-ctrl/Loan-Manager-Application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akhil07-ctrl%2FLoan-Manager-Application/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260162157,"owners_count":22967988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","axios","cors","dotenv","express","mongoose"],"created_at":"2025-05-21T03:13:42.575Z","updated_at":"2026-05-05T20:40:42.467Z","avatar_url":"https://github.com/Akhil07-ctrl.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Loan Manager Application\n\nA modern MERN stack application for managing loan applications, approvals, and repayments with real-time status tracking and analytics.\n\n## 🚀 Live Demo\n\n- Frontend: [Vercel Deployment](https://loan-manager-application.vercel.app/)\n- Backend: [Render Deployment](https://loan-manager-application.onrender.com)\n\n## 📄 Description\n\nThe Loan Manager Application is a comprehensive web application that streamlines the loan management process for both users and administrators. It provides a secure platform for loan applications, status tracking, and analytics. The application is built using modern web technologies and follows RESTful API architecture for scalability and maintainability.\n\n## 🖥️ Features\n\n### User Features\n- Secure user registration and login with JWT authentication\n- Role-based access control (user/admin)\n- Loan application submission with amount and tenure\n- Real-time loan status tracking\n- Protected routes based on user role\n- Admin dashboard access for authorized users\n- Session management with cookies\n- User profile management\n\n### Admin Features\n- Secure admin dashboard access\n- Loan application approval/rejection\n- User management capabilities\n- Loan analytics and statistics\n- Notification system for users\n- Role-based route protection\n\n## 🛠️ Tech Stack\n\n### Frontend\n- React 18 with Vite\n- React Router v7 for navigation\n- Axios for API communication\n- React Icons for UI elements\n- React Modal for dialogs\n- JWT authentication with cookies\n- Chart.js for data visualization\n- Date-fns for date handling\n\n### Backend\n- Node.js with Express 5.x\n- MongoDB with Mongoose 8.x\n- JWT for secure authentication\n- CORS for cross-origin requests\n- dotenv for environment variables\n- bcryptjs for password hashing\n- nodemon for development\n- gh-pages for deployment\n- RESTful API architecture\n- Role-based access control (user/admin)\n\n## 🔧 Setup Instructions\n\n### Prerequisites\n- Node.js (v14 or higher)\n- MongoDB\n- Git\n\n### Installation\n\n1. Clone the repository\n```bash\ngit clone https://github.com/Akhil07-ctrl/Loan-Manager-Application.git\ncd Loan-Manager-Application\n```\n\n2. Install dependencies\n```bash\n# Install server dependencies\ncd server\nnpm install\n\n# Install client dependencies\ncd ../client\nnpm install\n```\n\n3. Configure environment variables\nCreate a `.env` file in the server directory with the following variables:\n```\nPORT=5000\nMONGO_URI=your_mongodb_connection_string\nJWT_SECRET=your_jwt_secret\nFRONTEND_URL=http://localhost:5173\n```\n\n4. Start the servers\n```bash\n# Start backend server (in server directory)\nnpm run dev\n\n# Start frontend server (in client directory)\nnpm run dev\n```\n\n### Development Setup\n- Frontend runs on http://localhost:5173\n- Backend runs on http://localhost:5000\n- Uses CORS for cross-origin requests\n- JWT authentication with cookies\n- Protected routes using role-based access control\n- MongoDB connection via MONGO_URI\n- Mongoose ODM for database operations\n- Models: User, Loan, Notification\n- Auto-indexing enabled for performance\n\n4. Start the servers\n```bash\n# Start backend server (in server directory)\nnpm run dev\n\n# Start frontend server (in client directory)\nnpm run dev\n```\n\n## 🧰 Available Scripts\n\n### Client\n```bash\nnpm run dev     # Start development server\nnpm run build   # Build for production\nnpm run preview # Preview production build\n```\n\n### Server\n```bash\nnpm run dev     # Start development server\nnpm run start   # Start production server\nnpm run test    # Run tests\n```\n\n## 📁 Project Structure\n\n```\nLoan-Manager-Application/\n├── client/           # Frontend React application\n│   ├── src/\n│   │   ├── components/    # Reusable UI components\n│   │   │   ├── AdminDashboard/  # Admin dashboard components\n│   │   │   ├── AdminHeader/     # Admin header component\n│   │   │   ├── AdminRoute/      # Admin route protection\n│   │   │   ├── Header/          # Main header component\n│   │   │   ├── Home/           # Home page components\n│   │   │   ├── LoginForm/      # Login form components\n│   │   │   ├── NotificationsMenu/ # Notification menu\n│   │   │   ├── ProtectedRoute/  # Route protection\n│   │   │   └── RegisterForm/    # Registration form\n│   │   ├── assets/             # Static assets\n│   │   ├── App.jsx            # Main application component\n│   │   ├── App.css            # Global styles\n│   │   └── index.css          # App styles\n│   └── public/               # Public assets\n├── server/           # Backend Node.js application\n│   ├── models/          # Database models\n│   │   ├── User.js      # User model\n│   │   ├── Loan.js      # Loan model\n│   │   └── Notification.js # Notification model\n│   ├── index.js         # Main server file\n│   ├── vercel.json      # Vercel deployment configuration\n│   ├── package.json     # Dependencies\n│   └── .env             # Environment variables\n```\n\n## 🧪 Testing\n\n### Frontend Testing\n- Manual testing through browser\n- React development tools for component inspection\n- Network monitoring through browser dev tools\n- Visual testing of UI components and forms\n- Jest unit tests (coming soon)\n\n### Backend Testing\n- Manual API testing through Postman or browser\n- Environment variable testing\n- Database connection testing\n- JWT authentication testing\n- Route testing\n- Mocha unit tests (coming soon)\n\n### Testing Requirements\n- Node.js development environment\n- MongoDB database\n- Postman or similar API testing tool (for backend)\n- Modern web browser with developer tools (for frontend)\n- Jest (for frontend testing)\n- Mocha/Chai (for backend testing)\n\n### Testing Guidelines\n1. Frontend\n   - Test all form submissions\n   - Verify user authentication flow\n   - Check loan application process\n   - Test notification system\n   - Verify dashboard functionality\n\n2. Backend\n   - Test all API endpoints\n   - Verify JWT authentication\n   - Test database operations\n   - Check error handling\n   - Verify response formats\n   - Test role-based access control\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to your branch\n5. Open a Pull Request\n\n## 🙋‍♂️ FAQ\n\n**Q: How do I apply for a loan?**\nA: After logging in, navigate to the Home page and click the \"Apply for Loan\" button. Fill out the loan application form with your desired amount, tenure, and purpose.\n\n**Q: How can I track my loan application status?**\nA: Once you've submitted a loan application, you can track its status in your dashboard. The status will be updated in real-time as it goes through the approval process.\n\n**Q: What are the loan application requirements?**\nA: To apply for a loan, you need to:\n- Be registered on the platform\n- Provide valid personal information\n- Specify loan amount and tenure\n- Provide a valid reason for the loan\n\n**Q: Can I withdraw my loan application?**\nA: Yes, you can withdraw your loan application if it's still in the pending state. Once a loan is approved or rejected, it cannot be withdrawn.\n\n**Q: How do I receive notifications about my loan?**\nA: You will receive notifications about your loan status through the notification system in the application. These notifications will appear in the notifications menu and can be configured in your settings.\n\n**Q: How do I access the admin dashboard?**\nA: Only users with admin privileges can access the admin dashboard. Contact the system administrator to request admin access if needed.\n\n**Q: What information can I see in the admin dashboard?**\nA: The admin dashboard provides:\n- Overview of all loan applications\n- Loan approval/rejection controls\n- Analytics and statistics\n- User management capabilities\n- Monthly loan trends\n\n**Q: How do I update my profile information?**\nA: After logging in, click on your profile icon and select \"Edit Profile\" to update your personal information. Changes will be saved automatically.\n\n## 🧑‍💻 Author\n\n- **Kundena Akhil** - [Portfolio](https://portfolio-nine-flax-29.vercel.app/)\n\n## 📜 License\n\nThis project is licensed under the ISC License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhil07-ctrl%2Floan-manager-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakhil07-ctrl%2Floan-manager-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhil07-ctrl%2Floan-manager-application/lists"}