Skip to content

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

FindScheme

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.

🚀 Features

For Users

  • 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

For Administrators

  • 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

🛠️ Technology Stack

Frontend

  • 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

Backend

  • 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

📁 Project Structure

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

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local installation or MongoDB Atlas)
  • npm or yarn package manager

Installation

  1. Clone the repository ```bash git clone https://github.com/DrashtiC07/FindScheme.git cd FindScheme ```

  2. Install Backend Dependencies ```bash cd server npm install ```

  3. Install Frontend Dependencies ```bash cd ../client npm install ```

  4. 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 }; ```

  5. Start the Development Servers

    Backend Server (runs on http://localhost:5000) ```bash cd server npm start

    or for development with auto-restart

    npm run dev ```

    Frontend Server (runs on http://localhost:3000) ```bash cd client npm start ```

🔧 Configuration

Environment Variables

For production deployment, set the following environment variables:

  • NODE_ENV=production
  • MONGO_URI - MongoDB connection string
  • JWT_SECRET - Secret key for JWT token generation
  • PORT - Server port (default: 5000)

Database Setup

The application uses MongoDB with the following collections:

  • users - User accounts and authentication
  • schemes - Government scheme information
  • contacts - User inquiries and support messages

📱 API Endpoints

Authentication

  • POST /api/signup - User registration
  • POST /api/signin - User login
  • POST /api/verify-otp - OTP verification

Schemes

  • GET /api/schemes - Get all approved schemes
  • GET /api/scheme/:id - Get specific scheme details
  • POST /api/new-scheme - Submit new scheme (authenticated users)

Admin Routes

  • GET /api/admin/schemes - Get all schemes with status filtering
  • PUT /api/admin/schemes/:id/approve - Approve scheme
  • PUT /api/admin/schemes/:id/reject - Reject scheme
  • DELETE /api/admin/schemes/:id - Delete scheme
  • GET /api/admin/contacts - Get all user inquiries
  • PUT /api/admin/contacts/:id/reply - Reply to user inquiry

🎨 Features Overview

Enhanced Admin Dashboard

  • 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

User Experience

  • 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

🔒 Security Features

  • 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

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages