Courier Management System (CMS) is a comprehensive Java-based application designed to streamline the operations of a courier business. Built with Object-Oriented Programming (OOP) principles and following the Command Query Responsibility Segregation (CQRS) pattern, CMS provides a robust CLI interface for managing users, shipments, and payments.
The system supports role-based authentication for staff and couriers, enabling secure access to different functionalities. Staff members can manage user accounts, create and track shipments, record payments, and generate comprehensive reports. Couriers have focused access to shipment tracking and status updates relevant to their deliveries.
CMS implements a clean architecture with separated concerns - domain entities represent core business objects (User, Shipment, Payment), repositories handle data persistence, and services are split into command operations (create, update, delete) and query operations (read, search, report generation). The CLI interface provides intuitive menu-driven navigation for all system features.
Key features include automated payment generation upon shipment creation, real-time shipment status tracking, comprehensive reporting for business insights, and file-based data persistence for lightweight deployment. The modular design ensures easy maintenance and extensibility for future enhancements.
Data persistence is handled through simple text files, making the application lightweight and easy to deploy without external database dependencies. CMS is ideal for small to medium courier businesses seeking an efficient, reliable, and extensible management solution.
Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
The workspace contains two folders by default, where:
src: the folder to maintain sourceslib: the folder to maintain dependencies
Meanwhile, the compiled output files will be generated in the bin folder by default.
If you want to customize the folder structure, open
.vscode/settings.jsonand update the related settings there.
The JAVA PROJECTS view allows you to manage your dependencies. More details can"# CMS"