Python project workshop
You build four large projects that come from real needs, end to end, with design, tests and documentation.
Level 501 · 16 lessons · 15 practice labs
Lessons
Project 1: a log collector
- Design: sources, format and storage
- Ingest: watching files and parsing
- Query: search and summary commands
- Short task: alert when a threshold is crossed
Project 2: a configuration auditor
- A rule language and rule files
- Collecting configuration from remote servers
- Producing HTML and JSON reports
- Short task: hook the audit into continuous integration
Project 3: an internal web tool
- Data model and migrations
- Sessions and role-based authorisation
- API and interface
- Short task: a security review of your own application
Project 4: a distributable package
- Public interface and documentation
- Release, signing and publishing
- Short task: handle a breaking change with release notes
Capstone
- Capstone: bring one of your projects to production quality and present it
Practice labs
- Normalising different log formats into one record: Write a parser that turns log lines in three formats into a common record with time, source, level and message fields.
- Adding a search command to the collector: Write a subcommand that searches stored records by time range, level and text filter and gives summary counts.
- Raising a threshold alert without repeats: Write an alert rule that fires once when errors per minute cross a threshold, stays quiet until recovery and keeps its state across a restart.
- Reading an audit rule from a file: Read a rule file made of key, expected value and severity with safe YAML loading and reject a rule with missing fields.
- Collecting configuration from remote servers: Collect sshd settings from the lab SSH targets, evaluate them against the rules and record an unreachable server with its own status.
- Hooking the audit into continuous integration: Produce an escaped HTML report and a JSON report from audit results and write the gate that exits non-zero when a high-severity finding exists.
- Adding a new table migration to the internal tool: Write a reversible migration that adds a table for device assignments and show the version table is updated.
- Tying endpoints to roles: Write a decorator that checks the role in the session so unauthorised requests get 403 and anonymous ones are redirected to login.
- Reviewing your own application for security: Find the session, authorisation and input validation flaws in Çınaraltı Kütüphanesi's internal tool with a checklist, close them and add a regression test for each.
- Defining a package's public interface: Define the package's public interface with __all__ and underscore names and pass the test checking internal modules are not imported from outside.
- Building and verifying a wheel: Build source and wheel distributions from pyproject, publish their hashes and show the install works in a clean virtual environment.
- Managing a breaking change with warnings: Keep the old name of a renamed function alive for one more release with a DeprecationWarning, write the release note and show the warning is caught in tests.
- Adding a health endpoint: Add a health endpoint that checks database and disk status and returns a status code and short JSON without leaking internals.
- Structured logs with a request id: Set up JSON logging that assigns an id to each request, carries it on every log line and masks secret fields.
- Closing the gaps before production: Find the missing timeouts, retries, settings validation and graceful shutdown in Bulutsu Yazılım's small service from a checklist and close them with tests as proof.
About this course
You build four large projects that come from real needs, end to end, with design, tests and documentation.
What you will learn
- Project 1: a log collector
- Project 2: a configuration auditor
- Project 3: an internal web tool
- Project 4: a distributable package
- Capstone
Prerequisites
You should be experienced in the topics of the same path up to level 401.
Lab environment
Lessons run in your own Kali Linux terminal in the browser, connected to a private lab network. Nothing to install.
Frequently asked questions
- Is this course right for my level?
- The course is at level 501; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.