Skip to content

Unayes09/EcoSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

379 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TEAM ONTORPONTHIK

Project - EcoSync 🌍

Logo

EcoSync is a comprehensive solution designed to tackle the challenges of domestic solid waste management in Dhaka, Bangladesh. As the city rapidly expands into a megacity, efficient waste management has become crucial. Our project focuses on enhancing the waste collection process, improving the quality of services, and raising community awareness. EcoSync offers a user-friendly, responsive web application with features like real-time data visualization, secure authentication, and role-based access control. Key functionalities include the registration and management of third-party contractors, workforce tracking, waste collection monitoring, bill generation, and optimized collection plans. By leveraging modern technologies and ensuring seamless coordination among various stakeholders, EcoSync aims to transform waste management practices, contributing to a cleaner and healthier urban environment.

Live Links 🌐

Team Members πŸ‘₯

  • Arfatul Islam Asif Email
  • Unayes Ahmed Khan Email
  • Mutaher Ahmed Shakil Email

Meet Our Team

Technologies Used πŸ’»

Frontend

  • HTML HTML: To structure the web content.
  • CSS CSS: For styling the web project.
  • Tailwind Tailwind CSS: A utility-first CSS framework for rapid UI development.
  • JavaScript JavaScript: For adding interactivity to the web project.
  • React React: To build the frontend of the web project.
  • React Router React Router: For declarative routing in React applications.
  • React Spinners React Spinners: A collection of loading spinners for React.
  • Recharts Recharts: A composable charting library built on React components.
  • Animate.css Animate.css: A library of ready-to-use, cross-browser animations for use in web projects.
  • SweetAlert2 SweetAlert2: A beautiful, responsive, customizable, and accessible replacement for JavaScript's popup boxes.
  • React Google reCAPTCHA React Google reCAPTCHA: For integrating Google's reCAPTCHA to enhance security.

Backend

  • Node.js Node.js: To manage the backend and API calls.
  • Express.js Express.js: For building the backend services and APIs.
  • dotenv dotenv: For loading environment variables.
  • cors cors: For enabling cross-origin resource sharing.
  • express-rate-limit express-rate-limit: For rate limiting to enhance security.
  • nodemailer nodemailer: For sending emails.

Database

  • MongoDB MongoDB: To manage the database system.
  • Mongoose Mongoose: For object data modeling (ODM) with MongoDB.

Authentication

  • bcryptjs bcryptjs: For hashing passwords.
  • JWT JSON Web Token (JWT): For secure authorization.

Utilities

  • Axios Axios: For making HTTP requests from the frontend.

Key Features ✨

  1. Secure Authentication πŸ”’: EcoSync employs JSON Web Token (JWT) for secure authentication, ensuring that user data is protected and accessible only to authorized individuals.

  2. Registration of STS Manager πŸ› οΈ: Administrators can create and manage user accounts for STS managers, enabling them to oversee STS operations and monitor waste collection activities.

  3. Registration of Landfill Manager 🌍: Administrators can create and manage user accounts for landfill managers, allowing them to oversee landfill operations and ensure environmental compliance.

  4. Registration of 3rd Party Contractors πŸ—οΈ: Administrators can register and manage third-party contractors, including essential information such as company details, contact information, workforce size, and contract duration.

  5. Creation of Contractor Manager User πŸ‘€: Administrators can create user accounts for contractor managers, allowing them to manage workforce registration, collection plans, and monitor daily activities.

  6. Workforce Registration πŸ‘·: Contractor managers can handle the registration of employees, including essential details such as employee ID, contact information, job title, and assigned collection route.

  7. Create a Collection Plan πŸ—“οΈ: Contractor managers can create schedules for domestic solid waste collection plans, including details such as area of collection, collection start time, duration, number of laborers, number of vans, and expected weight of daily solid waste.

  8. Real-time Data Visualization πŸ“Š: EcoSync provides real-time data visualization through interactive charts and graphs, allowing users to easily analyze and understand environmental data.

  9. Monitoring Transported Waste by Contractors πŸš›: STS managers can track waste collection activities by third-party contractors, including details such as time/date of collection, amount of waste collected, type of waste, and designated STS for deposit.

  10. Monitoring Logged Working Hours ⏰: Contractor managers can track the working hours of their teams, including daily log-in/out times, total hours worked, overtime hours, and absences/leaves.

  11. Bill Generation πŸ’΅: STS managers can generate bills for third-party contractors based on the percentage of required waste collected and deposited to the STS, including calculations for basic pay, deficit, fine, and total bill.

  12. Fleet Optimization 🚚: EcoSync optimizes the fleet of waste collection vehicles to ensure efficient routes and minimal fuel consumption, reducing operational costs and environmental impact.

  13. Optimal Routes for Waste Collection πŸ—ΊοΈ: Using Google Map, EcoSync calculates the most efficient routes for waste collection, ensuring timely and cost-effective waste management operations.

  14. User-friendly Interface πŸ’»: With a clean and intuitive user interface, EcoSync ensures a smooth user experience, making it easy for users to navigate and access information.

  15. Responsive Design πŸ“±: Built with responsive design principles, EcoSync is accessible across devices of all sizes, providing a seamless experience on desktops, tablets, and mobile phones.

Role-based Access Control πŸšͺ

EcoSync implements role-based access control (RBAC) to manage user permissions effectively:

  • Administrator: Has full access to all features and functionalities of the system, including user management, contractor registration, and billing.
  • STS Manager: Can track waste collection activities, generate bills, and manage STS operations, with restricted access to administrative functions.
  • Landfill Manager: Responsible for overseeing landfill operations, including waste disposal, environmental compliance, and safety protocols.
  • Contractor Manager: Can manage workforce registration, collection plans, and monitor daily activities, but does not have access to administrative features.
  • Regular User: Limited access to view data and reports, without permission to perform any administrative or managerial tasks.

Getting Started πŸš€

Using Docker 🐳

Clone the repository and run the following command:

docker-compose up --build
  • Frontend: Runs on port 5173
  • Backend: Runs on port 8000

Manual Setup πŸ§‘β€πŸ’»

If Docker isn't working, run the system manually:

Backend:

cd samurai-backend
npm install
npm start

Frontend:

cd samurai-frontend
npm install
npm run dev

Credentials πŸ”‘

You can use our system with the following credentials:

System Admin:

  1. email: mutaher.shakil@gmail.com

    • password: 1234
  2. email: unayeskhan.0808@gmail.com

    • password: 1234
  3. email: awakicde@gmail.com

    • password: 1234

STS Manager:

  1. email: stsmanager1@gmail.com

    • password: 1234
  2. email: stsmanager2@gmail.com

    • password: 1234
  3. email: stsmanager3@gmail.com

    • password: 1234

Landfill Manager:

  1. email: landmanager1@gmail.com

    • password: 1234
  2. email: landmanager2@gmail.com

    • password: 1234
  3. email: landmanager3@gmail.com

    • password: 1234

Vehicle Information πŸš›

Here are some vehicle's information you can use:

  • [TEST - 101] [Dump Truck]
  • [TEST - 102] [Compactor]
  • [TEST - 103] [Open Truck]
  • [TEST - 104] [Container Carrier]

Security Notice πŸ”’

  • Single Active Session: For security purposes, controlled by JWT, a user is restricted to a single active session. If login attempts are made from multiple devices using the same credentials, the most recent login is prioritized, and other sessions are invalidated, requiring those users to return to the login page.

  • Enrollment: When a user enrolls, an email containing their login credentials will be sent to the provided email address. So, please provide a valid email address.

Preferred Browser: 🌐

  • Chrome

Diagrams and Workflows πŸ“Š

Entity Relationship Diagram

Entity Relationship Diagram

Backend Workflow

Backend Workflow

Project Architecture

Project Architecture

Screenshots πŸ“Έ

Homepage

Homepage

Login Page

Login Page

Admin Dashboard

Admin Dashboard Admin Dashboard

Admin Sidebar

Admin Sidebar

User & Role Management (Admin)

User & Role Management User & Role Management User & Role Management

Roles & Permissions (Admin)

Roles & Permissions Roles & Permissions Roles & Permissions

Facilities Management (Admin)

Facilities Management Facilities Management Facilities Management

Vehicle Management (Admin)

Vehicle Management Vehicle Management

Third Party Management (Admin)

Third Party Management

STS Manager Dashboard

STS Manager Dashboard STS Manager Dashboard

STS Manager Sidebar

STS Manager Sidebar

Vehicle Entry (STS Manager)

Vehicle Entry

Incoming Waste Entry (STS Manager)

Incoming Waste Entry

Optimal Fleet View (STS Manager)

Optimal Fleet View

Landfill Manager Dashboard

Landfill Manager Dashboard Landfill Manager Dashboard

Landfill Manager Sidebar

Landfill Manager Sidebar

Vehicle Entry (Landfill Manager)

Vehicle Entry

Billing (Landfill Manager)

Billing Billing

Profile

Profile

Profile Info Update

Profile Info Update

About

EcoSync is a comprehensive solution designed to tackle the challenges of domestic solid waste management in Dhaka, Bangladesh.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages