A full-stack web application for waste management and upcycling marketplace. Users can buy/sell recyclable items, place orders, and get upcycling ideas.
- User authentication (signup/login)
- Marketplace for buying/selling waste items
- Order placement with delivery address
- Upcycling ideas section
- Feedback system
- Responsive design with Material-UI
- React 18
- React Router DOM
- Material-UI (MUI)
- Axios for API calls
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- bcrypt for password hashing
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd renewwaste
- Install frontend dependencies:
npm install
- Install backend dependencies:
cd backend
npm install
cd ..
- Set up environment variables:
Create .env
file in the backend directory:
JWT_SECRET=your_jwt_secret_key
MONGODB_URI=mongodb://127.0.0.1:27017/wasteloop
PORT=5000
npm run dev
This will start both frontend (port 3000) and backend (port 5000) concurrently.
npm run build
cd backend
npm start
POST /api/auth/signup
- User registrationPOST /api/auth/login
- User login
GET /api/items
- Get all itemsPOST /api/items
- Create new item
GET /api/orders
- Get all ordersPOST /api/orders
- Place new order
POST /api/feedback
- Submit feedback
- Build the project:
npm run build
- Deploy the
build
folder to Netlify
- Ensure Procfile is present in backend directory
- Set environment variables in Heroku
- Deploy the backend folder
renewwaste/
├── backend/ # Express server
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── server.js # Main server file
│ └── package.json
├── src/ # React frontend
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ ├── context/ # React context
│ └── App.js
├── public/ # Static assets
├── build/ # Production build
└── package.json
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.