Introduction
The course would focus on building command-line applications using Python. I haven’t seen beginner-friendly courses on building command-line applications.
This course would offer a great way to understand how command-line applications work.
Mini-projects would be built throughout the course. A final exercise would be open-ended, where the learners would share their projects on social media tagging mon.school - the winners would be given a prize! (IndiaFOSS 3.0 tickets, etc.)
Course Syllabus
At the end of the course, the learner would have understood:
- What is a terminal, and how it works (in a simplified way)
- What is a CLI
- What are the components of a CLI
- How does interaction work in a CLI
- How does
argparsework - How to build CLIs using
argparse - What is
click - How to use
clickto build CLI apps - Unit testing CLI apps
- Making use of Github Actions to test CLI apps
Course Structure
Every chapter would have:
- 3-4 subchapters/sections
- A lot of illustrations to enrich the learning experience!
- Exercises at the end of each chapter
- Simple quizzes in the middle of each chapter
Outline
Legend:
-
= would be in the course -
= considering to add it in the course -
= might not be beginner-friendly, on hold
Chapter 1:
- (
) What is a terminal? - (
) What is a CLI? - (
) Components of a CLI (commands, subcommands, flags, args, etc.) - (
) Examples of CLIs (breaking down the most common CLIs (git, etc.) and understanding their structure - commands, subcommands, flags, etc.) - (
) Brief history of CLIs and the terminal - (
) What’s inside the terminal? - (
) Quiz on CLIs and terminals
Chapter 2:
- (
) A basic Python primer (part 1) - (
) A basic Python primer (part 2) - (
) Understanding pipand virtual environments - (
) Preparing our Python environment using virtualenv - (
) Running our basic Python app - (
) Quiz on Python basics
Chapter 3:
- (
) Introduction to argparse - (
) A miniature CLI using argparse - (
) Mini-project 1: building a “greeter” CLI (a CLI which could print Hello, <username>! The current time is <timestamp>) - (
) Exercise: build a CLI to print the first X lines of a file (head). - (
) Solution walkthrough - (
) Quiz on argparse
Chapter 4:
- (
) Introduction to click - (
) Understanding the structure for building CLIs with click - (
) Mini project 2: Build a CLI for note-taking (add and view notes) - (
) Exercise: Add a new command to delete notes - (
) Solution walkthrough - (
) Quiz on click
Chapter 5:
- (
) Basic pytesttutorial - (
) Unit testing Python CLIs - (
) Using Makefiles/tox to ease testing - (
) Using Github Actions for setting up pipelines
Chapter 6:
- (
) Packaging Python applications - (
) Packaging our previously built CLIs - (
) Best practices for building CLIs
Course completion:
- “What’s next” section with guided path (resources) to build command-line applications
- Open-ended project