This repository contains a collection of comprehensive Java projects demonstrating the core principles of Object-Oriented Programming (OOP), event-driven application design, and dynamic memory handling.
Academic Disclaimer: These projects were developed as part of the BBM104 Introduction to Programming Laboratory II course. While the problem scenarios, structural guidelines, and expected class hierarchies were outlined by the course curriculum, no starter code was provided. The actual code implementations, internal logic, event handling, and algorithms were developed entirely from scratch by me.
All projects are built using Java 8+, emphasizing clean architecture, polymorphism, inheritance, and encapsulation.
A comprehensive backend simulation for a university library handling varying borrowing rules, penalty calculations, and inventory tracking across multiple user roles.
- Key Topics: Inheritance Hierarchies, Polymorphism, HashMap/List Data Structures, Time API (
LocalDate), File I/O. - Highlight: Engineered a dynamic rule-engine that calculates automated return penalties and restricts borrowing privileges based on distinct user roles (Student, Academic, Guest).
A simulation of a zoo ecosystem focusing on resource management, role-based access control, and dynamic biological scaling.
- Key Topics: Abstraction, Polymorphism, Custom Exception Handling, HashMap-based Inventory.
- Highlight: Developed an abstract
Animalcontract where subclasses (Lion, Elephant, etc.) polymorphically calculate dynamic meal requirements based on age deviations and species-specific metabolic constants.
A complex relational data simulation of a university's academic management infrastructure, acting as a lightweight relational database memory model.
- Key Topics: Interface-Driven Design (
Assignable), Multi-file Data Synchronization, Hierarchical Reporting. - Highlight: Engineered a robust data ingestion layer that simultaneously parses and synchronizes 6 distinct batch files, linking entities (Students, Academics, Courses) in O(1) time complexity using multiple HashMap collections.
A fully functional 2D top-down arcade tank simulation featuring real-time rendering, custom physics collision logic, and autonomous entity management.
- Key Topics: JavaFX (Canvas API), Real-time Game Loop (
AnimationTimer), AABB Collision Detection, Event-Driven Programming. - Highlight: Developed a proprietary Axis-Aligned Bounding Box (AABB) collision engine and a memory-efficient immediate-mode rendering pipeline for concurrent entity management.
- Independent Implementation: Successfully translated theoretical assignment guidelines and structural requirements into robust, working Java code.
- System Stability: Extensive use of custom exception architectures to handle business logic violations without halting batch processing pipelines.
- Performance: Optimized O(1) lookups using the Java Collections Framework to manage complex relational datasets in memory.
Developed by İrem Eroğlu as part of the Artificial Intelligence Engineering curriculum.