Skip to content

bablulodha37/e-waste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

♻️ EcoSaathi – Smart E-Waste Management Platform

EcoSaathi is a full-stack platform designed to simplify and digitize e-waste pickup management.
It connects Users, Pickup Agents, and Admins through an automated system featuring:

  • Automated request handling
  • Live pickup tracking
  • OTP-based verification
  • AI Chatbot
  • Issue/Ticket management
  • Certificate generation
  • Email notifications
  • Admin dashboard

🌍 Vision

To create a cleaner and greener environment by making e-waste recycling simple, accessible, and transparent.


πŸš€ Features

πŸ‘€ User Features

βœ” Register & Login
βœ” Submit e-waste pickup requests with images
βœ” Track request status
βœ” Upload profile picture
βœ” Auto-generated OTP for secure handover
βœ” View completed request stats
βœ” Download Eco-Certificate after 10 completed pickups
βœ” Raise support tickets & chat with admin
βœ” Live pickup tracking (Google Maps direction)


πŸ› οΈ Admin Features

βœ” Manage all users (verify / reject)
βœ” Manage pickup requests (approve, reject, schedule, complete)
βœ” Assign Pickup Person
βœ” Add/Edit/Delete Pickup Persons
βœ” View platform analytics
βœ” Issue management (reply, close ticket)
βœ” Dashboard stats + Line graph
βœ” Auto-email notifications for every important action
βœ” Auto Admin creation on first app run


πŸš› Pickup Person App

βœ” Login via email/password
βœ” View assigned requests βœ” Update live location
βœ” Mark request completed using OTP
βœ” View pickup details
βœ” Simple clean UI


πŸ€– AI ChatBot

βœ” Smart automated replies
βœ” Page-aware bot
βœ” User-aware bot
βœ” Simple REST API: /api/bot/chat


βœ‰ Email Notification System

Uses JavaMailSender to send rich HTML templates for:

  • Welcome Email
  • Request Submitted
  • Request Status Updates
  • Pickup Person account onboarding
  • Password reset OTP
  • Issue reply and closure

Asynchronous sending via @Async.


🧾 Certificate Generator (HTML β†’ PDF)

βœ” Beautiful certificate template
βœ” Uses html2pdf.js
βœ” Unlock after completing 10 pickups
βœ” Auto user name, date, count


🎟 Advanced Support / Ticket System

βœ” Users can raise issues
βœ” Chat-like conversation panel
βœ” Admin/Users both can reply
βœ” Email updates on each reply
βœ” Ticket statuses: OPEN, WAITING_FOR_USER, RESOLVED, CLOSED


πŸ— Tech Stack

Backend (Spring Boot)

  • Java 17
  • Spring Boot
  • Spring Security
  • JPA / Hibernate
  • MySQL
  • Java Mail Sender
  • Lombok
  • Docker-ready structure

Frontend (React)

  • React 18
  • Axios
  • React Router
  • Recharts
  • HTML2PDF.js
  • Custom UI with CSS

πŸ“ Folder Structure (Important)

EcoSaathi/
 β”œβ”€β”€ backend/
 β”‚    β”œβ”€β”€ Config/
 β”‚    β”œβ”€β”€ Controller/
 β”‚    β”œβ”€β”€ Entity/
 β”‚    β”œβ”€β”€ Service/
 β”‚    β”œβ”€β”€ Repository/
 β”‚    β”œβ”€β”€ application.properties
 β”‚    └── EcoSaathiApplication.java
 β”‚
 └── frontend/
      β”œβ”€β”€ src/components/
      β”œβ”€β”€ src/css/
      β”œβ”€β”€ src/pages/
      β”œβ”€β”€ public/
      └── package.json

βš™ Backend Setup

1. Clone Repository

git clone https://github.com/yourname/EcoSaathi.git
cd EcoSaathi/backend

2. Configure MySQL

Create DB:

CREATE DATABASE ecosaathi;

3. Configure application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/ecosaathi
spring.datasource.username=root
spring.datasource.password=YOUR_PASSWORD

file.upload-dir=uploads

app.mail.sender=your-email@gmail.com
app.mail.sender-name=EcoSaathi
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your-email@gmail.com
spring.mail.password=app-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

4. Run Backend

mvn spring-boot:run

πŸ–₯ Frontend Setup

1. Install packages

cd ../frontend
npm install

2. Start React app

npm start

Frontend URL: http://localhost:3000
Backend URL: http://localhost:8080


πŸ”‘ API Endpoints (Short Overview)

User Auth (/api/auth)

  • POST /register
  • POST /login
  • POST /forgot-password
  • POST /reset-password
  • POST /user/{id}/request
  • GET /user/{id}/stats
  • POST /user/{id}/profile-picture

Admin (/api/admin)

User Management
Pickup Person Management
Request Management
Issue Management

Pickup Person (/api/pickup)

  • POST /login
  • GET /id/requests
  • PUT /request/complete/{id}

Issue System (/api/issues)

  • POST /create/user/{id}
  • GET /user/{id}
  • POST /{issueId}/reply
  • GET /{issueId}

πŸ—Ί Live Tracking

Uses a Google Maps formatted URL:

https://www.google.com/maps/dir/?api=1&origin=USER_LOCATION&destination=PICKUP_PERSON_LAT_LNG

🎨 UI Features

  • Modern animated home page
  • Admin dashboard with graphs
  • Certificates
  • Chatbot
  • Ticket system
  • OTP screens
  • Photo zoom modal
  • Clean response

🧩 Future Enhancements

  • Mobile app
  • Push notifications
  • Real-time live tracking (WebSockets)
  • Reward system
  • Route optimization

πŸ€– AI Model Evaluation

The integrated E-Waste Object Detection model was evaluated using standard computer vision metrics. Mean IOU (Intersection over Union): 0.70 mAP@0.5: 0.74 Precision: 0.76 Recall: 0.72 An average IOU score of 0.7 indicates good bounding box localization accuracy for detected e-waste items.


🀝 Contributing

Pull requests are welcome!
For major changes, open an issue first.


πŸ“œ License

This project is Open Source under the MIT License.


❀️ Credits

Developed by Bablu Lodha
Made with passion for a cleaner planet! πŸŒβ™»οΈ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors