Skip to content

C#/.NET console To-Do app with JSON storage, comparable Task model, and generic Heap for prioritization.

Notifications You must be signed in to change notification settings

asAlwaysZahra/ToDoList

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

40 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ToDoList

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.


๐Ÿ“Œ Overview

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

โœจ Key Features

  • 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

๐Ÿ—๏ธ Project Structure


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


๐Ÿš€ Getting Started

Prerequisites

  • .NET SDK (6.0+ recommended)
  • Visual Studio or VS Code

Run

  1. Clone this repo:

    git clone https://github.com/asAlwaysZahra/ToDoList.git
  2. Open solution in Visual Studio

  3. Build & run the ToDoList project

  4. Ensure tasksss.json is in the output directory (or adjust path in Program.cs)


๐Ÿ”ฎ Learning Outcomes

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

About

C#/.NET console To-Do app with JSON storage, comparable Task model, and generic Heap for prioritization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages