bharath/README.md
Vivek 394117dd74 BharathTrucks MVP - 6 sprints complete
- Govt-app styled freight marketplace
- Role-based auth (driver/shipper/broker/admin)
- Load board with bidding system
- Trip tracking with status flow
- In-app messaging
- Admin panel
- Mobile bottom nav + PWA
- Docker + Coolify ready
2026-05-31 06:21:13 +00:00

88 lines
2.9 KiB
Markdown

# 🚛 BharathTrucks — India's National Freight Marketplace
> राष्ट्रीय माल परिवहन मंच — ट्रक ड्राइवर, शिपर और ब्रोकर के लिए
## Quick Start
```bash
cd webapp
npm install
cp .env.example .env # Add your Supabase credentials
npm start # http://localhost:3000
```
## Database Setup
1. Create a Supabase project at [supabase.com](https://supabase.com)
2. Go to SQL Editor → paste contents of `supabase-FULL-migration.sql` → Run
3. Copy your project URL and anon key to `.env`
**Default admin:** username=`admin`, password=`admin123`
## Deploy to Production (Coolify + Hostinger VPS)
1. Push code to GitHub/GitLab
2. In Coolify: New Resource → Docker → point to repo
3. Set environment variables (from `.env.example`)
4. Domain: bharathtrucks.com → point DNS to VPS IP
5. Done — auto-deploys on push to main
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Backend | Node.js + Express |
| Views | EJS (server-rendered) |
| Database | Supabase (PostgreSQL) |
| Auth | Username + Password (bcrypt) |
| Styles | Custom CSS (govt-app theme) |
| Deployment | Docker + Coolify |
| PWA | Service Worker + Manifest |
## Features
- **Load Board** — Shippers post loads, drivers browse and bid
- **Bidding** — Drivers bid on loads, shippers accept best bid
- **Trip Tracking** — Status flow: confirmed → picked up → in transit → delivered
- **Messaging** — Direct chat between users
- **Dashboards** — Role-specific (driver/shipper/broker) with real stats
- **Admin Panel** — User management, platform metrics, load overview
- **WhatsApp Share** — Share loads via WhatsApp
- **Mobile-First** — Bottom nav, responsive, PWA installable
- **Govt-App Design** — Tricolor, navy theme, Hindi-first, trust signals
## User Roles
| Role | Username | Features |
|------|----------|----------|
| Driver | Vehicle number (e.g. MH31AB1234) | Browse loads, bid, track trips, earnings |
| Shipper | Choose any username | Post loads, review bids, accept, track shipments |
| Broker | Choose any username | Post loads for clients, manage deals |
| Admin | `admin` | User management, platform metrics |
## Project Structure
```
webapp/
├── src/
│ ├── server.js # Express app entry
│ ├── config/ # env.js, constants.js
│ ├── middleware/ # auth.js
│ ├── routes/ # auth, loads, trips, admin, messages
│ ├── services/ # supabase.js
│ ├── views/pages/ # All EJS pages
│ ├── views/partials/ # header, footer, bottom-nav
│ └── public/ # CSS, JS, manifest, SW
├── Dockerfile
├── package.json
└── supabase-FULL-migration.sql
```
## Environment Variables
```
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-key
SESSION_SECRET=random-64-char-string
PORT=3000
```