mirror of
http://forgejo-oa09toasww4dgii9cj3gpzda.187.127.164.61.sslip.io/iamcoolvivek007/bharath.git
synced 2026-06-11 00:06:51 +00:00
- 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
88 lines
2.9 KiB
Markdown
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
|
|
```
|