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)
- 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
- View and accept pickup requests
- Real-time navigation to pickup locations
- Update e-waste status through the collection flow
- Assign logistics staff to pickups
- Complete pickup reports after delivery to recycling centres
- View analytics and system statistics
- Direct database management
- User and role administration
| 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 |
- Node.js 18+
- PostgreSQL database
- Google Cloud project (Maps API + OAuth credentials)
- Google Gemini API key
- Clone the repo and install dependencies:
git clone https://github.com/Alone1101/group2.git
cd group2
npm install- Create a
.envfile 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"- Sync the database schema:
npx prisma db push- Start the development server:
npm run devnpm test # run all tests
npm test -- --watch # watch mode
npm test -- --coverage # coverage reportBuilt by Group 2, COMP2211 — Software Engineering Group Project, UoSM Year 2.
Academic coursework. Not intended for production use.