A simple To-Do list console application built in C# (.NET) as part of my internship.
This project demonstrates task modeling, data persistence with JSON, and a custom Heap data structure for task prioritization.
The app allows you to manage tasks (add, update, delete, mark complete) while practicing core software engineering concepts:
- OOP principles (classes, interfaces, encapsulation)
- Generics & Data Structures (Heap implementation)
- LINQ extensions for easier query building
- JSON file I/O for persistence
- Clean, layered code organization
- CRUD operations on tasks
- Mark tasks as complete / incomplete
- Prioritization: compare tasks by deadline โ priority โ creation date
- Data stored in JSON file (
tasksss.json) - Generic Heap with custom
IComparer<T>(max-heap or min-heap) - Extension method
ToHeap()to build a heap from any sequence
ToDoList/
โโ ToDoList.sln
โโ ToDoList/
โ โโ Program.cs # Entry point with test methods
โ โโ tasksss.json # Sample task data
โ โโ Data/
โ โ โโ IFileReader.cs # File reading interface
โ โ โโ JsonFileReader.cs # JSON implementation
โ โโ Models/
โ โโ Task.cs # Task entity with CompareTo
โ โโ TheList.cs # Wrapper around list of tasks
โ โโ Enums/Priority.cs # Priority levels
โ โโ DataStructures/Heap.cs
โ โโ Extension/LinqExtension.cs
- .NET SDK (6.0+ recommended)
- Visual Studio or VS Code
-
Clone this repo:
git clone https://github.com/asAlwaysZahra/ToDoList.git
-
Open solution in Visual Studio
-
Build & run the ToDoList project
-
Ensure
tasksss.jsonis in the output directory (or adjust path inProgram.cs)
This project was created during my internship to strengthen:
- C# and .NET fundamentals
- Data structures (Heap) and algorithms
- JSON serialization/deserialization
- Clean code and project structuring