Task Manager
This project utilizes lists, dictionaries and functions to extend the functionality of a simple task management system. The program is designed for a small business to help it manage tasks assigned to each member of a team.
- Ability to refactor code.
- Reduce code complexity, and
- Ensure the readability of a team’s functioning code so that other developers will not struggle to decipher the code.
- Extend the functionality beyond the standard task specification where necessary or possible
- Package the application for use and modification
- Demonstrate core software engineering principles covering OOP, SOLID, PEP8 standard
The application allows for two types of users:
- Admin user
- Non-admin users
The admin has extended rights and priviledges which are not possessed by no-admin users. The admin differs from non-admin users because he can view all tasks on record, generate reports and display statistics. Non-admin users would not have the range of program options which the admin would have on their display panel
To install the program on your local computer, the relavant libraries would have to be installed on the host computer. These libraries have been made available in the requirements.txt file which can be found in the repository of project files. Since development of the program was made in a virtual containerized enviroonment, pip freeze command has been used to provide the complete list of libraries used within the virtual environment duriong production. Finally, the program has been tested on both a windows command line environment and ubuntu 22.04 LTS and it works seamlessly on both platforms.
The program flow will be demonstrated with the aid of visuals, which are made by screen grabs of the program during execution for each of the menu items.
In total, there are seven menu options which can be selected from by the admin, and 5 menu options which non-admin users can choose from. These menu options are:
- Registering a user(r): works to register a new user by requesting a username and password that must be unique
- Adding a task(a): allocate task to a specific user
- View all(va): view all allocated tasks with serial numbers
- View mine(vm): view only current user's tasks and their serial number as found on task list
- Generate reports(gr): Generate report which would be written to a text file. Two reports are required here viz-a-vis task_overview.txt and user_overview.txt
- Display statistics(ds): Display statistics of task manager app usage and status by pulling information from the previous two files listed in (5)
- Exit application(e)
The resulting program was completed by the author and shows my understanding of various experimented concepts during the course of the HyperionDev's software engineering bootcamp. However, I would like to sincerely thank the tutors, code reviewers and mentors who helped to make the bootcamp a success. I am a much more confident software engineer because of them.