{"id":24707485,"url":"https://github.com/blacktechwarrior/javaworkscheduler","last_synced_at":"2025-03-22T05:27:05.425Z","repository":{"id":251330193,"uuid":"837074835","full_name":"BlackTechWarrior/JavaWorkScheduler","owner":"BlackTechWarrior","description":"CLI work scheduler. Create employees, automate scheduling","archived":false,"fork":false,"pushed_at":"2024-09-11T07:20:00.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T06:16:56.875Z","etag":null,"topics":["oop"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlackTechWarrior.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-02T06:51:23.000Z","updated_at":"2025-01-16T05:26:15.000Z","dependencies_parsed_at":"2025-01-27T06:16:59.566Z","dependency_job_id":"90d1944f-8839-4f25-82e5-ff8319891dcb","html_url":"https://github.com/BlackTechWarrior/JavaWorkScheduler","commit_stats":null,"previous_names":["blacktechwarrior/java-final-project---scheduler","blacktechwarrior/javaworkscheduler"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackTechWarrior%2FJavaWorkScheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackTechWarrior%2FJavaWorkScheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackTechWarrior%2FJavaWorkScheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackTechWarrior%2FJavaWorkScheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlackTechWarrior","download_url":"https://codeload.github.com/BlackTechWarrior/JavaWorkScheduler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244912424,"owners_count":20530760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["oop"],"created_at":"2025-01-27T06:17:07.430Z","updated_at":"2025-03-22T05:27:05.400Z","avatar_url":"https://github.com/BlackTechWarrior.png","language":"Java","readme":"\u003ch1\u003eAdvanced Work Scheduler\u003c/h1\u003e\n\n\u003ch2\u003eProject Overview\u003c/h2\u003e\n\n\u003cp\u003eThis repository contains an advanced version of a Work Scheduler application, originally developed as a final project for an Object-Oriented Programming course. The project demonstrates the practical application of OOP concepts and showcases significant enhancements over the original version.\u003c/p\u003e\n\n\u003ch2\u003eOriginal Project\u003c/h2\u003e\n\n\u003cp\u003eThe initial project was a collaborative effort with two classmates, resulting in a terminal-based Work Scheduler application. Key features included:\u003c/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003eUser roles: Manager and Employee\u003c/li\u003e\n  \u003cli\u003eManager functionalities:\n    \u003cul\u003e\n      \u003cli\u003eAdd/remove date times\u003c/li\u003e\n      \u003cli\u003eCreate and view schedules\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eEmployee functionalities:\n    \u003cul\u003e\n      \u003cli\u003eView personal schedules\u003c/li\u003e\n      \u003cli\u003eNotify managers of schedule conflicts or time-off requests\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eEnhanced Version\u003c/h2\u003e\n\n\u003cp\u003eTo challenge myself and create a more realistic application, I developed this enhanced version with the following improvements:\u003c/p\u003e\n\n\u003col\u003e\n  \u003cli\u003e\u003cstrong\u003eUser Account Creation\u003c/strong\u003e: New employees can now create their own accounts, improving scalability and user management.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eEnhanced Security\u003c/strong\u003e: Implemented password masking during input, significantly improving security and user privacy.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eAutomated Scheduling\u003c/strong\u003e: Replaced manual schedule editing with an intelligent auto-assign feature:\n    \u003cul\u003e\n      \u003cli\u003eEmployees can input their availability and also update it later on\u003c/li\u003e\n      \u003cli\u003eSchedules are automatically generated based on employee availability\u003c/li\u003e\n      \u003cli\u003eImplemented a constraint to ensure no more than two team leads are scheduled simultaneously\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eImproved User Experience\u003c/strong\u003e: The application now more closely emulates real-life work scheduling systems, making it more intuitive and user-friendly. \u003cbr\u003eOne example would be through \"pings\". Employees can \"ping\" a manager and wait for a response.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch2\u003eTechnical Highlights\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\u003cstrong\u003eObject-Oriented Programming\u003c/strong\u003e: Utilized classes, inheritance, and polymorphism to create a robust and maintainable codebase.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eData Structures\u003c/strong\u003e: Implemented efficient data structures for managing employee information and schedules.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eAlgorithm Design\u003c/strong\u003e: Developed a custom algorithm for auto-assigning schedules while respecting constraints.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eInput Validation\u003c/strong\u003e: Incorporated comprehensive input validation to ensure data integrity and improve user experience.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eMetrics\u003c/h2\u003e\n\n\u003ch3\u003eCode Statistics:\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eLines of code: ~1,500\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eLearning Outcomes\u003c/h2\u003e\n\n\u003cp\u003eThis project provided valuable insights and learning experiences:\u003c/p\u003e\n\n\u003col\u003e\n  \u003cli\u003eDeepened understanding of OOP principles and their practical applications\u003c/li\u003e\n  \u003cli\u003eGained experience in refactoring and enhancing existing codebases\u003c/li\u003e\n  \u003cli\u003eDeveloped skills in algorithm design for real-world problems\u003c/li\u003e\n  \u003cli\u003eImproved understanding of user experience considerations in software development\u003c/li\u003e\n  \u003cli\u003eEnhanced ability to implement security features in applications\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch2\u003eFuture Enhancements\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003eImplement a graphical user interface (GUI) for improved usability\u003c/li\u003e\n  \u003cli\u003eIntegrate with external calendar systems\u003c/li\u003e\n  \u003cli\u003eDevelop a mobile/ web application version\u003c/li\u003e\n  \u003cli\u003eMake pings more robust by separating chat logs on employees side to keep it private.\u003cbr\u003eThis can be some sort of simulated chat, where one can follow up as well. \u003c/li\u003e\n  \u003cli\u003eGive managers more functionality with the schedule, edit it, remove or add employees etc. \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003chr\u003e\n\n\u003cp\u003eThis project demonstrates the evolution from a basic course assignment to a more sophisticated, real-world application, showcasing both technical skills and an understanding of practical software development considerations.\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblacktechwarrior%2Fjavaworkscheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblacktechwarrior%2Fjavaworkscheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblacktechwarrior%2Fjavaworkscheduler/lists"}