This is a simple and functional Todo List application built using C# console-based interface. It allows you to create, update, delete, edit and view task info like due dates, completion status, and metadata.
Create a new task with a title and due date, View TODO task in a simple list format, View details of a specific task (Created date, Due date, Completed date, Last modified date), Edit task title or status, Deletes task by ID, Detect and block duplicate IDs or IDs not found. Tracks when a task was:
- Created
- Completed
- Last modified
This application uses a design with the following structure:
- TodoItem.cs: Represents a single todo task
- TodoManager.cs: Contains core logic for managing tasks (create, delete, update, etc.)
- TaskViewer.cs: Handles rendering tasks to the console
- App.cs: Controls the user interface and handles user input
- Status.cs: Handles status value of todo task like "Open" or "Complete"
- InputParser.cs: Parses edit commands like title=Gym or status=complete
- EditToItemInstruction.cs: Holds property-value pairs for editing a task
- Global.cs: Holds input commands
Prerequisites
- .NET 8 SDK
- Any C# compatible IDE (Visual Studio, VS Code)
Run the Application
Clone this repo:
Created by Muhammadou Drammeh as a console-based practice project for understanding object-oriented design and clean code principles. Monitored by John Cruz
Applied SOLID Principles to ensure scalable, maintainable, and readable code
Followed Separation of Concerns, organizing logic cleanly across different classes
Employed the Software Development Life Cycle (SDLC) to guide the planning and implementation stages
Planned and mapped system behavior using a UML Activity Diagram before development began
Created a UML Class Diagrams before writing code to model domain logic and relationships
Practiced Agile Methodology, breaking down the project into small, testable, iterative steps
Translated business requirements into user stories
Regularly reviewed and updated the development plan to reflect user needs