Skip to content

A Python-based task management system with priority levels built in Jupyter Notebook for educational purposes. Learn fundamental programming concepts through practical implementation.

License

Notifications You must be signed in to change notification settings

Laurentius96/Priority_Task_Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Priority Task Manager

Python Task Management System with Priority Levels

An educational Jupyter notebook project developed by DNC to teach fundamental Python concepts through practical task management implementation.

Overview β€’ Features β€’ Installation β€’ Usage β€’ Notebook Structure β€’ Learning Objectives β€’ Technologies β€’ Contributing β€’ License

πŸ” Overview

This project is a comprehensive task management system implemented in Python using Jupyter notebooks as part of DNC's (Digital Nation Course) educational curriculum. The system demonstrates essential programming concepts through a practical application that allows users to manage tasks with different priority levels.

The project serves as an interactive learning experience, combining theoretical concepts with hands-on implementation in a notebook environment that facilitates experimentation and learning.

πŸš€ Features

Core Functionalities

  • Add Tasks: Create new tasks with descriptions and priority assignments
  • Remove Tasks: Delete specific tasks from the system
  • List Tasks: Display all current tasks with their priority levels
  • Save Tasks: Persist task data to files for future sessions
  • Interactive Menu: User-friendly command-line interface

Priority System

  • High Priority: Critical tasks requiring immediate attention
  • Medium Priority: Important tasks with moderate urgency
  • Low Priority: Tasks that can be completed when time permits

Educational Components

  • Step-by-step Implementation: Code broken down into digestible sections
  • Concept Explanations: Detailed explanations of Python concepts used
  • Interactive Examples: Live code cells for experimentation

πŸ’Ύ Installation

Prerequisites

  • Python 3.7 or higher
  • Jupyter Notebook or JupyterLab
  • Basic understanding of Python syntax

Setup Instructions

  1. Clone the repository:
git clone https://github.com/Laurentius96/Priority_Task_Manager.git
  1. Navigate to project directory:
cd Priority_Task_Manager
  1. Run the main.ipynb notebook in a Jupyter environment:
jupyter notebook main.ipynb
  1. Alternatively, run the script directly:
python -m main.py

βš™οΈ Usage

Running the Notebook

The notebook is structured in sequential cells that build upon each other. Execute cells in order using Shift + Enter.

Sample Code Examples

Task Data Structure:

# Example task structure used in the notebook
tasks = [
    {"description": "Study Python", "priority": "High"},
    {"description": "Go to gym", "priority": "Medium"},
    {"description": "Buy groceries", "priority": "Low"}
]

Adding a Task Function:

def add_task(tasks, description, priority):
    """
    Add a new task to the task list
    
    Parameters:
    tasks (list): Current list of tasks
    description (str): Task description
    priority (str): Task priority level
    """
    new_task = {"description": description, "priority": priority}
    tasks.append(new_task)
    print(f"Task '{description}' added with {priority} priority!")
    return tasks

Expected Output:

Task 'Study Python' added with High priority!
Current tasks: 3

Interactive Menu System

def display_menu():
    print("\n=== TASK MANAGER ===")
    print("1. Add Task")
    print("2. Remove Task") 
    print("3. List Tasks")
    print("4. Save Tasks")
    print("5. Exit")
    return input("Choose an option (1-5): ")

Sample Execution Result:

=== TASK MANAGER ===
1. Add Task
2. Remove Task
3. List Tasks
4. Save Tasks
5. Exit
Choose an option (1-5): 3

=== CURRENT TASKS ===
1. Study Python - Priority: High
2. Go to gym - Priority: Medium
3. Buy groceries - Priority: Low

πŸ““ Notebook Structure

task_manager.ipynb
β”œβ”€β”€ 1. Introduction & Setup
β”‚   β”œβ”€β”€ Project overview
β”‚   β”œβ”€β”€ Learning objectives
β”‚   └── Import statements
β”œβ”€β”€ 2. Data Structures
β”‚   β”œβ”€β”€ Task representation
β”‚   β”œβ”€β”€ List operations
β”‚   └── Dictionary usage
β”œβ”€β”€ 3. Core Functions
β”‚   β”œβ”€β”€ add_task()
β”‚   β”œβ”€β”€ remove_task()
β”‚   β”œβ”€β”€ list_tasks()
β”‚   └── save_tasks()
β”œβ”€β”€ 4. Control Flow
β”‚   β”œβ”€β”€ Menu system
β”‚   β”œβ”€β”€ User input handling
β”‚   └── Conditional logic
β”œβ”€β”€ 5. File Operations
β”‚   β”œβ”€β”€ Saving to file
β”‚   β”œβ”€β”€ Loading from file
β”‚   └── Error handling
β”œβ”€β”€ 6. Main Program Loop
β”‚   β”œβ”€β”€ Interactive execution
β”‚   β”œβ”€β”€ Menu navigation
β”‚   └── Program termination
└── 7. Exercises & Extensions
    β”œβ”€β”€ Practice problems
    β”œβ”€β”€ Enhancement ideas
    └── Further learning resources

🎯 Learning Objectives

This notebook teaches the following Python concepts through practical implementation:

1. Data Structures

  • Lists: Managing collections of tasks
  • Dictionaries: Storing task attributes
  • Data manipulation: Adding, removing, and modifying data

2. Control Flow

  • Conditional statements: Menu navigation and decision making
  • Loops: Iterating through task collections
  • Function definitions: Code organization and reusability

3. File I/O Operations

  • Writing files: Persisting task data
  • Reading files: Loading saved tasks
  • Error handling: Managing file operations safely

4. User Interaction

  • Input validation: Ensuring data integrity
  • Menu systems: Creating user-friendly interfaces
  • Output formatting: Presenting information clearly

πŸ› οΈ Technologies

  • Python 3.x: Core programming language
  • Jupyter Notebook: Interactive development environment
  • Built-in Libraries:
    • os: File system operations
    • json: Data serialization (optional enhancement)
  • Pandas: Data manipulation (for advanced features)

πŸ“Š Code Examples with Results

Task Listing Function

def list_tasks(tasks):
    """Display all tasks with their priorities"""
    if not tasks:
        print("No tasks available.")
        return
    
    print("\n=== CURRENT TASKS ===")
    for i, task in enumerate(tasks, 1):
        print(f"{i}. {task['description']} - Priority: {task['priority']}")

Execution Result:

# Sample execution in notebook cell
tasks = [
    {"description": "Complete Python project", "priority": "High"},
    {"description": "Review code documentation", "priority": "Medium"}
]

list_tasks(tasks)

Output:

=== CURRENT TASKS ===
1. Complete Python project - Priority: High
2. Review code documentation - Priority: Medium

File Save Operation

def save_tasks_to_file(tasks, filename="tasks.txt"):
    """Save tasks to a text file"""
    try:
        with open(filename, "w") as file:
            for task in tasks:
                file.write(f"{task['description']},{task['priority']}\n")
        print(f"Tasks saved to {filename} successfully!")
    except Exception as e:
        print(f"Error saving tasks: {e}")

Expected Result:

Tasks saved to tasks.txt successfully!
File created: tasks.txt
Content preview:
Complete Python project,High
Review code documentation,Medium

πŸš€ Enhancement Ideas

The project can be extended with additional features:

  • Task Categories: Group tasks by work, personal, etc.
  • Due Dates: Add deadline tracking functionality
  • Task Status: Implement completed/pending status
  • Data Visualization: Create charts showing task distribution
  • Export Options: Save tasks in different formats (CSV, JSON)

🀝 Contributing

This educational project welcomes contributions to improve the learning experience:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/educational-enhancement)
  3. Make your changes with clear documentation
  4. Add examples and explanations for new concepts
  5. Submit a pull request with detailed description

πŸ“œ License

This project is part of DNC's educational curriculum and is available for learning purposes.

CC BY-NC-ND 4.0 License

This repository is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

What this means:

  • βœ… You can share β€” You are free to copy and redistribute the material in any medium or format
  • ❌ No commercial use β€” You may not use the material for commercial purposes
  • ❌ No derivatives β€” You may not remix, transform, or build upon the material
  • βœ… Attribution required β€” You must give appropriate credit, provide a link to the license, and indicate if changes were made

For the complete license terms, please see the LICENSE.md file.

πŸŽ“ Educational Resources

  • Python Documentation: python.org
  • Jupyter Notebook Guide: jupyter.org
  • Data Structures Tutorial: Additional learning materials in the notebook

Developed with πŸ’™ by Lorenzo C. Bianchi feat. DNC Educational Team

Learning through practice - building real solutions with code!

About

A Python-based task management system with priority levels built in Jupyter Notebook for educational purposes. Learn fundamental programming concepts through practical implementation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published