A Java-based university automation system for managing students, courses, instructors, and academic scheduling - built with core OOP principles.
University Automation App is a command-line application that streamlines university operations including student enrollment, course management, instructor assignments, and schedule generation. Designed to demonstrate clean object-oriented architecture and real-world software design patterns.
- Student Management - Add, update, delete, and search student records
- Course Registration - Enroll/drop students from courses with capacity checks
- Instructor Assignment - Assign instructors to courses and manage workloads
- Schedule Management - Generate and view class schedules
- Search & Filter - Query students and courses by various criteria
- Data Persistence - Save and load data between sessions
| Technology | Purpose |
|---|---|
| Java 11+ | Core language |
| OOP | Architecture (inheritance, polymorphism, encapsulation) |
| Collections Framework | Data management |
| File I/O | Data persistence |
Java JDK 11 or later# Clone the repository
git clone https://github.com/KHALEDNOAMAN/UniversityAutomationApp.git
cd UniversityAutomationApp
# Compile
javac -d bin src/*.java
# Run
java -cp bin MainUniversityAutomationApp/
├── src/
│ ├── Main.java # Entry point
│ ├── Student.java # Student model
│ ├── Course.java # Course model
│ ├── Instructor.java # Instructor model
│ ├── Schedule.java # Scheduling logic
│ └── UniversitySystem.java # Core system controller
├── data/ # Persistent data files
└── README.md
- Single Responsibility - Each class handles one concern
- Encapsulation - Private fields with public getters/setters
- Inheritance - Shared behavior through class hierarchies
- Polymorphism - Method overriding for flexible behavior
This project is licensed under the MIT License.
Khaled Noaman - Computer Engineering Student at Istanbul Arel University