Intermediate Projects Level 3-4¶
These projects combine OOP, web frameworks, databases, and APIs — the skills that make you employable. Each is a realistic application, not a toy.
1. URL shortener (web app + API)¶
Goal: take a long URL, return a short code; visiting the short code redirects.
- Skills: a web framework (FastAPI/Flask), a database, routing, redirects, hashing.
- Minimal version: POST a URL → get a code; GET the code → redirect.
- Stretch: click analytics, custom aliases, expiry, a small frontend. Ties into APIs & HTTP and Database Programming.
2. REST API for a resource (e.g. a blog or library)¶
Goal: full CRUD API with a database behind it.
- Skills: FastAPI, an ORM (SQLAlchemy), Pydantic schemas, pagination, validation.
- Minimal version: create/read/update/delete one resource type.
- Stretch: authentication (JWT — see the Auth section), filtering, pagination, automatic docs, tests. This is the archetypal backend project.
3. Data dashboard¶
Goal: load a dataset and present interactive charts in a web page.
- Skills: Pandas for data, a charting library, a web layer (Streamlit is the fast path, or FastAPI + a frontend).
- Minimal version: load a CSV, show one chart.
- Stretch: filters, multiple views, live data, deploy it. Uses the Data & AI section (Pandas, visualization).
4. Web scraper + pipeline¶
Goal: scrape data from a site, clean it, store it, and report on it.
- Skills:
requests/BeautifulSoup (or Playwright for JS sites — see Browser Automation), data cleaning, storage. - Minimal version: scrape one page, save to CSV.
- Stretch: paginate, schedule it, store in a database, dedupe. Scrape ethically — respect robots.txt and rate limits (see the Browser Automation page).
5. Personal finance / expense tracker¶
Goal: record transactions, categorize them, and report spending.
- Skills: database, OOP modeling, dates, aggregation, maybe a web UI.
- Minimal version: add transactions, show totals by category.
- Stretch: budgets, charts, CSV import from a bank export, monthly reports.
6. Automation suite¶
Goal: a set of scripts that automate a real chore (backups, report generation, file processing) on a schedule.
- Skills:
pathlib,subprocess, scheduling, logging,argparse. - Minimal version: one scheduled script that does something useful and logs it.
- Stretch: several tasks, config-driven, error notifications. Builds directly on Automation & Scripting.
What makes these "intermediate"¶
Unlike beginner projects, these require you to integrate multiple concepts and make design decisions: how to structure the code, model the data, handle errors, and test. That integration is the real skill.
Structure and test them
Use a proper project layout (Templates), write tests (Testing section), and put it on GitHub with a clear README. An intermediate project with tests and docs is portfolio material.
Next: Advanced Projects — async, distributed, and production-scale builds.
💬 Discussion
Have a question about this topic? Found an error? Share your thoughts below.