Skip to main content

🚀 Bonus Project Ideas

Finished the capstone? Keep building! Here are 10 project ideas organized by difficulty. Try each one in all three languages — or pick your favorite and go deep.

📑 Jump To

📋 How to Use This Page

Each project lists the concepts practiced, a description, and stretch goals to push yourself further. The difficulty levels build on each other:

  • ⭐ Beginner — Uses concepts from Modules 1–4 (variables, control flow, functions).
  • ⭐⭐ Intermediate — Adds collections, classes, and file I/O from Modules 5–8.
  • ⭐⭐⭐ Advanced — Combines everything, including APIs and multi-file architecture.

For maximum learning, try building each project in all three languages. You'll be amazed at how different — and how similar — the solutions feel.

⭐ Beginner Projects

Project 1: Number Guessing Game

Concepts: Variables, conditionals, loops, user input, random numbers

The computer picks a random number between 1 and 100. The player guesses until they get it right, with "too high" / "too low" hints after each guess. Track the number of attempts and display it at the end.

Stretch goals:

  • Add difficulty levels (1–50, 1–100, 1–1000)
  • Limit the number of guesses and add a "game over" condition
  • Track high scores across multiple rounds

Project 2: Unit Converter

Concepts: Functions, parameters/return values, conditionals, string formatting

Build a converter that handles at least three categories: temperature (°F ↔ °C ↔ K), distance (miles ↔ km ↔ meters), and weight (lbs ↔ kg ↔ grams). Present a menu and let the user pick the conversion.

Stretch goals:

  • Add currency conversion using hardcoded rates
  • Let the user chain conversions (e.g., convert result again)
  • Format output with the right number of decimal places

Project 3: Mad Libs Generator

Concepts: Strings, string interpolation, user input, functions

Create 3–5 story templates with blanks for nouns, verbs, adjectives, etc. Prompt the user for each word, then display the completed (and hilarious) story. Use string interpolation to build the final text.

Stretch goals:

  • Store templates in a separate data structure (list/array)
  • Let the user pick which story to fill in
  • Save completed stories to a file

⭐⭐ Intermediate Projects

Project 4: Contact Book

Concepts: Collections (lists + dictionaries), file I/O, JSON, CRUD operations

Build a contact manager that stores names, phone numbers, and emails. Support adding, viewing, searching, editing, and deleting contacts. Save data to a JSON file so contacts persist between runs.

Stretch goals:

  • Add input validation (email format, phone number format)
  • Sort contacts alphabetically
  • Export contacts to CSV format

Project 5: Quiz App

Concepts: Classes/OOP, collections, file I/O, error handling

Create a quiz engine with a Question class that holds the prompt, choices, and correct answer. Load questions from a JSON file. Present them one at a time, score the results, and display a summary with the percentage correct.

Stretch goals:

  • Shuffle question order and answer order each time
  • Add a timer per question
  • Support multiple quiz files (pick your topic)
  • Track high scores in a separate JSON file

Project 6: Expense Tracker

Concepts: Classes, collections, file I/O, JSON, string formatting

Track daily expenses with a date, category (food, transport, entertainment, etc.), amount, and description. Store entries in a JSON file. Display totals by category, daily summaries, and a running balance.

Stretch goals:

  • Add monthly reports with category breakdowns
  • Set budget limits per category and warn when exceeded
  • Export data to CSV

Project 7: Hangman Game

Concepts: Strings, collections (sets for guessed letters), loops, conditionals, functions

Pick a random word from a list. Display blanks for each letter. Let the player guess one letter at a time — reveal correct letters, track wrong guesses, and draw (in text) a hangman figure that progresses with each mistake. Game over after 6 wrong guesses.

Stretch goals:

  • Load words from a file organized by category
  • Add difficulty levels (shorter/longer words)
  • Display ASCII art that updates with each wrong guess
  • Track win/loss record across games

⭐⭐⭐ Advanced Projects

Project 8: Weather Dashboard (API)

Concepts: API requests, JSON parsing, error handling, string formatting, classes

Use a free weather API (like Open-Meteo — no API key required) to fetch current weather for a city. Display temperature, humidity, wind speed, and conditions. Handle errors gracefully (city not found, network issues).

Stretch goals:

  • Add a 5-day forecast view
  • Save favorite cities to a JSON file
  • Compare weather between two cities side by side
  • Cache results to avoid repeated API calls

Project 9: Task Manager with Persistence

Concepts: OOP (multiple classes), inheritance, file I/O, JSON, error handling, CRUD

Build a to-do app with a Task base class and subclasses for different types (e.g., DeadlineTask, RecurringTask). Support creating, listing, completing, and deleting tasks. Save all data to a JSON file. Include filtering (by status, due date, or priority) and a simple text-based menu.

Stretch goals:

  • Add priority levels (low, medium, high) with color-coded output
  • Implement undo for the last action
  • Add search functionality across task titles and descriptions
  • Generate a daily summary report

Project 10: Multi-Language Code Snippet Library

Concepts: Everything — OOP, collections, file I/O, JSON, error handling, API (optional)

Build a personal code snippet manager. Each snippet has a title, description, language tag (Python/JS/C#), the code itself, and tags for searching. Store everything in a JSON file. Support add, search (by tag or keyword), list, edit, and delete operations.

Stretch goals:

  • Syntax-highlight output in the terminal (using ANSI escape codes)
  • Import/export snippets as JSON or Markdown files
  • Add a "copy to clipboard" feature
  • Use the GitHub Gist API to publish snippets online
🎓 Instructor Note: Assigning Projects

Consider letting students choose one project from each tier for a portfolio. Beginner projects can be due early in the course, intermediate projects mid-way, and the advanced project as a final. Encourage building in at least two languages to reinforce the comparison approach.

💡 General Tips for All Projects

  1. Plan before you code. Sketch out the features, data structures, and flow before writing a single line. Revisit Lesson 9.1: Project Planning if you need a refresher.
  2. Start small, then iterate. Get the simplest version working first (no stretch goals). Then add features one at a time.
  3. Build in all three languages. The first language will be the hardest. By the third, you'll be translating patterns, not re-learning concepts.
  4. Use version control. Even if it's just copying your project folder before making big changes. Better yet, learn git init and git commit.
  5. Read your error messages. They're trying to help you. Check the Troubleshooting Guide and Common Errors page if you get stuck.
  6. Have fun. Modify these ideas to match your interests. A quiz about your favorite topic, an expense tracker for a hobby budget, a snippet library for recipes — make it yours.