This repository contains a simple console project that demonstrates the use of Object-Oriented Programming (OOP) concepts in C#.
The project simulates a Task Manager, where you can add tasks, list them, execute them, and manage their status (completed or pending).
The purpose of this project is to serve as a practical study of the fundamental principles of OOP, including:
- β Encapsulation
- β Inheritance
- β Polymorphism
- β Abstraction
The project applies these principles through task management, allowing you to create both simple tasks and tasks with deadlines.
-
βοΈ Add Simple Tasks
Create basic tasks without deadlines. -
βοΈ Add Deadline Tasks
Create tasks with a specified deadline. -
βοΈ List Tasks
View tasks filtered by type (simple, deadline, or all). -
βοΈ Execute Tasks
Simulate task execution and mark tasks as completed. -
βοΈ View Task Status
Easily check whether tasks are pending or completed. -
βοΈ Interactive Console Menu
The system runs in a loop with a simple menu to interact with tasks.
/TaskManager β βββ Program.cs β Console menu and user interaction βββ TaskManager.cs β Manages task list (add, list, execute) β βββ Tasks/ β βββ Task.cs β Abstract class (base task) β βββ SimpleTask.cs β Inherits from Task (basic task) β βββ DeadlineTask.cs β Inherits from Task (task with deadline) β βββ README.md β Documentation
This project aims to help you:
- Understand how to implement abstract classes and inheritance in C#.
- Apply polymorphism through method overriding.
- Work with encapsulated data and controlled class behaviors.
- Create structured and reusable code using OOP best practices.
- Language: C#
- Framework: .NET 8
- IDE: Visual Studio or Visual Studio Code
- Project Type: Console Application
1. Clone the repository:
git clone https://github.com/gabyfachini/TaskManager.git
2. Open the project in Visual Studio or Visual Studio Code.
3. Restore dependencies (if needed) and build the project.
4. Run the application.
A menu will appear in the terminal, allowing you to:
Add tasks
List tasks
Execute tasks
Exit the program