Intermediate Projects
Prerequisites: Level 2 — Intermediate
Build these using OOP, collections, streams, and file I/O from Level 2.
1. Bank Account Simulator
Model Account (encapsulated balance, deposit/withdraw that throw a
custom InsufficientFundsException) and a Bank holding a
Map<String, Account>. Print a formatted statement of all accounts using
streams.
2. Library Management System
Model Book and Member classes, and a Library holding
List<Book>. Support checking a book out (removes it from the available
list) and returning it, and use streams to list overdue books.
3. Employee Management with File Persistence
Read employee records from a CSV file with Files.readString and manual
parsing, build Employee objects (implementing Comparable to sort by
salary), and write a summary report back out to a new file.
4. Inventory Tracker
Model Product with a sku, name, and quantity, held in a
Map<String, Product>. Support adding stock, removing stock (throwing a
custom exception if it would go negative), and printing a low-stock report
using streams (.filter(p -> p.quantity() < threshold)).