Capstone Projects

A menu-driven console program bundling a calculator, unit converter, prime finder, temperature table, and number-guessing game, with validated input and formatted output.

Project 1 — Console toolbox (beginner)

A menu-driven console program bundling a calculator, unit converter, prime finder, temperature table, and number-guessing game, with validated input and formatted output. *Concepts: program structure, data types, I/O formatting, control flow, procedures and functions.*

Project 2 — Student grade book (beginner/intermediate)

Store students and grades in records, save/load with typed files or CSV text files, compute averages and letter grades, sort by name or average, and print a report. *Concepts: records, arrays, sets, strings, files, sorting, units.*

Project 3 — Expression calculator and mini-interpreter (intermediate)

Tokenize and parse arithmetic expressions with variables (x := 3 * (y + 2)), using recursive descent; build an abstract syntax tree with classes; evaluate and report errors with custom exceptions. *Concepts: recursion, sets for character classes, classes and polymorphism, exceptions, dictionaries.*

Project 4 — Lazarus text editor (intermediate)

A cross-platform editor with tabs, syntax highlighting (SynEdit), find/replace, recent files, settings in an INI/JSON file, and build modes for Windows, Linux, and macOS. *Concepts: LCL forms and events, actions, file I/O, streams, cross-platform builds.*

Project 5 — Inventory management system (intermediate/advanced)

Desktop application (Lazarus + SQLdb or Delphi + FireDAC) with products, suppliers, stock movements, reports, CSV import/export, and a repository layer behind interfaces with unit tests. *Concepts: databases, datasets, data-aware controls, interfaces, generics, unit testing.*

Project 6 — REST API server and client (advanced)

A JSON REST service (Horse, mORMot 2, fpWeb, or DMVCFramework) with CRUD endpoints, SQLite storage, and authentication tokens, plus a console or GUI client using fphttpclient/THTTPClient. *Concepts: networking, JSON serialization, RTTI/attributes, threads, error handling.*

Project 7 — 2D game (advanced)

A platformer or shooter using Castle Game Engine (or raylib bindings, or SDL2 headers for Pascal) with sprites, collisions, sound, a game state machine, and levels loaded from JSON. *Concepts: classes, generics, records with operators (vectors), memory management, cross-platform deployment.*

Project 8 — Parallel file indexer and search engine (expert)

Recursively index text files using a thread pool (TThread workers, PPL, or MTProcs), build an inverted index in TDictionary<string, TList<Integer>>, persist it with streams, and answer boolean queries; measure speedup and memory with profilers and leak detectors. *Concepts: threads and synchronization, generics, streams, performance tuning, memory management.*