How hylmithecoder/matkul-pbo-sem3 works
This Java application teaches semester-three programming topics through a JavaFX dashboard and a modular CLI. In the GUI path, users select a lesson, open its window, and work with student grades, thread-priority sorting, or Java collections; lesson selection can also open accompanying PDFs. In CLI mode, users choose the thread demo or an API-backed chatbot. The graph reflects those documented capabilities and the supplied source excerpts; collection behavior is represented at its controller/model-directory level because individual model implementations were not sampled.
Main entry points: WindowManager.java Window manager · App.java App · DashboardController.java Dashboard · CliManager.java CLI dispatcher
Components 16
Application entry
- App
src/main/java/sem3matkul/App.java - CLI dispatcher
src/main/java/sem3matkul/core/CliManager.java
GUI lessons
- Dashboard
src/main/java/sem3matkul/dashboard/DashboardController.java - Window manager
src/main/java/sem3matkul/core/WindowManager.java - Dashboard view
src/main/resources/sem3matkul/dashboard.fxml - PDF viewer
src/main/java/sem3matkul/core/PDFRenderer.java
CLI lessons
- Thread CLI demo
src/main/java/sem3matkul/pertemuan2/cli/ThreadCli.java - Chatbot CLI
src/main/java/sem3matkul/pertemuan4/cli/ChatBotCLI.java
Lesson logic
- Student grades
src/main/java/sem3matkul/pertemuan1/controller/MahasiswaController.java - Student grade model
src/main/java/sem3matkul/pertemuan1/model/Mahasiswa.java - Thread lesson UI
src/main/java/sem3matkul/pertemuan2/controller/ThreadController.java - Priority model
src/main/java/sem3matkul/pertemuan2/model/Thread.java - Collections UI
src/main/java/sem3matkul/pertemuan3/controller/CollectionController.java - Collection models
src/main/java/sem3matkul/pertemuan3/model
Other components
- User
- Chat API
Connections 17
- User → App: starts
- App → Dashboard view: loads
- Dashboard view → Dashboard: binds actions
- App → Window manager: registers stage
- App → CLI dispatcher: dispatches CLI
- User → Dashboard: selects lesson
- Dashboard → Window manager: opens lesson
- Window manager → Student grades: loads view
- Window manager → Thread lesson UI: loads view
- Window manager → Collections UI: loads view
- Student grades → Student grade model: creates and reads
- Thread lesson UI → Priority model: updates and sorts
- Collections UI → Collection models: operates on
- CLI dispatcher → Thread CLI demo: dispatches lesson
- CLI dispatcher → Chatbot CLI: dispatches lesson
- Chatbot CLI → Chat API: sends chat request
- Dashboard → PDF viewer: opens lesson PDFs