A role-based Dispatch Management System that simulates a full-stack workflow without a backend. It uses browser localStorage for persistence and demonstrates authentication, order lifecycle management, and admin/client workflows.
- Key Features
- Order Workflow (Lifecycle)
- Architecture & Data Flow
- Data Schema (LocalStorage)
- Project Structure
- Installation & Setup
- Login Credentials
- Future Roadmap
- Secure Login: Role-based access control.
- Order Entry: Create orders with item, quantity, and godown selection.
- Approval Notifications: Clients approve orders before dispatch.
- Order History: Filterable list with status badges.
- Responsive UI: Mobile-friendly layout with sidebar navigation.
- Overview: View all
Pendingorders with quick stats. - Pre-Dispatch Planning: Select and move orders to
Planned. - Client Approval Requests: Notify clients for approval.
- Dispatch Management: Finalize
Readyorders. - Data Control: Reset local data for demos/testing.
-
Pending- Client creates an order.
- Visible on Admin Overview.
-
Planned- Admin plans selected orders.
- Visible on Pre-Dispatch.
-
Client Approval Pending- Admin requests client approval.
- Visible in Client Notifications.
-
Ready- Client approves the order.
- Visible on Admin Dispatch.
-
Completed- Admin marks as dispatched.
- Appears in History.
- Frontend: React + Vite
- Routing:
react-router-domwith protected routes - State: React
useState/useEffect - Persistence:
src/utils/storage.js(acts as a fake DB) - Auth: LocalStorage-based role/session handling
Note: This is a serverless, local-first prototype designed for demos and UI validation.
[
{ "id": 1, "username": "admin", "password": "123", "role": "admin", "name": "Admin User" },
{ "id": 2, "username": "client", "password": "123", "role": "user", "name": "Agrawal Plastic" }
][
{
"id": 17092384,
"client": "Agrawal Plastic",
"item": "Parag Ld 51mic",
"qty": "500",
"status": "Pending",
"createdAt": "21/01/2026"
}
]src/
├── components/
│ ├── admin/Sidebar.jsx # Admin navigation
│ ├── user/UserSidebar.jsx # Client navigation
│ ├── ProtectedRoute.jsx # Auth guard
│ └── MobileLayout.jsx # Responsive wrapper
├── pages/
│ ├── admin/
│ │ ├── Overview.jsx # Pending orders
│ │ ├── PreDispatch.jsx # Planned orders
│ │ └── OrderDispatch.jsx # Ready orders
│ ├── user/
│ │ ├── UserDashboard.jsx
│ │ ├── UserOrders.jsx
│ │ └── UserNotifications.jsx
│ ├── Login.jsx
│ └── OrderEntry.jsx
├── utils/
│ └── storage.js # LocalStorage data layer
├── App.jsx # Routes
└── App.css # Global styles# Install dependencies
npm install
# Start development server
npm run devOpen: http://localhost:5173 (or the port shown in terminal)
| Role | Username | Password | Notes |
|---|---|---|---|
| Admin | admin | 123 | Full access |
| User | client | 123 | Client: Agrawal Plastic |
- Backend API (Node.js / Express)
- Database (MongoDB / PostgreSQL)
- JWT Authentication
- PDF Dispatch Challans
- Email Notifications
Developed wi









