Skip to content

Repository files navigation

WasteWise — E-Waste Management & Recycling Tracker

A full-stack web application for managing e-waste collection, logistics, and recycling built with Next.js, Prisma, and PostgreSQL. Developed as a group software engineering project at the University of Southampton Malaysia.

🔗 Live Demo: group2-wastewise.vercel.app (currently offline — third-party API costs)


Features

For Users

  • Submit e-waste with photo upload — Gemini AI analyses weight and condition automatically
  • Schedule pickups and track collection status in real time
  • View nearby recycling centres on an interactive map (Google Maps API)
  • Earn and redeem reward points for recycling

For Logistics

  • View and accept pickup requests
  • Real-time navigation to pickup locations
  • Update e-waste status through the collection flow

For Managers

  • Assign logistics staff to pickups
  • Complete pickup reports after delivery to recycling centres
  • View analytics and system statistics

For Admins

  • Direct database management
  • User and role administration

Tech Stack

Layer Technology
Frontend Next.js 14, TypeScript, Tailwind CSS, shadcn/ui
Backend Next.js API Routes, Prisma ORM
Database PostgreSQL (Supabase)
Auth NextAuth.js (credentials + Google OAuth)
AI Google Gemini API
Maps Google Maps JavaScript API
Testing Jest, React Testing Library
Deployment Vercel

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Google Cloud project (Maps API + OAuth credentials)
  • Google Gemini API key

Setup

  1. Clone the repo and install dependencies:
git clone https://github.com/Alone1101/group2.git
cd group2
npm install
  1. Create a .env file in the root directory:
DATABASE_URL="your_database_url"
DIRECT_URL="your_direct_database_url"
NEXTAUTH_SECRET="your_secret"
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
GEMINI_API_KEY="your_gemini_api_key"
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="your_maps_api_key"
  1. Sync the database schema:
npx prisma db push
  1. Start the development server:
npm run dev

Running Tests

npm test                  # run all tests
npm test -- --watch       # watch mode
npm test -- --coverage    # coverage report

Team

Built by Group 2, COMP2211 — Software Engineering Group Project, UoSM Year 2.


Academic coursework. Not intended for production use.

About

Full-stack e-waste management platform with AI-powered waste analysis, real-time logistics tracking, and a rewards system — built with Next.js, Prisma, and Google Maps API.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages