Authors: August Bennett, Johnny To, Lorenzo Gonzalez, Nick Lin
Either in school or work, sometimes we feel overwhelmed with the amount of tasks and instructions that we need to perform week by week. Ways to organize these task is paramount for students or even heavy workflows.
This project will be written in C++ and will be run via the terminal. (This may change during development). There is ongoing discussion and research in what to do for the GUI of this project.
In this application, a user can create tasks including a title, description, classification (e.g. personal, work, study), priority, duration, and due date. Users can also create Projects that includes multiple tasks. Task lists can represent larger tasks that have subtasks within them. Tasks that have subtasks are required to have their Subtasks finished or removed before marked as complete. Users can display, edit, and delete tasks and Projects. Users can view their tasks in intuitive ways such as via Date, Priority, and even check Today's Tasks.
Create Detailed Tasks
- Title, Description, Classification, Priority, Duration, and Due Dates.
- Create Task Lists and Stacked Tasks.
- Edit and Delete Tasks.
This Class Diagram Implements 2 Design Patterns. The first design pattern is the Composite Design Pattern. This is implemented in the construction of the Project and the Tasks class being subclasses to the Abstract Class Base
. Next is the Factory Design Pattern. There are 3 Factories we are creating, each represent a different essential file to be created in runtime.
We Picked a Base Design Pattern because it allows us to delegate certain items like marking tasks as complete in the context of a Project. For the Factories, That allows us to easily create these objects in runtime and be used by the client. They helped us to write better code by allowing us to seperate the creation and the structure of the code into two seperate items wwe can then code upon.
Shows how you need to finish your SubTasks in order to mark your Task as complete. Shows the Priority View Shows Today's Tasks
If working in the terminal(or in hammer),
- Clone Repo.
- run
cmake3 .
to create the testing file and the task_scheduler file. - run
./task_scheduler
to run the driver. - run
./test
to check out all tests
This project was tested using GoogleTest.