This repository contains Java projects developed during the university course Fundamental Programming Techniques at the Technical University of Cluj-Napoca.
The projects emphasize Object-Oriented Programming, clean architectural design, GUI development, reflection, serialization, and database interaction.
A desktop application designed to manage tasks assigned to employees in a software company.
- Object-Oriented Design
- Sealed abstract classes
- Composite Design Pattern (ComplexTask composed of SimpleTask)
- Java Swing graphical user interface
- Data persistence using Serialization
- Inheritance and polymorphism
- Collections Framework (Map, List)
- Status-based task processing
- Modular class structure
- Add employees
- Create simple and complex tasks
- Assign tasks to employees
- Modify task status (Completed / Uncompleted)
- Calculate employee work duration
- Generate task statistics per employee
- Filter employees with workload greater than 40 hours
A Java desktop application designed to manage and process domain-specific entities through a graphical user interface, following a structured object-oriented architecture.
- Structured object-oriented architecture
- Clear separation of responsibilities between components
- Modular package organization
- GUI-driven interaction layer
- Encapsulation and abstraction
- Class relationships (associations and compositions)
- Separation between data handling and application logic
- Maintainable and extensible code structure
- User interaction through graphical interface
- Entity management according to UML specifications
- Structured data processing through well-defined class responsibilities
A layered Java application for managing client orders within a warehouse environment, integrated with a relational database.
- Layered Architecture:
- model
- businessLayer
- dataAccessLayer
- presentation
- MySQL relational database
- JDBC connectivity
- Generic Data Access Layer using Java Reflection
- Dynamic query generation
- Immutable domain model using Java records (Bill entity)
- Lambda expressions and Streams
- JTable dynamic table generation
- Transaction handling for order processing
- Add / Edit / Delete Clients
- Add / Edit / Delete Products
- Create Orders with stock validation
- Automatic stock update after order placement
- Bill generation and storage in a dedicated Log table
- Java
- Swing
- MySQL
- JDBC
- Reflection
- Java Streams & Lambda Expressions
- Serialization
- Object-Oriented Programming# Java-Programming-Techniques