The Super Metro Bus Management System is a Command-Line Interface (CLI) application built using Python. It is designed to manage and track matatus (minibuses) operated by Super Metro, a Matatu Sacco in Kenya. This tool empowers users to effortlessly handle various aspects of Matatu Sacco management, including member and fleet information, routes, and financial analysis, providing a comprehensive solution for Sacco owners.
-
Add and Manage Matatus: Easily add new matatus to the fleet, find their details, and remove them when necessary.
-
Member Management: Keep track of members associated with the matatu operation, including their contact information and ownership details.
-
Route Management: Maintain a database of routes with corresponding pricing information.
-
Search and Retrieval: Quickly find matatus, members, and routes using name, number plate, or ID-based search queries.
-
Financial Analysis: Calculate estimated monthly gross amounts for all matatus to assist in financial reporting and analysis.
git clone https://github.com/ArshavineRoy/super-metro-bms
cd super-metro-bms
The root directory of this repository contains the Pipfile
with all the required dependencies. Install them by running this command from the root
directory:
pipenv install
If pipenv
is not already installed, you can do so using pip
:
pip install pipenv
pipenv shell
The CLI app must be run from within the app
directory
cd app
main.py
is the enttry into the app
./main.py
-
add-matatu: This command allows the user to add a new matatu to the fleet.
-
add-member: This command allows the user to add a new member to the database.
-
add-route: This command allows the user to add a new route to the database.
-
all-matatu-financials: This command calculates estimated monthly gross amounts for all matatus and exports the results to a .csv file.
-
delete-matatu: This command allows the user to delete a matatu by its ID.
-
delete-member: This command allows the user to delete a member by their ID.
-
delete-route: This command allows the user to delete a route by its ID.
-
find-matatu-by-driver-name: This command helps the user find a matatu by its driver's name.
-
find-matatu-by-number-plate: This command allows the user to find a matatu by its number plate.
-
find-member-by-name: This command helps the user find a member by their name.
-
find-route-by-name: This command allows the user to find a route by its name.
-
matatus-on-route: This command finds all matatus plying a specific route and exports the results to a .csv file.
-
matatus-owned-by: This command lists all matatus owned by a specific member.
-
owner-of-matatu: This command helps the user find the owner of a matatu by its number plate.
Authored by Arshavine Waema.
Licensed under the MIT License - see the LICENSE file for details.