Critical Fixes:
- Registration routes: changed /shipper → /register/shipper, /driver → /register/driver
(was causing 404s — landing page linked to /register/* but routes were /shipper and /driver)
- Registration form actions: fixed to match /register/shipper and /register/driver
- Removed duplicate /payments route mount in server.js (payments.js is escrow, mounted at /escrow)
- Supabase client: now uses service key (falls back to anon key)
- Created missing pages/errors/403.ejs view
Documentation:
- README.md: full project documentation
- .env.example: environment variable template
- .dockerignore: exclude dev files from Docker image
WhatsApp Parser v2:
- Pre-processing: normalize whitespace, expand abbreviations (frt→freight, adv→advance, etc.)
- Number format normalization: 1.5L→150000, 50K→50000, 2.5lakhs→250000
- Context-aware amount classification (freight vs advance vs commission vs driver pay)
- Multiple route patterns: 'X to Y', 'X → Y', 'From X to Y', 'X - Y'
- Vehicle number normalization with flexible spacing
- Date extraction (DD/MM/YYYY, DD-MM-YY, 15 Jan 2026)
- Material type and weight extraction
- Auto-calculate commission (5% default or freight - driver rate)
- Auto-calculate pending amounts
- Confidence scoring (high/medium/low)
- POST /api/parse-whatsapp endpoint
- GET /api/parser/test with sample messages
Mobile Responsiveness:
- Hamburger menu button on mobile
- Slide-in sidebar overlay
- Responsive stats grid (4→2→1 columns)
- Stacked filters and form rows on small screens
- Full-width action buttons
- Smaller login container on mobile
- Horizontal scroll for tables
- Pagination stacking on small screens