Skip to content

Intermediate Projects Level 3-4

🛠️ Projects
⏱️ Days to weeks each 📚 Prerequisites: OOP, Web Frameworks, Databases

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.