IndustReUse is a web-based platform designed to facilitate the exchange of industrial waste materials between companies, promoting circular economy practices. The platform enables businesses to list their waste materials and connect with potential buyers, reducing waste and promoting sustainable resource usage.
- User Authentication & Authorization
- Material Listing & Management
- Transaction System
- Real-time Notifications
- Analytics Dashboard
- Interactive Map Interface
- FastAPI (Python)
- PostgreSQL
- SQLAlchemy ORM
- JWT Authentication
- Pydantic for data validation
- React.js
- Material-UI (MUI)
- React Query for state management
- Axios for API calls
- Leaflet for maps
IndustReUse/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ ├── models/
│ │ ├── schemas/
│ │ ├── services/
│ │ └── main.py
│ └── requirements.txt
└── frontend/
├── src/
│ ├── components/
│ ├── services/
│ ├── App.js
│ └── index.js
└── package.json
-
Create and activate virtual environment: \\�ash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate \\
-
Install dependencies: \\�ash cd backend pip install -r requirements.txt \\
-
Set up environment variables:
- Create a .env file with:
- DATABASE_URL
- SECRET_KEY
- ALGORITHM
- ACCESS_TOKEN_EXPIRE_MINUTES
- Create a .env file with:
-
Run the application: \\�ash uvicorn app.main:app --reload \\
-
Install dependencies: \\�ash cd frontend npm install \\
-
Start the development server: \\�ash npm start \\
- POST /api/auth/register - Register new user
- POST /api/auth/login - User login
- POST /api/auth/logout - User logout
- GET /api/materials - List all materials
- POST /api/materials - Create new material
- GET /api/materials/{id} - Get material details
- PUT /api/materials/{id} - Update material
- DELETE /api/materials/{id} - Delete material
- GET /api/transactions - List all transactions
- POST /api/transactions - Create new transaction
- GET /api/transactions/{id} - Get transaction details
- PATCH /api/transactions/{id}/status - Update transaction status
- Samer Labidi