"Turning Old Tech Into New Possibilities"
An AI-powered, gamified, and offline-first ecosystem designed to modernize e-waste collection and recycling.
Punarchakra is a comprehensive full-stack solution bridging the gap between consumers and e-waste recycling facilities. By leveraging Groq AI Vision for waste classification, IoT simulation for smart bins, and a gamified rewards system, functionality meets sustainability.
The platform relies on a "Human-Centric AI" philosophy, ensuring accessibility through Voice Commands, Multi-language Support (English, Hindi, Spanish), and a robust Offline-First architecture.
- AI Vision Scanner: Instantly detects and classifies e-waste (Laptops, Phones, PCBs, Batteries) using Llama Vision (via Groq).
- Auto-Pricing Engine: dynamically estimates scrap value and credit points based on item type and condition.
- Voice Assistant: Hands-free navigation and interaction using the Web Speech API ("Find Bins", "Scan QR", "Dark Mode").
- Industrial Design: A dedicated, high-contrast interface for physical kiosk terminals.
- Interactive States: Real-time feedback for "Processing", "Accepted", "Rejected", and "Maintenance" states.
- Fault Tolerance: Fully functional Light & Dark modes for various lighting conditions.
- Interactive Bin Locator: Leaflet-based maps with custom 3D markers indicating bin fill levels.
- Optimized Routing: (Planned) Route suggestions for collectors based on high-priority full bins.
- Impact Charts: Visual analytics of CO2 saved and total waste recycled.
- Leaderboards & Challenges: Community-driven goals to encourage sustainable habits.
- Rewards Store: Redeem "Green Credits" for vouchers and products.
- Role-Based Access Control (RBAC): Secure admin portal for managing bins, users, and logistics.
- Secure Auth: Powered by NextAuth.js v5 with JWT and encrypted sessions.
- Offline-First Architecture: Changes are queued locally when offline and synced automatically when connectivity returns.
- Progressive Enhancement: Critical features work across varying network speeds.
| Category | Technologies |
|---|---|
| Core | Next.js 15 (App Router), React 19, TypeScript |
| Styling | Tailwind CSS 4, Shadcn UI, CSS Variables |
| Animation | Framer Motion, GSAP |
| Maps | Leaflet, React-Leaflet |
| State | React Context, Custom Hooks |
| AI Integration | Groq SDK (LLM Vision) |
| Category | Technologies |
|---|---|
| Runtime | Node.js, Express |
| Database | MongoDB, Mongoose ODM |
| Auth | JWT (JSON Web Tokens), NextAuth.js Integration |
| Security | CORS, Helmet, Rate Limiting |
- Node.js (v18+)
- MongoDB (Local or Atlas)
- Git
git clone https://github.com/Vortex-16/punarchakra.git
cd punarchakraNavigate to the server directory and install dependencies:
cd Server
npm installCreate a .env file in Server/ with the following:
PORT=5000
MONGO_URI=mongodb://localhost:27017/punarchakra
JWT_SECRET=your_super_secret_jwt_keyStart the backend server:
npm run dev
# Server running on http://localhost:5000Open a new terminal, navigate to the client directory:
cd Client
npm install --legacy-peer-depsCreate a .env file in Client/ with the following:
NEXT_PUBLIC_API_URL=http://localhost:5000/api
NEXT_PUBLIC_GROQ_API_KEY=your_groq_api_key_here
NEXTAUTH_SECRET=your_nextauth_secret_hash
NEXTAUTH_URL=http://localhost:3000Start the frontend development server:
npm run dev
# Client running on http://localhost:3000Admin Account:
- Email:
admin@ewaste.com - Password:
admin123
User Account:
- Email:
user@demo.com - Password:
user123
(Note: You can register new users directly from the login page)
For a deeper dive into the architecture, design choices, and user stories, please refer to:
- Design & Technical Documentation: Detailed breakdown of the architecture, tech stack decisions, and core user flows.
- Design Thinking & Philosophy: Q&A on how we handle trust, accessibility, and scalability.
- User Scenarios: Real-world use cases (Student, Elderly, Admin) and edge-case handling.
Punarchakra/
├── Client/ # Next.js Frontend
│ ├── src/
│ │ ├── app/ # App Router Pages (Dashboard, Scan, Map)
│ │ ├── components/ # Reusable UI (SmartBin, VoiceAssistant)
│ │ ├── hooks/ # Custom Logic (useSession, useOffline)
│ │ ├── lib/ # Utilities & Constants
│ │ └── contexts/ # Global State Providers
│ └── public/ # Static Assets (Images, 3D Models)
│
├── Server/ # Express Backend
│ ├── src/
│ │ ├── controllers/ # Route Logic (Auth, Bins, User)
│ │ ├── models/ # Mongoose Schemas
│ │ ├── routes/ # API Endpoint Definitions
│ │ └── middleware/ # Auth & Error Handling
│ └── config/ # DB Connection
│
└── README.md # Project DocumentationContributions are welcome! Please fork the repository and create a pull request for any feature enhancements or bug fixes.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Made with 💚 to protect our 🌍
Punarchakra Team © 2026