Node.js + Express + MongoDB backend for the StreetConnect hackathon problem statement.
- Vendor onboarding and vendor discovery with geospatial search
- Order creation and order status updates
- Delivery partner data model and registration endpoint
- Centralized error handling and environment-based config
streetconnect-backend/
config/
db.js
controllers/
deliveryPartnerController.js
orderController.js
vendorController.js
middleware/
errorMiddleware.js
models/
DeliveryPartner.js
Order.js
Vendor.js
routes/
deliveryPartnerRoutes.js
orderRoutes.js
vendorRoutes.js
app.js
server.js
.env.example
package.json-
Install dependencies:
npm install
-
Create
.envfrom template:cp .env.example .env
-
Update
MONGODB_URIin.env. -
Run development server:
npm run dev
POST /api/vendors/registerGET /api/vendors/nearby?lat=<latitude>&lng=<longitude>POST /api/orders/createPATCH /api/orders/:id/statusPOST /api/delivery-partners/register
POST /api/vendors/register
{
"name": "Ravi Chaat Corner",
"stallType": "chaat",
"menu": [
{
"nameEnglish": "Pani Puri",
"nameRegional": "Pani Puri",
"descriptionEnglish": "Crispy puris with spicy water",
"descriptionRegional": "Crispy puri with spiced water",
"price": 40,
"isAvailable": true
}
],
"latitude": 28.6139,
"longitude": 77.209,
"isOnline": true
}POST /api/orders/create
{
"customer": {
"name": "Aman",
"phone": "9999999999",
"address": "Sector 18, Noida"
},
"vendorId": "663f2adf1a6c8f4fdcb7cb16",
"items": [
{
"itemName": "Pani Puri",
"quantity": 2,
"price": 40
}
],
"totalPrice": 80
}PATCH /api/orders/:id/status
{
"status": "preparing"
}"# StreetConnect"