█
LastWrite
  • > Curriculum
  • > Pricing
  • > For Educators
  • > About
  • > Contact
Log InGet Started

Questions, concerns, bug reports, or suggestions? We read every message, write to us at [email protected].

More ways to reach us →
LastWrite

Structured computer science lessons for aspiring developers and security professionals.

[email protected]

(201) 785-7951

Mon–Fri, 9 AM–5 PM EST

Learn

  • Curriculum
  • Pricing

Company

  • About
  • For Educators & Schools
  • Contact Us

Legal

  • Terms of Service
  • Privacy Policy
© 2026 LastWrite. All rights reserved.
Curriculum/Programming Languages/Python (Professional)/Passion Project: Python CLI Tool
180 minAdvanced

Passion Project: Python CLI Tool

After this lesson, you will be able to: Build a CLI tool that solves a real problem, package it properly, and publish it to a public GitHub repo.

Passion project for the Python sub-track per Curriculum-Upgrade.md. Pick ONE of three options, ship in a weekend.

Prerequisites:Packaging and Distribution

Pick a brief

Three options; pick the one that scratches your own itch.

  1. 1

    A. File organizer: takes a messy ~/Downloads, sorts by extension + date into named folders. Includes --dry-run.

  2. 2

    B. Personal expense tracker: reads a CSV of transactions, categorizes by rules + ML, outputs monthly summary as Markdown.

  3. 3

    C. API formatter: calls an API (GitHub, Hacker News, weather), formats results, exports as JSON/Markdown.

Milestone breakdown

One weekend, six milestones.

  1. 1

    M1 (1h): scaffold project, pyproject.toml, src/, tests/, README skeleton

  2. 2

    M2 (3h): core logic with type hints + tests (parametrize at least 5 cases)

  3. 3

    M3 (1h): CLI with argparse or Click; --dry-run if destructive

  4. 4

    M4 (1h): error handling + logging

  5. 5

    M5 (1h): publish to TEST PyPI; install via pip + verify the CLI works

  6. 6

    M6 (2h): README with badges, screenshots, install instructions, examples; publish to real PyPI; GitHub repo

💡 How to talk about this in an interview

Open the GitHub repo on screen-share. Show the README + the live PyPI page (pypi.org/project/yourtool/). Walk through one feature; show the tests for it. Discuss one design decision honestly: 'I chose argparse over Click because I had no extra deps' or similar. Five minutes of this proves you can ship Python.

Common mistakes only candidates with offers avoid

Skipping tests. Hiring managers read them. No screenshots / examples in README. Hardcoded paths. Make it portable. Skipping the publish step. Local-only doesn't impress.

Sign in and purchase access to unlock this lesson.

Sign in to purchase
←Python for Backend: FastAPI
Back to Python (Professional)
Python Job Readiness→