The Schedule optimization tool for managing you and your teams schedule.
Schedule Optimization project aimed at designing an assistance system to help teams find the best schedule in flexible and remote work environments and helping track assistance records.
This Spring Boot Java application will guide you through the process of optimizing schedules for teams in dynamic work settings.
- Java JDK
- Spring Boot
- React with TypeScript
- React Big calendar
- Chakra UI
- PostgreSQL/MySQL/your preferred database (PostgreSQL DDL provided in
./scripts)
Clone the repo and navigate to the main directory.
Exceute the PostgreSQL DDL provided in ./scripts.
- Navigate to
schedulewhiz-app/. - Make sure you nave
nodeandnpm, then execute:
# Install the dependencies
npm install
- Navigate to
backend/. - Create
env.propertiesconfiguration file. Your can use as example theevn.properties.example. - Ensure that the username, url and password match with your database.
Make sure you have
mvn, then execute:
# Clean the previous output and compile
mvn clean && mvn package
Run the app and write your changes:
# Start the dev server
npm run dev -- --host
Run the backend REST API:
# Start the backend server
mvn spring-boot:run
** you need to clean and recompile every change
Create the production version:
# You can preview the production build with npm run preview.
npm run build
- JWT security
- Service Layer
- Password encryption
- Access token and refresh token
- Time restrictions for endpoints
- Protected routes (React router)
- JWT expiration proof axios config
- Login and register forms
- Calendar support
You can find the project's backlog in the Backlog image.
The database schema for this project can be found in the Database Design image.
Here is a mockup of the user interface:
- As an employee I want to login in the app with the credentials from my pc.
- As a user I want to easily register my assistance.
- As a user I want to track my history.
- As a employee I want to know my next week schedule.
To get started with this project, follow these steps:
- Clone the repository.
- Setup the database with the provided DDL in
/scriptsfolder (PostgreSQL). - Configure your database settings in
application.propertiesandenv.properties(seeenv.properties.example). - Run the Spring Boot application.
- Run the React webapp.
- Register your email.
- Access the application.
- Begin optimizing schedules!
Contributions are welcome! Open your pull request.
- Initialize the Spring Boot project.
- Create the database schema.
- Implement user authentication.
- Design the scheduling algorithm.
- Develop the user interface.
- Clean the code.
- Document the project.
- Deployment and production-ready setup.
This project is licensed under the MIT License.





