Skip to content

WasteNexus: AI-powered Smart Waste Management System for real-time tracking, citizen engagement, and municipal monitoring.

Notifications You must be signed in to change notification settings

kkrishhh/wastenexus

Β 
Β 

Repository files navigation

🌱 WasteNexus

WasteNexus Logo

Transform Waste Into Opportunity

A comprehensive waste management platform connecting waste generators with environmental champions and waste collection professionals.

Next.js TypeScript MongoDB TailwindCSS PWA

Live Demo β€’ Documentation β€’ Report Bug β€’ Request Feature


πŸ“‹ Table of Contents


🌟 Overview

WasteNexus is a cutting-edge waste management platform that revolutionizes how communities handle waste collection and recycling. By connecting three key stakeholders - Clients (waste generators), Champions (environmental organizers), and Workers (collection professionals) - we create a sustainable ecosystem that rewards responsible waste management.

🎯 Mission

Reduce landfill waste, create environmental impact, and build a sustainable future by making waste management accessible, rewarding, and efficient.

πŸ”‘ Core Principles

  • 🌍 Sustainability First: Every feature designed to reduce environmental impact
  • πŸ’° Reward-Based: Gamification through points, badges, and leaderboards
  • πŸ€– AI-Powered: Smart waste classification using Google Gemini AI
  • πŸ“± Mobile-First: Progressive Web App for seamless mobile experience
  • πŸ” Secure: Role-based access control and JWT authentication

✨ Key Features

πŸ‘₯ Multi-Role System

🟒 For Clients (Individuals & Households)

  • πŸ“Έ Report Waste with AI-powered classification
  • πŸ“ Location Picker with auto-detect and manual selection
  • πŸ† Earn Rewards - points for every kg of waste reported
  • πŸŽ–οΈ Unlock Badges and climb the leaderboard
  • πŸŽͺ Join Events - participate in community cleanup activities
  • πŸ’Ό Post Jobs for waste collection services
  • πŸ›οΈ Marketplace - buy and sell recyclable items

πŸ”΅ For Champions (NGOs & Organizations)

  • πŸ“… Create & Manage Events - organize cleanup drives
  • βœ… Verify Reports - review and approve waste submissions
  • πŸ“Š Track Participation - monitor community engagement
  • πŸ… Earn Points for organizing successful events
  • πŸ“ˆ Analytics Dashboard - view event statistics

🟣 For Workers (Waste Collection Professionals)

  • πŸ“‹ View Verified Reports filtered by location (20km radius)
  • βœ… Complete Tasks - mark reports as collected
  • πŸ’΅ Browse Jobs - find waste collection opportunities
  • πŸ’° Track Earnings - monitor completed tasks
  • πŸ“ Location-Based Filtering - see only nearby reports
  • πŸ“Š Work Statistics - view performance metrics

πŸ”΄ For Admins

  • πŸ‘₯ User Management - manage all user roles
  • πŸͺ Marketplace Moderation - approve/reject listings
  • πŸ“Š Analytics & Reports - platform-wide insights
  • πŸŽͺ Event Management - oversee all events
  • πŸ–ΌοΈ Gallery Management - showcase success stories
  • πŸ’Ό Job Verification - review job postings
  • 🧾 Transaction Monitoring - track all point transactions
  • πŸ‘· Worker Applications - verify worker registrations

πŸ“Έ Screenshots

🏠 Home & Landing

Home Page

Modern landing page with role selection

Light mode Home Page

Modern landing page light mode

πŸ” Authentication

Sign In Sign Up

Clean authentication with role-based signup

πŸ” Role Selection

Sign In

Role-based signup

πŸ“Š Dashboards

Client Dashboard

Client Dashboard

Personalized dashboard with points, rank, and quick actions

Champion Dashboard

Champion Dashboard

Event management with participant tracking

Admin Dashboard

Admin Dashboard

Comprehensive admin panel with quick access cards

πŸ“ Waste Reporting

Report Waste

AI-powered waste classification with image upload

πŸŽͺ Events Management

Event

Event creation, tracking, and participant management

πŸ›οΈ Marketplace

Marketplace

Buy and sell recyclable items sustainably

πŸ–ΌοΈ Gallery

Gallery

Showcase community success stories


πŸ› οΈ Tech Stack

Frontend

Backend

DevOps & Tools

  • Version Control: Git & GitHub
  • Package Manager: npm
  • Linting: ESLint 9
  • Code Formatting: Prettier (via ESLint)
  • Build Tool: Turbopack (Next.js 15)
  • Deployment: Vercel / Netlify

πŸ—οΈ Architecture

System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Client Layer (Browser)                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚   Next.js    β”‚  β”‚  React 19    β”‚  β”‚  TailwindCSS β”‚      β”‚
β”‚  β”‚  App Router  β”‚  β”‚  Components  β”‚  β”‚   Styling    β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    API Layer (Next.js)                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Route Handlers (app/api/*)                          β”‚  β”‚
β”‚  β”‚  β”œβ”€ /auth/*        - Authentication                  β”‚  β”‚
β”‚  β”‚  β”œβ”€ /client/*      - Client operations               β”‚  β”‚
β”‚  β”‚  β”œβ”€ /champion/*    - Champion operations             β”‚  β”‚
β”‚  β”‚  β”œβ”€ /worker/*      - Worker operations               β”‚  β”‚
β”‚  β”‚  β”œβ”€ /admin/*       - Admin operations                β”‚  β”‚
β”‚  β”‚  └─ /upload/*      - File uploads (Cloudinary)       β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   Business Logic Layer                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚  Auth (JWT) β”‚  β”‚   Rewards   β”‚  β”‚  AI Service β”‚        β”‚
β”‚  β”‚  Middleware β”‚  β”‚   System    β”‚  β”‚  (Gemini)   β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Data Layer (MongoDB)                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Collections:                                        β”‚  β”‚
β”‚  β”‚  β”œβ”€ users          - User accounts & profiles        β”‚  β”‚
β”‚  β”‚  β”œβ”€ reports        - Waste reports                   β”‚  β”‚
β”‚  β”‚  β”œβ”€ events         - Community events                β”‚  β”‚
β”‚  β”‚  β”œβ”€ jobs           - Waste collection jobs           β”‚  β”‚
β”‚  β”‚  β”œβ”€ transactions   - Point transactions              β”‚  β”‚
β”‚  β”‚  β”œβ”€ marketplaceItems - Recyclable items              β”‚  β”‚
β”‚  β”‚  β”œβ”€ gallery        - Success stories                 β”‚  β”‚
β”‚  β”‚  β”œβ”€ workerApplications - Worker registrations        β”‚  β”‚
β”‚  β”‚  └─ workerTasks    - Assigned collection tasks       β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow

User Action β†’ Next.js Page β†’ API Route β†’ Auth Middleware β†’ 
Business Logic β†’ Database (Mongoose) β†’ Response β†’ UI Update

πŸš€ Getting Started

Prerequisites

  • Node.js 20+ and npm
  • MongoDB instance (local or Atlas)
  • Cloudinary account for image uploads
  • Google Maps API key
  • Google Gemini API key

Installation

  1. Clone the repository

    git clone https://github.com/SagarSuryakantWaghmare/wastenexus.git
    cd wastenexus
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file in the root directory:

    cp .env.example .env.local

    Fill in all required variables (see Environment Variables)

  4. Run database migrations (if needed)

    npm run migrate-coordinates
  5. Start development server

    npm run dev
  6. Open your browser

    Navigate to http://localhost:3000

Building for Production

# Build the application
npm run build

# Start production server
npm start

Running Scripts

# Add admin users
npm run add-admins

# Test email configuration
npm run test:email

# Validate SEO
npm run seo:validate

# Run Lighthouse CI
npm run lighthouse

πŸ” Environment Variables

Create a .env.local file with the following variables:

Core Configuration

# App
NEXT_PUBLIC_BASE_URL=http://localhost:3000
NODE_ENV=development

# MongoDB
MONGODB_URI=mongodb://localhost:27017/wastenexus
# OR for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/wastenexus

# JWT Secret (generate a strong random string)
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production

Third-Party Services

# Cloudinary (for image uploads)
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

# Google Maps
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=your-google-maps-api-key

# Google Gemini AI
GEMINI_API_KEY=your-gemini-api-key

# Email (Nodemailer - Gmail example)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
EMAIL_FROM=WasteNexus <noreply@wastenexus.com>

Optional Configuration

# Analytics
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX

# PWA
NEXT_PUBLIC_MANIFEST_URL=/manifest.json

⚠️ Security Note: Never commit .env.local to version control. Add it to .gitignore.


πŸ€– AI Integration

WasteNexus leverages Google Gemini AI for intelligent waste classification:

Features

  1. πŸ–ΌοΈ Vision-Based Classification

    • Upload waste images for automatic type detection
    • Returns waste type, confidence score, and recyclability status
    • Provides detailed descriptions and handling recommendations
  2. 🎯 Smart Categorization

    • Classifies into: Plastic, Paper, Glass, Metal, E-Waste, Organic, Mixed
    • Confidence threshold validation (minimum 60%)
    • Fallback to manual selection if confidence is low
  3. πŸ’‘ Implementation

// lib/gemini.ts
import { GoogleGenerativeAI } from '@google/generative-ai';

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);

export async function classifyWaste(imageUrl: string) {
  const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
  
  const prompt = `Analyze this waste image and classify it...`;
  
  const result = await model.generateContent([prompt, imagePart]);
  // Returns: { type, confidence, description, recyclable }
}

API Endpoint

POST /api/upload/image
Content-Type: multipart/form-data

Body: { image: File }

Response: {
  success: true,
  imageUrl: "https://...",
  classification: {
    type: "Plastic",
    confidence: 0.95,
    description: "PET bottle, recyclable",
    recyclable: true
  }
}

πŸ“‘ API Documentation

Authentication

All protected routes require JWT token in Authorization header:

Authorization: Bearer <your-jwt-token>

Core Endpoints

πŸ” Auth

  • POST /api/auth/signup - Register new user
  • POST /api/auth/login - Login user (returns JWT)

πŸ‘€ User

  • GET /api/user - Get current user profile
  • PATCH /api/user/profile - Update profile
  • GET /api/user/transactions - Get point transactions

πŸ“ Reports (Client)

  • POST /api/reports - Submit waste report
  • GET /api/reports - Get user's reports

βœ… Reports (Admin/Champion)

  • GET /api/admin/reports - List all reports
  • POST /api/reports/[id]/verify - Verify report (awards points)

πŸŽͺ Events

  • GET /api/events - List public events
  • POST /api/events - Create event (Champion)
  • GET /api/events/[id] - Get event details
  • POST /api/events/[id]/join - Join event
  • GET /api/events/mine - Get user's created events

πŸ’Ό Jobs

  • GET /api/jobs - Browse jobs
  • POST /api/jobs - Create job (Client)

πŸ›οΈ Marketplace

  • GET /api/marketplace - List items (with filters)
  • POST /api/marketplace - Create listing
  • GET /api/marketplace/[id] - Item details
  • POST /api/marketplace/[id]/buy - Purchase item

πŸ‘· Worker

  • GET /api/worker/verified-reports - List verified reports (location-filtered)
  • POST /api/worker/complete-report - Mark report as collected
  • GET /api/worker/tasks - Get assigned tasks
  • GET /api/worker/jobs - Browse available jobs

πŸ”΄ Admin

  • GET /api/admin/users - User management
  • DELETE /api/admin/users - Delete user
  • GET /api/admin/dashboard-stats - Platform statistics
  • GET /api/admin/marketplace/pending - Pending listings
  • POST /api/admin/marketplace/[id]/verify - Approve listing
  • GET /api/admin/worker-applications - Worker applications
  • POST /api/admin/worker-applications/[id] - Verify worker

Response Format

Success:

{
  "success": true,
  "data": { ... },
  "message": "Operation successful"
}

Error:

{
  "error": "Error message",
  "details": { ... }
}

πŸ—„οΈ Database Schema

User Model

{
  _id: ObjectId,
  name: string,
  email: string (unique),
  password: string (hashed),
  role: 'client' | 'champion' | 'admin' | 'worker',
  profileImage?: string,
  totalPoints: number,
  createdAt: Date,
  updatedAt: Date
}

Report Model

{
  _id: ObjectId,
  userId: ObjectId (ref: User),
  type: 'Plastic' | 'Paper' | 'Glass' | 'Metal' | 'E-Waste' | 'Organic' | 'Mixed',
  weightKg: number,
  imageUrl?: string,
  location: {
    address: string,
    latitude: number,
    longitude: number,
    coordinates?: { lat: number, lng: number }
  },
  status: 'pending' | 'verified' | 'rejected',
  pointsAwarded: number,
  verifiedBy?: ObjectId (ref: User),
  verifiedAt?: Date,
  createdAt: Date,
  updatedAt: Date
}

Event Model

{
  _id: ObjectId,
  championId: ObjectId (ref: User),
  title: string,
  description: string,
  location: string,
  locations: string[],
  date: Date,
  images: string[],
  maxParticipants: number,
  participants: ObjectId[] (ref: User),
  status: 'upcoming' | 'ongoing' | 'completed' | 'cancelled',
  pointsReward: number,
  createdAt: Date,
  updatedAt: Date
}

Job Model

{
  _id: ObjectId,
  clientId: ObjectId (ref: User),
  title: string,
  description: string,
  category: 'industry' | 'home' | 'other',
  location: {
    address: string,
    coordinates: { lat: number, lng: number }
  },
  wasteType: string[],
  estimatedWeight?: number,
  budget?: number,
  urgency: 'low' | 'medium' | 'high',
  status: 'open' | 'in-progress' | 'completed' | 'cancelled',
  applicants: ObjectId[] (ref: User),
  assignedTo?: ObjectId (ref: User),
  createdAt: Date,
  updatedAt: Date
}

MarketplaceItem Model

{
  _id: ObjectId,
  sellerId: ObjectId (ref: User),
  title: string,
  description: string,
  category: 'Electronics' | 'Furniture' | 'Kitchen' | 'Books' | 'Clothing' | 'Other',
  price: number,
  condition: 'new' | 'like-new' | 'good' | 'fair' | 'poor',
  images: string[],
  location: string,
  status: 'pending' | 'active' | 'sold' | 'rejected',
  views: number,
  favorites: ObjectId[] (ref: User),
  createdAt: Date,
  updatedAt: Date
}

Transaction Model

{
  _id: ObjectId,
  userId: ObjectId (ref: User),
  type: 'waste_report' | 'event_participation' | 'event_organization' | 'job_completion' | 'admin_adjustment',
  amount: number,
  description: string,
  relatedId?: ObjectId,
  createdAt: Date
}

WorkerApplication Model

{
  _id: ObjectId,
  name: string,
  email: string,
  phone: string,
  address: string,
  photo?: { public_id: string, secure_url: string },
  aadhaarCard?: { public_id: string, secure_url: string },
  status: 'pending' | 'verified' | 'rejected',
  rejectionReason?: string,
  userId?: ObjectId (ref: User),
  appliedAt: Date,
  verifiedAt?: Date,
  verifiedBy?: ObjectId (ref: User)
}

WorkerTask Model

{
  _id: ObjectId,
  reportId: ObjectId (ref: Report),
  workerId: ObjectId (ref: User),
  status: 'assigned' | 'in-progress' | 'completed',
  assignedDate: Date,
  startedDate?: Date,
  completedDate?: Date,
  createdAt: Date,
  updatedAt: Date
}

πŸ“± PWA Features

WasteNexus is a Progressive Web App with offline capabilities:

Features

  • βœ… Installable - Add to home screen on mobile/desktop
  • βœ… Offline Support - Service worker caching
  • βœ… Push Notifications (planned)
  • βœ… Background Sync (planned)
  • βœ… App-like Experience - Full-screen mode

Manifest Configuration

{
  "name": "WasteNexus",
  "short_name": "WasteNexus",
  "description": "Transform Waste Into Opportunity",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#10b981",
  "icons": [
    {
      "src": "/icons/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any maskable"
    },
    {
      "src": "/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any maskable"
    }
  ]
}

Install Prompt

The app shows a custom install prompt after:

  • βœ… 10 seconds initial delay
  • βœ… 24-hour cooldown between prompts
  • βœ… User dismissal tracking

πŸš€ Deployment

Vercel (Recommended)

  1. Push to GitHub

    git push origin main
  2. Import to Vercel

    • Go to vercel.com
    • Import your GitHub repository
    • Configure environment variables
    • Deploy!
  3. Configure Domains

    • Add custom domain in Vercel settings
    • Update NEXT_PUBLIC_BASE_URL in environment variables

Netlify

  1. Build Command: npm run build
  2. Publish Directory: .next
  3. Environment Variables: Add all from .env.local

Self-Hosted

# Build the app
npm run build

# Start with PM2
pm2 start npm --name "wastenexus" -- start

🀝 Contributing

We welcome contributions! Here's how you can help:

Development Workflow

  1. Fork the repository

    git clone https://github.com/YOUR_USERNAME/wastenexus.git
  2. Create a feature branch

    git checkout -b feature/amazing-feature
  3. Make your changes

    • Follow the existing code style
    • Add tests if applicable
    • Update documentation
  4. Commit your changes

    git commit -m "Add amazing feature"
  5. Push to your fork

    git push origin feature/amazing-feature
  6. Open a Pull Request

    • Describe your changes clearly
    • Reference any related issues

Code Style

  • TypeScript: Strict mode enabled
  • Formatting: ESLint + Prettier
  • Naming: camelCase for variables, PascalCase for components
  • Commits: Follow Conventional Commits

Areas to Contribute

  • πŸ› Bug Fixes - Report and fix bugs
  • ✨ Features - Add new functionality
  • πŸ“ Documentation - Improve docs
  • 🎨 UI/UX - Enhance user interface
  • β™Ώ Accessibility - Make the app more accessible
  • 🌍 Internationalization - Add language support
  • ⚑ Performance - Optimize speed and efficiency

πŸ‘₯ Team

Core Team

Sagar Waghmare
Sagar Suryakant Waghmare
Full Stack Developer
GitHub
Aakash Sonar
Aakash Sonar
Database Designer
GitHub
Soham Pawar
Soham Pawar
Frontend Developer
GitHub

Roles & Responsibilities

Sagar Suryakant Waghmare - Full Stack Developer

  • πŸ—οΈ Architecture & system design
  • πŸ’» Frontend development (Next.js, React, TailwindCSS)
  • πŸ”§ Backend development (API routes, authentication)
  • πŸ€– AI integration (Google Gemini)
  • πŸ“± PWA implementation
  • πŸš€ DevOps & deployment

Aakash Sonar - Database Designer

  • πŸ—„οΈ MongoDB schema design
  • πŸ“Š Data modeling & optimization
  • πŸ” Query performance tuning
  • πŸ” Data security & validation
  • πŸ“ˆ Database scaling strategies

Soham Pawar - Frontend Developer

  • 🎨 UI/UX-focused interface design
  • ⚑ Performance-optimized frontend development
  • 🧩 Reusable component architecture
  • πŸ› οΈ Debugging & issue resolution
  • πŸš€ Continuous improvement & modern tech adoption

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 WasteNexus Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

πŸ™ Acknowledgments

  • Google Gemini AI - For intelligent waste classification
  • Cloudinary - For image hosting and optimization
  • MongoDB - For flexible database solutions
  • Vercel - For seamless deployment
  • Next.js Team - For the amazing framework
  • Open Source Community - For incredible tools and libraries

πŸ“ž Contact & Support


Made with πŸ’š for a sustainable future

⭐ Star this repo if you find it helpful!

Report Bug Β· Request Feature Β·

Β© 2025 WasteNexus. All rights reserved.

About

WasteNexus: AI-powered Smart Waste Management System for real-time tracking, citizen engagement, and municipal monitoring.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.0%
  • Other 1.0%