A comprehensive web application for managing and discovering government schemes in India. This platform allows users to browse available schemes, apply for them, and enables administrators to manage scheme submissions and user inquiries.
- Browse Schemes: Search and filter government schemes by state, ministry, caste, gender, and age
- Detailed Information: View comprehensive details about each scheme including benefits, eligibility criteria, and required documents
- User Registration: Create accounts to track applications and save favorite schemes
- Contact Support: Submit inquiries and get responses from administrators
- Responsive Design: Optimized for desktop and mobile devices
- Enhanced Dashboard: Modern, intuitive admin interface with statistics and analytics
- Scheme Management: Create, edit, approve, reject, and delete schemes
- User Management: Handle user inquiries and provide responses
- Content Moderation: Review user-submitted schemes before publication
- Real-time Statistics: Track scheme submissions, approvals, and user engagement
- React.js - Modern JavaScript library for building user interfaces
- React Router - Client-side routing
- Tailwind CSS - Utility-first CSS framework for styling
- Lucide React - Beautiful icon library
- React Toastify - Toast notifications
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database for data storage
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcrypt - Password hashing
FindScheme/
│
├── client/ # React frontend application
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── reducers/ # Application state management
│ │ └── App.js # Main React application
│ └── package.json # Frontend dependencies and scripts
│
├── server/ # Node.js + Express backend
│ ├── config/ # Database and environment configuration
│ │ ├── keys.js # Configuration loader
│ │ ├── dev.js # Development configuration
│ │ └── prod.js # Production configuration
│ │
│ ├── middleware/ # Authentication and access control
│ │ ├── auth.js # JWT authentication middleware
│ │ ├── requireSignin.js # Sign-in verification
│ │ └── adminOnly.js # Administrator access control
│ │
│ ├── models/ # MongoDB data models
│ │
│ ├── routes/ # API endpoints
│ │ ├── auth.js # Registration and login routes
│ │ ├── admin.js # Admin management routes
│ │ └── schemes.js # Government scheme routes
│ │
│ ├── index.js # Backend entry point
│ └── package.json # Backend dependencies and scripts
│
└── README.md # Project documentation
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- npm or yarn package manager
-
Clone the repository ```bash git clone https://github.com/DrashtiC07/FindScheme.git cd FindScheme ```
-
Install Backend Dependencies ```bash cd server npm install ```
-
Install Frontend Dependencies ```bash cd ../client npm install ```
-
Environment Configuration
Create configuration files in
server/config/:server/config/dev.js ```javascript module.exports = { MONGO_URI: "mongodb://localhost:27017/FindScheme", JWT_SECRET: "your-jwt-secret-key-here" }; ```
server/config/prod.js ```javascript module.exports = { MONGO_URI: process.env.MONGO_URI, JWT_SECRET: process.env.JWT_SECRET }; ```
-
Start the Development Servers
Backend Server (runs on http://localhost:5000) ```bash cd server npm start
npm run dev ```
Frontend Server (runs on http://localhost:3000) ```bash cd client npm start ```
For production deployment, set the following environment variables:
NODE_ENV=productionMONGO_URI- MongoDB connection stringJWT_SECRET- Secret key for JWT token generationPORT- Server port (default: 5000)
The application uses MongoDB with the following collections:
users- User accounts and authenticationschemes- Government scheme informationcontacts- User inquiries and support messages
POST /api/signup- User registrationPOST /api/signin- User loginPOST /api/verify-otp- OTP verification
GET /api/schemes- Get all approved schemesGET /api/scheme/:id- Get specific scheme detailsPOST /api/new-scheme- Submit new scheme (authenticated users)
GET /api/admin/schemes- Get all schemes with status filteringPUT /api/admin/schemes/:id/approve- Approve schemePUT /api/admin/schemes/:id/reject- Reject schemeDELETE /api/admin/schemes/:id- Delete schemeGET /api/admin/contacts- Get all user inquiriesPUT /api/admin/contacts/:id/reply- Reply to user inquiry
- Statistics Overview: Real-time metrics for schemes and user engagement
- Tabbed Interface: Organized sections for schemes, messages, and analytics
- Advanced Filtering: Search and filter schemes by status, name, or content
- Bulk Actions: Efficiently manage multiple schemes
- Responsive Design: Works seamlessly on all device sizes
- Intuitive Navigation: Easy-to-use interface for browsing schemes
- Advanced Search: Filter schemes by multiple criteria
- Detailed Scheme Pages: Comprehensive information about each scheme
- User Authentication: Secure login and registration system
- JWT Authentication: Secure token-based authentication
- Password Hashing: bcrypt for secure password storage
- Role-based Access: Different permissions for users and administrators
- Input Validation: Server-side validation for all user inputs
- CORS Protection: Configured for secure cross-origin requests