Shipment management system prototype for Saloodo.
To enable a private delivery service to collect and deliver parcels. The system lets a manager use a Management Dashboard to view, track, assign, and manage a list of all shipments. A separate, mobile-responsive user interface (the Courier To-Do Web Tool) allows bike couriers to track the shipments assigned to them and register a timestamp for pickup and delivery of the shipments, which is viewable to a manager from the Management Dashboard.
Clone or download the repository, then from the command line, run npm install
and npm run start
. The system should open in a new browser window or tab automatically at http://localhost:3000.
Back end:
- Node.js
- Express
- MongoDB
- Mongoose
Front end:
- React
- React Router
Testing:
- Mocha
- Chai
- Faker
Endpoints for shipments, couriers, bundles.
Currently, shipments are displayed individually. Bundles can be displayed as grouped shipments, visually identified as a bundle by spacing and borders to set the group apart from other groups and individual shipments.
- Use MobX (https://mobx.js.org/getting-started.html) to manage state in front end.
- Break the front end into smaller components (e.g., individual components for each button type rather than reusing a generic button type and passing in props).
- Refactor to use styled components (potentially).
- Add feature: allow users to sort and filter shipments by order status, address, and other criteria.
- Unit test front end.
- Display courier name instead of ID in Management Dashboard.
- Use Socket.io or other websocket technology to update Manager Dashboard and Courier Web To-Do Tool in realtime when shipments are created or updated (priority).
- Use sessions, login, and authentication to ensure only authorized managers and couriers can access the tools.
- Do more thorough testing of API endpoints and integration tests.
- Display assignment, pickup, and delivery times in a more human-readable format on the front end.