geekcomputers / geekcomputers/Python

Task Breakdown

Ouverte
#2,382 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
35.4k
Forks
12.9k
Merge moyen
2 h 37 min
PR mergées (30 j)
1

Description

1)Set Up Your Environment:

Ensure Python is installed on your machine.
You can check this by running:
bash
Copy code
python --version
Project Structure:

Create a directory for the project named todo_app.

Inside it, create the following files:

todo.py: This will contain the main application logic.
tasks.json: This will store the tasks in JSON format.
README.md: Add documentation.
Your file structure should look like this:

bash
Copy code
/todo_app
├── todo.py # Main application logic
├── tasks.json # File to store tasks
└── README.md # Documentation
Implement Core Features:

2)Task Class:

Define a Task class that represents individual tasks in the app. This class should handle the creation of tasks and the ability to mark them as completed:
python
Copy code
class Task:
def init(self, title, description, category):
self.title = title
self.description = description
self.category = category
self.completed = False

def mark_completed(self):
    self.completed = True

3)File Handling:

Use Python's json module to store tasks in a tasks.json file. This allows persistence across runs of the application.

Code to save tasks:

python
Copy code
import json

def save_tasks(tasks):
with open('tasks.json', 'w') as f:
json.dump([task.dict for task in tasks], f)
Code to load tasks:

python
Copy code
def load_tasks():
try:
with open('tasks.json', 'r') as f:
return [Task(**data) for data in json.load(f)]
except FileNotFoundError:
return []
4)User Interaction:

Implement a simple command-line interface (CLI) to interact with the user. This will include options to add a task, view tasks, mark tasks as completed, delete tasks, and exit the application.
Here's a sample implementation of the main() function:

python
Copy code
def main():
tasks = load_tasks()
while True:
print("1. Add Task")
print("2. View Tasks")
print("3. Mark Task Completed")
print("4. Delete Task")
print("5. Exit")

    choice = input("Choose an option: ")

    if choice == '1':
        # Add task
        title = input("Title: ")
        description = input("Description: ")
        category = input("Category: ")
        tasks.append(Task(title, description, category))
    elif choice == '2':
        # View tasks
        for idx, task in enumerate(tasks, 1):
            status = "Completed" if task.completed else "Incomplete"
            print(f"{idx}. {task.title} - {status}")
    elif choice == '3':
        # Mark task as completed
        task_num = int(input("Enter task number to mark as completed: "))
        tasks[task_num - 1].mark_completed()
    elif choice == '4':
        # Delete task
        task_num = int(input("Enter task number to delete: "))
        del tasks[task_num - 1]
    elif choice == '5':
        save_tasks(tasks)
        break

5)Testing and Documentation:

Thoroughly test your app by adding, viewing, marking, and deleting tasks.
Document the purpose of the app and how to use it in the README.md file.
README.md Example:
markdown
Copy code

To-Do App

A simple command-line To-Do list manager built with Python.

Features:

  • Add tasks with titles, descriptions, and categories.
  • View tasks and their completion status.
  • Mark tasks as completed.
  • Delete tasks.
  • Save tasks to a JSON file for persistence.

Usage:

  1. Run the application:
    python todo.py
    

Follow the on-screen instructions to manage your tasks.
sql
Copy code

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la structure todo_app demandée : todo.py, tasks.json et README.md. Vérifiez la configuration Python avec python --version, puis exécutez python todo.py en vérifiant le comportement d’ajout, d’affichage, de complétion, de suppression, de sortie et de persistance. C’est terminé lorsque les fonctionnalités CLI décrites fonctionnent et que le README documente l’application et son utilisation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
cli, documentation
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.