geekcomputers / geekcomputers/Python

Task Breakdown

Aperta
#2,382 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
35.4k
Fork
12.9k
Merge medio
2h 37m
PR unite (30g)
1

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con la struttura todo_app richiesta: todo.py, tasks.json e README.md. Verifica la configurazione Python con python --version, quindi esegui python todo.py controllando il comportamento di aggiunta, visualizzazione, completamento, eliminazione, uscita e persistenza. Il lavoro è completato quando le funzionalità CLI descritte funzionano e il README documenta l’app e il suo utilizzo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
cli, documentation
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.