This is a gamechanger project for logistics in Africa
# iTruck
iTruck is a full-stack logistics platform for shippers, fleet owners, drivers, and operations teams. The application covers booking, bidding, fleet and driver management, shipment workflows, documents, messaging, delivery proof, wallets, notifications, and administration.
## Architecture
- `workspace/` — React 18 single-page application built with Vite and TanStack Query.
- `backend/` — Express API, Socket.IO, MongoDB/Mongoose models, and provider integrations.
- `frontend/` — generated production build output; ignored by Git and recreated by `npm run build`.
- `docs/` — active operational, production, provider, and legal documentation.
- `scripts/` — deployment rehearsal, load, Docker, and launch checks.
- `nginx/` — optional reverse proxy for the container stack.
The Vite application builds directly into `frontend/`. Express serves that directory and falls back to `frontend/index.html` for browser routes. API routes remain under `/api`.
## Requirements
- Node.js 20.19 or newer (Node 22 recommended)
- npm 10
- MongoDB for persistent/live operation
- Redis for multi-instance rate limiting, Socket.IO fan-out, and coordinated background work
## Install
```bash
npm install
npm install --prefix backend
npm install --include=dev --include=optional --prefix workspace
```
Copy `.env.example` to `.env` and replace every production placeholder. Never commit environment files or credentials.
## Development
Run the API:
```bash
npm run dev
```
Run Vite in another terminal:
```bash
npm run app:dev
```
Vite proxies `/api` and `/socket.io` to `
127.0.0.1`.
To run the production-shaped application locally:
```bash
npm run build
npm start
```
Then open `
127.0.0.1`.
## Quality Checks
```bash
npm run lint
npm run format:check
npm test
npm run test:frontend
npm run app:build
```
Run the complete CI gate with:
```bash
npm run ci:check
```
Browser tests build the frontend and start the backend automatically:
```bash
npm run test:e2 …