Job-Finder UML Diagram Viewer
Render Diagram
Zoom In
Zoom Out
Reset Zoom
Mermaid Code
flowchart TD %% Application Entry Point Main["Main.java (Entry Point)"]:::entry %% UI Layer Subgraph subgraph "UI Layer" UI_Folder["UI FXML Views"]:::uiFolder Login["login.fxml\n(Login Screen)"]:::ui EmployerDashboard["employerDashboard.fxml\n(Employer Dashboard)"]:::ui AddVacancy["AddVacancy.fxml\n(Add Vacancy)"]:::ui JobDetails["JobDetails.fxml\n(Job Details)"]:::ui JobVacancies["JobVacancies.fxml\n(Vacancy Listing)"]:::ui ManageVacancy["ManageVacancy.fxml\n(Vacancy Management)"]:::ui ResumeBuilder["ResumeBuilder.fxml\n(Resume Builder)"]:::ui ViewCompanies["ViewCompanies.fxml\n(View Companies)"]:::ui ViewEndorsements["ViewEndorsements.fxml\n(View Endorsements)"]:::ui ViewJobHunters["ViewJobHunters.fxml\n(View JobHunters)"]:::ui RecruiterApplication["recruiterApplication.fxml\n(Recruiter Application)"]:::ui RecruiterProfile["recruiteraccount.fxml\n(Recruiter Profile)"]:::ui JobhunterApplications["registerJH.fxml\n(Jobhunter Applications)"]:::ui UICss["application.css\n(UI Styling)"]:::ui end %% Controllers Subgraph subgraph "Controllers" AccountController["AccountController\n(Manages account)"]:::controller AddVacancyController["AddVacancyController\n(Handles vacancy addition)"]:::controller EmployerDashboardController["EmployerDashboardController\n(Manages dashboard)"]:::controller JobDetailsController["JobDetailsController\n(Manages job details)"]:::controller JobVacanciesController["JobVacanciesController\n(Handles vacancy listing)"]:::controller JobhunterApplicationsController["JobhunterApplicationsController\n(Manages applications)"]:::controller ManageVacanciesController["ManageVacanciesController\n(Manages vacancies)"]:::controller RecruiterApplicationController["RecruiterApplicationController\n(Handles recruiter applications)"]:::controller RecruiterProfileController["RecruiterProfileController\n(Manages recruiter profile)"]:::controller ResumeBuilderController["ResumeBuilderController\n(Manages resume builder)"]:::controller ViewCompaniesController["ViewCompaniesController\n(Handles viewing companies)"]:::controller ViewEndorsementsController["ViewEndorsementsController\n(Handles viewing endorsements)"]:::controller ViewJobHuntersController["ViewJobHuntersController\n(Handles viewing jobhunters)"]:::controller GiveEndorsementController["giveEndorsementController\n(Handles endorsements)"]:::controller end %% Data Access and Session Management DBHandler["DBHandler.java\n(Data Access Layer)"]:::database UserSession["UserSession.java\n(Session Manager)"]:::session OtherClasses["OtherClasses.java\n(Supporting Logic)"]:::support %% Application Flow %% Main launches UI Layer Main -->|"launches"| UI_Folder %% UI Folder routes to individual FXML views UI_Folder -->|"displays"| Login UI_Folder -->|"displays"| EmployerDashboard UI_Folder -->|"displays"| AddVacancy UI_Folder -->|"displays"| JobDetails UI_Folder -->|"displays"| JobVacancies UI_Folder -->|"displays"| ManageVacancy UI_Folder -->|"displays"| ResumeBuilder UI_Folder -->|"displays"| ViewCompanies UI_Folder -->|"displays"| ViewEndorsements UI_Folder -->|"displays"| ViewJobHunters UI_Folder -->|"displays"| RecruiterApplication UI_Folder -->|"displays"| RecruiterProfile UI_Folder -->|"displays"| JobhunterApplications %% UI views trigger corresponding Controllers Login -->|"handles"| AccountController EmployerDashboard -->|"handles"| EmployerDashboardController AddVacancy -->|"handles"| AddVacancyController JobDetails -->|"handles"| JobDetailsController JobVacancies -->|"handles"| JobVacanciesController ManageVacancy -->|"handles"| ManageVacanciesController ResumeBuilder -->|"handles"| ResumeBuilderController ViewCompanies -->|"handles"| ViewCompaniesController ViewEndorsements -->|"handles"| ViewEndorsementsController ViewJobHunters -->|"handles"| ViewJobHuntersController RecruiterApplication -->|"handles"| RecruiterApplicationController RecruiterProfile -->|"handles"| RecruiterProfileController JobhunterApplications -->|"handles"| JobhunterApplicationsController %% Additional Controller interaction for endorsements ViewEndorsementsController -->|"initiates"| GiveEndorsementController %% Aggregate Controllers Group for backend interaction %% (Invisible aggregator for clarity and reducing arrow clutter) ControllersGroup[("Controllers Group")]:::controller AccountController --> ControllersGroup AddVacancyController --> ControllersGroup EmployerDashboardController --> ControllersGroup JobDetailsController --> ControllersGroup JobVacanciesController --> ControllersGroup JobhunterApplicationsController --> ControllersGroup ManageVacanciesController --> ControllersGroup RecruiterApplicationController --> ControllersGroup RecruiterProfileController --> ControllersGroup ResumeBuilderController --> ControllersGroup ViewCompaniesController --> ControllersGroup ViewEndorsementsController --> ControllersGroup ViewJobHuntersController --> ControllersGroup GiveEndorsementController --> ControllersGroup %% Controllers interact with Persistence and Session Management ControllersGroup -->|"DBCalls"| DBHandler ControllersGroup -->|"session"| UserSession %% Optional supporting logic link (if used by controllers) ControllersGroup -->|"utilizes"| OtherClasses %% Styles classDef entry fill:#ADD8E6,stroke:#000,stroke-width:1px; classDef ui fill:#FFF2CC,stroke:#000,stroke-width:1px; classDef uiFolder fill:#F9CB9C,stroke:#000,stroke-width:1px; classDef controller fill:#FFD966,stroke:#000,stroke-width:1px; classDef database fill:#C6EFCE,stroke:#000,stroke-width:1px; classDef session fill:#D9D2E9,stroke:#000,stroke-width:1px; classDef support fill:#E2EFDA,stroke:#000,stroke-width:1px; %% Click Events click Main "https://github.com/atifibrahim7/jobfinder/blob/main/Main.java" click UserSession "https://github.com/atifibrahim7/jobfinder/blob/main/UserSession.java" click DBHandler "https://github.com/atifibrahim7/jobfinder/blob/main/DBHandler.java" click AccountController "https://github.com/atifibrahim7/jobfinder/blob/main/AccountController.java" click AddVacancyController "https://github.com/atifibrahim7/jobfinder/blob/main/AddVacancyController.java" click EmployerDashboardController "https://github.com/atifibrahim7/jobfinder/blob/main/EmployerDashboardController.java" click JobDetailsController "https://github.com/atifibrahim7/jobfinder/blob/main/JobDetailsController.java" click JobVacanciesController "https://github.com/atifibrahim7/jobfinder/blob/main/JobVacanciesController.java" click JobhunterApplicationsController "https://github.com/atifibrahim7/jobfinder/blob/main/JobhunterApplicationsController.java" click ManageVacanciesController "https://github.com/atifibrahim7/jobfinder/blob/main/ManageVacanciesController.java" click RecruiterApplicationController "https://github.com/atifibrahim7/jobfinder/blob/main/RecruiterApplicationController.java" click RecruiterProfileController "https://github.com/atifibrahim7/jobfinder/blob/main/RecruiterProfileController.java" click ResumeBuilderController "https://github.com/atifibrahim7/jobfinder/blob/main/ResumeBuilderController.java" click ViewCompaniesController "https://github.com/atifibrahim7/jobfinder/blob/main/ViewCompaniesController.java" click ViewEndorsementsController "https://github.com/atifibrahim7/jobfinder/blob/main/ViewEndorsementsController.java" click ViewJobHuntersController "https://github.com/atifibrahim7/jobfinder/blob/main/ViewJobHuntersController.java" click GiveEndorsementController "https://github.com/atifibrahim7/jobfinder/blob/main/giveEndorsementController.java" click OtherClasses "https://github.com/atifibrahim7/jobfinder/blob/main/OtherClasses.java" click UI_Folder "https://github.com/atifibrahim7/jobfinder/tree/main/userInterface" click UICss "https://github.com/atifibrahim7/jobfinder/blob/main/application.css"
Preview