Skip to content

Latest commit

 

History

History
305 lines (178 loc) · 14 KB

File metadata and controls

305 lines (178 loc) · 14 KB

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