Skip to content

IBRA-oub/HayClean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌍 HayClean

📌 Project Overview

HayClean is an innovative and intuitive mobile application designed to facilitate waste management and reporting in neighborhoods. The app strengthens communication between citizens and local authorities while raising awareness about eco-friendly practices for a cleaner and healthier environment.

🛠️ Technologies Used

  • 🖥️ Backend:
    • NestJS 🏗️
    • MongoDB 🍃
    • MinIO 📦 (for image storage),
    • JWT 🔑 (authentication security)
  • 📱 Frontend: React Native with Expo 🚀
  • 🐳 Containerization: Docker 🐋

👥 User Roles

👤 Citizen Functionalities

  • 🔐 Secure authentication via JWT
  • 🗑️ View waste reports in their city with a dislike option
  • 🌱 Access environmental information about their city
  • 📅 View events created by the municipality with options to participate or cancel participation
  • 🔔 Receive notifications for event participation approval or rejection
  • 🏠 View and edit profile information or delete their account
  • 🗺️ Locate available collection points on a city map
  • 📸 Report waste by:
    • Taking a photo
    • Specifying waste size, type, and accessibility
    • Adding additional details (optional)
    • Automatic location detection

🏛️ Municipality Functionalities

  • 📌 View all waste reports in the city
  • 🔍 Access detailed information for each report
  • Confirm waste report processing
  • 🗑️ Manage collection points (add, delete, edit)
  • 📅 Manage events and environmental information
  • 🔔 Notify citizens who want to participate in events and accept/reject participation
  • 🏠 View and edit profile information or delete account Screenshot 2025-03-20 133712 Screenshot 2025-03-20 133742

📦 Project Setup

🔧 Backend Setup

Clone the repository

git clone https://github.com/IBRA-oub/HayClean.git
cd hayclean/BACKEND

Install dependencies

npm install

Setup Your .env

MONGODB_URI=YOUR_MONGODB_URI
MINIO_ENDPOINT=YOUR_MINIO_ENDPOINT
MINIO_PORT=YOUR_MINIO_PORT
MINIO_ACCESS_KEY=YOUR_MINIO_ACCESS_KEY
MINIO_SECRET_KEY=YOUR_MINIO_SECRET_KEY
MINIO_ROOT_USER=YOUR_MINIO_ROOT_USER
MINIO_ROOT_PASSWORD=YOUR_MINIO_ROOT_PASSWORD
MINIO_BUCKET_NAME=YOUR_MINIO_BUCKET_NAME
ACCESS_TOKEN_SECRET=YOUR_ACCESS_TOKEN_SECRET
GOOGLE_MAIL_APP_EMAIL = YOUR_GOOGLE_MAIL_APP_EMAIL
GOOGLE_MAIL_APP_PASSWORD =YOUR_GOOGLE_MAIL_APP_PASSWORD

Build and run the Docker 🐳 containers

docker-compose up --build

📱 Frontend Setup

cd ../FRONTEND

Install dependencies

npm install

Setup Your .env

EXPO_PUBLIC_API_URL = http://YOUR_IP_ADDRESS:3000
EXPO_PUBLIC_IP_ADDRESS = YOUR_IP_ADDRESS

Start the application

npx expo start

📖 API Documentation

The API documentation is available via Swagger at:

http://localhost:3000/api

and Postman :

https://documenter.getpostman.com/view/33302675/2sAYkErzok

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors