EnviroMat is a revolutionary digital platform transforming waste management in West Bengal, India, by connecting waste sellers with sustainable material buyers through an innovative credit-based circular economy. Our mission is to make recycling profitable, accessible, and community-driven while promoting sustainable consumption patterns.
To create a sustainable future where waste becomes a valuable resource, empowering communities through technology-driven environmental solutions.
- Smart Waste Categorization: Upload images of waste materials (plastic, paper, metal, organic)
- AI-Powered Recognition: Automatic waste type identification using Google Generative AI
- Credit Rewards: Earn credits based on waste type, quantity, and quality
- Doorstep Pickup: Schedule convenient pickups at your location
- Eco-Friendly Marketplace: Curated collection of sustainable products
- Credit Payment System: Use earned credits or traditional payment methods
- Product Categories: Recycled materials, upcycled goods, and eco-friendly alternatives
- Environmental Blog: Share waste management journeys and success stories
- Community Engagement: Connect with like-minded environmental enthusiasts
- Educational Content: Learn about sustainable practices and environmental impact
- Flexible Scheduling: Standard (2-4 days) and urgent (10-30 minutes) pickup options
- Real-time Tracking: Live location updates for pickup requests
- Route Optimization: Efficient pickup routes for waste collectors
- Emergency Requests: Instant pickup for urgent waste disposal needs
- Personal Impact Metrics: Track your environmental contribution
- Credit History: Detailed transaction and earning records
- Waste Trends: Analyze your waste generation patterns
- Performance Analytics: For pickup personnel and businesses
- Framework: React 18.3.1 with Vite
- Styling: TailwindCSS 4.1.11
- State Management: Redux Toolkit
- Routing: React Router DOM 7.7.1
- Charts: Chart.js & React-ChartJS-2
- Animations: Framer Motion & GSAP
- UI Components: Lucide React Icons
- HTTP Client: Axios
- Runtime: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT & bcrypt
- File Upload: Cloudinary integration
- Email Service: Nodemailer
- AI Integration: Google Generative AI
- Validation: Validator.js
- Build Tool: Vite
- Linting: ESLint
- Package Manager: npm
- Environment: dotenv
- Scheduling: node-schedule
EnviroMat/
βββ Backend/
β βββ src/
β β βββ controllers/ # API controllers
β β βββ models/ # Database models
β β βββ routes/ # API routes
β β βββ middleware/ # Authentication & validation
β β βββ config/ # Database & cloud configuration
β β βββ utils/ # Utility functions
β β βββ mail/ # Email templates
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ Pages/ # Application pages
β β βββ services/ # API services
β β βββ slices/ # Redux slices
β β βββ utils/ # Helper utilities
β βββ public/ # Static assets
β βββ package.json
βββ README.md
- Node.js (v16 or higher)
- MongoDB
- npm or yarn
-
Clone the repository
git clone https://github.com/subratamondalnsec/EnviroMat.git cd EnviroMat -
Backend Setup
cd Backend npm install # Create .env file with required variables cp .env.example .env # Add your MongoDB URI, JWT secrets, Cloudinary config, etc. npm start
-
Frontend Setup
cd ../frontend npm install npm run dev -
Access the Application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:4000
- Frontend:
Create a .env file in the Backend directory:
# Database
MONGODB_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret
REFRESH_TOKEN_SECRET=your_refresh_token_secret
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Email Configuration
MAIL_HOST=smtp.gmail.com
MAIL_USER=[email protected]
MAIL_PASS=your_app_password
# Google AI
GOOGLE_AI_API_KEY=your_google_ai_api_key
# Server
PORT=4000
NODE_ENV=development- Upload and categorize waste materials
- Schedule pickup appointments
- Earn and spend credits
- Track environmental impact
- Participate in community discussions
- Receive pickup requests
- Manage collection routes
- Track earnings and performance
- Handle emergency requests
- Access analytics dashboard
- Purchase collected materials
- Manage inventory
- Track supply chain
- Analytics and reporting
- Image-based waste identification
- Automatic categorization using AI
- Credit calculation based on waste type
- Quality assessment and verification
- Real-time location tracking
- Route optimization algorithms
- Emergency pickup handling
- Performance analytics for pickers
- Dynamic credit pricing
- Secure transaction system
- Credit transfer capabilities
- Reward multipliers for consistent users
- Blog platform for sharing experiences
- Environmental impact tracking
- Achievement badges and leaderboards
- Educational content and tips
- Mobile-First Design: Responsive across all devices
- Dark/Light Mode: User preference-based theming
- Smooth Animations: Enhanced user experience with GSAP & Framer Motion
- Intuitive Navigation: Easy-to-use interface for all user types
- Real-time Updates: Live notifications and status updates
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/verify-email- Email verificationPOST /api/auth/forgot-password- Password reset
POST /api/waste/upload- Upload waste imagesGET /api/waste/categories- Get waste categoriesPOST /api/waste/pickup-request- Schedule pickupGET /api/waste/history- User's waste history
GET /api/orders- User ordersPOST /api/orders/create- Create new orderGET /api/credits/balance- Check credit balancePOST /api/credits/transfer- Transfer credits
We welcome contributions to EnviroMat! Please follow these steps:
- Fork the repository
- Create a 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
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
Please use GitHub Issues to report bugs or request features.
This project is licensed under the MIT License - see the LICENSE file for details.
- Environmental Inspiration: Dedicated to creating a sustainable future
- Community Support: Thanks to all early adopters and contributors
- Technology Partners: Google AI, Cloudinary, MongoDB
- Open Source: Built with amazing open-source technologies
- Email: [email protected]
- GitHub: @subratamondalnsec
- Project Repository: EnviroMat
Made with β€οΈ for a sustainable future
π± EnviroMat - Where Waste Becomes Wealth π±
