https://github.com/blacktechwarrior/javaworkscheduler
CLI work scheduler. Create employees, automate scheduling
https://github.com/blacktechwarrior/javaworkscheduler
oop
Last synced: about 1 year ago
JSON representation
CLI work scheduler. Create employees, automate scheduling
- Host: GitHub
- URL: https://github.com/blacktechwarrior/javaworkscheduler
- Owner: BlackTechWarrior
- Created: 2024-08-02T06:51:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-11T07:20:00.000Z (over 1 year ago)
- Last Synced: 2025-01-27T06:16:56.875Z (over 1 year ago)
- Topics: oop
- Language: Java
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Advanced Work Scheduler
Project Overview
This 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.
Original Project
The initial project was a collaborative effort with two classmates, resulting in a terminal-based Work Scheduler application. Key features included:
- User roles: Manager and Employee
- Manager functionalities:
- Add/remove date times
- Create and view schedules
- Employee functionalities:
- View personal schedules
- Notify managers of schedule conflicts or time-off requests
Enhanced Version
To challenge myself and create a more realistic application, I developed this enhanced version with the following improvements:
-
User Account Creation: New employees can now create their own accounts, improving scalability and user management. -
Enhanced Security: Implemented password masking during input, significantly improving security and user privacy. -
Automated Scheduling: Replaced manual schedule editing with an intelligent auto-assign feature:
- Employees can input their availability and also update it later on
- Schedules are automatically generated based on employee availability
- Implemented a constraint to ensure no more than two team leads are scheduled simultaneously
-
Improved User Experience: The application now more closely emulates real-life work scheduling systems, making it more intuitive and user-friendly.
One example would be through "pings". Employees can "ping" a manager and wait for a response.
Technical Highlights
-
Object-Oriented Programming: Utilized classes, inheritance, and polymorphism to create a robust and maintainable codebase. -
Data Structures: Implemented efficient data structures for managing employee information and schedules. -
Algorithm Design: Developed a custom algorithm for auto-assigning schedules while respecting constraints. -
Input Validation: Incorporated comprehensive input validation to ensure data integrity and improve user experience.
Metrics
Code Statistics:
- Lines of code: ~1,500
Learning Outcomes
This project provided valuable insights and learning experiences:
- Deepened understanding of OOP principles and their practical applications
- Gained experience in refactoring and enhancing existing codebases
- Developed skills in algorithm design for real-world problems
- Improved understanding of user experience considerations in software development
- Enhanced ability to implement security features in applications
Future Enhancements
- Implement a graphical user interface (GUI) for improved usability
- Integrate with external calendar systems
- Develop a mobile/ web application version
- Make pings more robust by separating chat logs on employees side to keep it private.
This can be some sort of simulated chat, where one can follow up as well. - Give managers more functionality with the schedule, edit it, remove or add employees etc.
This 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.