A collection of small, self-contained Java console applications — each one simulating a real-world utility with menu-driven interaction, arrays/ArrayLists for data storage, and basic file I/O.
Tracks daily expenses across four categories: Groceries, Laundry, Electricity, and Miscellaneous. Users can add expenses, view spending by category, or check overall totals across all entries.
Features: category-based tracking, running grand totals, repeatable entry loop.
A menu-driven system for managing product inventory — add, update, search, delete, and sort products by name. Includes file persistence so inventory data can be saved to and loaded from a text file between sessions.
Features: CRUD operations on inventory, bubble-sort by product name, file save/load using FileWriter/BufferedReader.
Records student marks across five subjects (Math, Physics, Chemistry, English, Urdu), calculates totals/percentages, and assigns letter grades. Also includes a transcript generator and class-average calculator.
Features: grade calculation logic (A*, A, B, C, D, Fail), individual transcript builder, class-wide subject averages, and JavaFX-compatible methods for GUI integration.
Note: A JavaFX GUI version (StudentGradingSystemFX.java) was started to bring
this console app into a graphical interface, reusing the same backend logic
(addStudentFromFX, getStudentNames). It's functional for adding/viewing
students but not fully polished — left as-is to reflect ongoing progression
rather than perfection.
Each app is a standalone .java file with its own main method — run independently, no shared dependencies between them.
Building these mini apps reinforced core Java concepts: arrays vs ArrayLists for dynamic data, static methods/variables for shared state across a class, menu-driven CLI design with loops and switch-like logic, basic file I/O for persistence, and structuring code so the same logic (like grading) can serve both a CLI and a future GUI layer.