Skip to content

This repository contains my Java OOP projects developed as part of my university coursework under the guidance of Roberta Bardini.

License

Notifications You must be signed in to change notification settings

phroo02/Java-Object-Oriented-Programming-OOP-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Object-Oriented Programming (OOP) Projects

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.


📌 Projects Overview

1️⃣ Lab 1 – University Management

  • 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).

2️⃣ Lab 2 – Hydraulic System Simulation

  • 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.

3️⃣ Lab 3 – Diet & Restaurant Management

  • 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.

4️⃣ Lab 4 – Mountain Huts Information System

  • 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.

6️⃣ Lab 5 – Social Network

  • 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.

🛠️ Technologies & Skills

  • 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

🚀 How to Run

  1. Clone the repository:
    git clone https://github.com/yourusername/java-oop-projects.git
    cd java-oop-projects
  2. Open the project in your preferred Java IDE.
  3. Compile and run individual labs:
    javac -d bin src/**/*.java
    java -cp bin university.Main   # Example for Lab 1
  4. For Lab 6, ensure Hibernate dependencies and a proper persistence.xml are configured.

🏆 Skills Demonstrated

  • 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

About

This repository contains my Java OOP projects developed as part of my university coursework under the guidance of Roberta Bardini.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published