Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Simple To-Do List (Python) with GitHub Actions CI/CD

A lightweight, modular command-line To-Do List application built using Python, designed with testability in mind and integrated with a full CI/CD pipeline using GitHub Actions.


📦 Designed to simulate real-world DevOps practices in an educational context.


📌 Key Highlights

  • ✅ Object-oriented design with simple interface
  • 🔁 Modular, extensible Python code (no frameworks required)
  • 🧪 Full unit test coverage with pytest
  • ⚙️ CI/CD pipeline using GitHub Actions (auto runs tests on push/PR)
  • 📂 Clean project structure following best practices
  • 🪄 Easily expandable (e.g., add persistence, mark tasks as done, CLI parser)

🚀 Features

  • Add tasks to a to-do list
  • Remove tasks from the list
  • View current tasks
  • Unit tested with pytest
  • Automated testing with GitHub Actions

🧰 Technologies & Tools

Layer Tools Used
Language Python 3.10+
Testing Pytest
CI/CD GitHub Actions
Dependency Mgmt requirements.txt
Workflow File YAML (.github/workflows)

📂 Project Structure

todo-app/ │ ├── todo.py # Main to-do app logic ├── test_todo.py # Unit tests ├── .github/ │ └── workflows/ │ └── ci.yml # GitHub Actions workflow ├── requirements.txt # Dependencies └── README.md


🛠️ Getting Started

1. Clone the repository

git clone https://github.com/your-username/SimpleToDoList.git
cd SimpleToDoList

2. Create and activate a virtual environment

python -m venv .venv
.venv\Scripts\activate      # For Windows PowerShell

3. Install dependencies

pip install -r requirements.txt

4. Run Tests

pytest

GitHub Actions CI

This project uses GitHub Actions to automatically:

Set up Python

Install dependencies

Run tests on every push and pull request

Check the .github/workflows/ci.yml file for the full configuration.

🧪 CI/CD Pipeline – GitHub Actions

On every push or pull request, GitHub Actions:

  • Checks out the repo
  • Sets up Python 3.10
  • Installs dependencies
  • Runs pytest for all unit tests

🧠 Sample Unit Tests

  • Add task (test_add_task)
  • Reject empty task (test_add_empty_task)
  • Remove existing task
  • Reject removal of missing task
  • Confirm correct task order
  • Case sensitivity check

🙋‍♀️ Author Harshali Jagtap - K00265900

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages