Logo Lanfrica

Basit-of-Africa/NEMS-Project

Domaine:

peace and security

Type de record:

software
Créateur:
Bas
Hôte:
# Nigeria Election Monitoring System (NEMS) A comprehensive full-stack web application for monitoring Nigeria's electoral process with geographical data integration, role-based access control, and real-time reporting capabilities. ## 🚀 Features - **Role-Based Authentication**: Admin, Observer, and Public access levels - **Geographical Data Integration**: Complete Nigerian electoral geography (States, LGAs, Wards, Polling Units) - **Real-Time Reporting**: Incident tracking, status updates, and dashboard analytics - **CSV Batch Upload**: Bulk observer onboarding with Excel/CSV import - **Responsive Dashboard**: Mobile-friendly interface with data visualization - **JWT Authentication**: Secure token-based authentication system - **In-Memory Database**: Demo mode without MongoDB dependency ## 🛠️ Technology Stack ### Backend - **Node.js** with Express.js framework - **MongoDB** (with in-memory fallback for demos) - **JWT** for authentication - **bcrypt** for password hashing - **Multer** for file uploads - **Express Validator** for input validation ### Frontend - **React.js** with modern hooks - **React Router** for navigation - **Chart.js** for data visualization - **Axios** for API communication - **CSS3** with responsive design ## 📋 Prerequisites - Node.js (v14 or higher) - npm or yarn package manager - MongoDB (optional - in-memory database available for demos) ## 🚀 Quick Start ### 1. Clone and Install Dependencies ```bash # Install backend dependencies npm install # Install frontend dependencies cd client npm install cd .. ``` ### 2. Environment Configuration Create a `.env` file in the root directory: ```env # Database Configuration USE_MEMORY_DB=true # Set to false to use MongoDB MONGODB_URI=mongodb://localhost:27017/nems # Authentication JWT_SECRET=your-super-secret-jwt-key-here # Server PORT=5000 NODE_ENV=development ``` ### 3. Start the Application ```bash # Start backend server npm start # In another terminal, start frontend cd client npm …