This repository contains my Java OOP projects developed as part of my university coursework under the guidance of Roberta Bardini.
These projects cover core OOP concepts, collections, streams, persistence with Hibernate, and real-world simulations, progressively increasing in complexity.
Note: This is a learning project series completed during the Object-Oriented Programming course by Roberta Bardini.
All credits for the course materials and assignments go to Roberta Bardini.
- Implemented a University system with:
- Student and course management
- Exam tracking and average computation
- Top students ranking and logging of key operations
- Key OOP Concepts: Encapsulation, class interactions, arrays, logging (
java.util.logging.Logger
).
- Developed a hydraulic system simulator:
- Models sources, taps, sinks, splits, and multi-splits
- Flow computation and max flow checks with alarms
- Fluent Builder API for system construction
- Key OOP Concepts: Inheritance, polymorphism, interfaces, encapsulation, builder pattern.
- Built a nutrition and restaurant management system:
- Track raw materials, products, recipes, and menus
- Handle customers, restaurants, and orders
- Compute nutritional values and manage delivery schedules
- Key OOP Concepts: Interfaces, collections, sorting, and filtering.
- Created an information system for mountain huts:
- Manage municipalities, huts, and altitude ranges
- CSV import and processing
- Data aggregation and statistics using Stream API
- Key OOP Concepts: Streams & Lambdas, Optionals, Maps and Lists for data queries.
- Developed a social network application with persistence:
- User registration, friendships, groups, and posts
- Paginated retrieval of posts for users and their friends
- Group and friendship statistics
- Persistence using Hibernate ORM via
EntityManager
- Key OOP Concepts: Persistence with JPA/Hibernate, exceptions, repository pattern, pagination.
- Programming Language: Java
- OOP Concepts: Encapsulation, Inheritance, Polymorphism, Interfaces
- Advanced Java: Collections, Stream API, Exception Handling, Optional
- Persistence: Hibernate ORM, JPA
- Data Management: CSV handling, logging, sorting & filtering
- Tools: IntelliJ IDEA / Eclipse, JDK 17+, JUnit
- Clone the repository:
git clone https://github.com/yourusername/java-oop-projects.git cd java-oop-projects
- Open the project in your preferred Java IDE.
- Compile and run individual labs:
javac -d bin src/**/*.java java -cp bin university.Main # Example for Lab 1
- For Lab 6, ensure Hibernate dependencies and a proper persistence.xml are configured.
- Object-Oriented Design & Implementation
- Collections & Streams for Data Processing
- File I/O and CSV Parsing
- ORM & Database Persistence with Hibernate
- Exception Handling and Logging
- Simulation and Real-world System Design