A comprehensive, full-stack water delivery solution designed for the NWU Mahikeng Campus ecosystem. Bridging the gap between student residences and local water service providers.
Features . Tech Stack . Installation . API Docs . Team
Amanzi Ordering System is a web-based platform that streamlines the logistics of water delivery. By digitizing the ordering process, we eliminate manual coordination errors, provide real-time tracking for students, and offer powerful revenue analytics for service providers.
This system was built to solve the specific logistical challenges faced by students living in residence clusters who require reliable access to purified water.
The application serves two distinct user groups with tailored dashboards:
- π Seamless Ordering: Place orders for 5L+ capacities with just a few clicks.
- π Smart Location: Select residence clusters for precise delivery.
- π³ Flexible Payments: Integrated Stripe payments or Cash on Delivery options.
- π± Live Tracking: Real-time status updates (Pending β Accepted β Out for Delivery).
- π Digital Invoicing: Auto-generated invoices with provider contact details.
- π Smart Alerts: Email and in-app notifications for order updates.
- π¦ Order Command Center: Accept, reject, and manage incoming orders efficiently.
- π Analytics Suite: Visual charts for revenue trends, popular delivery slots, and residence hotspots.
- π° Financial Tracking: Monitor daily earnings and transaction history.
- π Capacity Planning: Analyze peak ordering times to optimize delivery routes.
This project leverages the MERN architecture for scalability and performance.
| Domain | Technologies |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, Chart.js, Axios |
| Backend | Node.js, Express.js, REST API Architecture |
| Database | MongoDB (Atlas), Mongoose ODM |
| Security | JWT Auth, BCrypt hashing, CORS policies |
| Services | Stripe API (Payments), Nodemailer (Notifications) |
Ensure you have the following installed locally:
- Node.js (v16+)
- MongoDB Atlas URI
- Git
-
Clone the Repository
git clone [https://github.com/YOUR_USERNAME/amanzi-ordering-system.git](https://github.com/YOUR_USERNAME/amanzi-ordering-system.git) cd amanzi-ordering-system -
Backend Setup
cd backend npm installCreate a
.envfile in/backendand add:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_secure_secret STRIPE_SECRET_KEY=your_stripe_secret FRONTEND_URL=http://localhost:5173 EMAIL_USER=your_email@gmail.com EMAIL_PASSWORD=your_app_password
-
Frontend Setup
cd ../frontend npm installCreate a
.env.developmentfile in/frontendand add:VITE_API_URL=http://localhost:5000/api VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_public_key
-
Run the Application Terminal 1 (Backend):
npm run devTerminal 2 (Frontend):npm run dev
Click to view the full file tree
amanzi-ordering-system/
βββ backend/
β βββ src/
β β βββ config/ # DB & Stripe Config
β β βββ controllers/ # Logic for Orders, Auth, Payments
β β βββ middleware/ # Auth & Error Handling
β β βββ models/ # Mongoose Schemas (User, Order)
β β βββ routes/ # API Route Definitions
β β βββ services/ # Email & Helper Services
β βββ server.js # Entry Point
β
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ Auth/ # Login/Register components
β β β βββ Charts/ # Dashboard Visualizations
β β β βββ Dashboard/ # Role-based Dashboards
β β β βββ Invoices/ # Invoice Generation
β β β βββ Payment/ # Stripe Elements
β β βββ services/ # Axios API consumers
β β βββ styles/ # Global styles
β βββ vite.config.js
Base URL: http://localhost:5000/api
| Method | Endpoint | Description |
|---|---|---|
POST |
/auth/register |
Register new Customer/Provider |
POST |
/auth/login |
Authenticate user & retrieve Token |
| Method | Endpoint | Access | Description |
|---|---|---|---|
POST |
/orders |
Customer | Create a new water order |
GET |
/orders/my-orders |
Customer | View personal order history |
PUT |
/orders/:id/status |
Provider | Update status (Accept/Reject) |
| Method | Endpoint | Description |
|---|---|---|
POST |
/payments/create-intent |
Initialize Stripe transaction |
POST |
/payments/webhook |
Listen for payment success events |
Proudly built by students of North-West University (Mahikeng Campus).
| Name | Role | Links |
|---|---|---|
| Bheki Mogola | Backend Lead & Architecture | |
| Karabo Makau | Frontend Lead & UI/UX | |
| Potego Sethwape | Documentation & QA |
We welcome contributions to improve hydration access!
- 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.