Skip to content

BoomCheeseBurge/maintanence_scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maintenance Scheduler

Built on PHP 8 with Bootstrap5.

This project was part of an internship task to manage the maintanence schedule for employees in the technical support department where users can track and manage their upcoming, in-progress, or finished maintenances.

This project was developed with PHP using MariaDB RDBMS (MySQL database) and Apache2 webserver (in XAMPP).

Fresh project installation welcomes the admin user with a pre-flight & setup page to configure their email, password, and personal information.

The MVC principles are applied to provide ease of navigation through the projet folder for maintainability and scalability.

Roles

  1. Admin User

  2. Manager User

  3. Engineer User

Any finished maintenances are archived in the maintenance history section.

Web-Application Sections

The project consist of the following sections based on the user role's POV:

  • Dashboard

Admin and manager users are able to view a table that displays the on-going maintenance scheduled ONLY for the current month.

Manager users are able to view and track which users are late on their maintenance based on month or year from user input (by default the current month or year), that is visualized with a simple bar graph.

Engineer users ONLY has access to this page to keep track of their scheduled maintenances.

Engineer users can perform actions on every row to change the status of the on-going maintenance from scheduled date (available maintenance date set by the engineer), actual date (agreed schedule date between the engineer and the client), maintenance status (in-progress or finished), and report status (on which date the maintenance report was delivered).

  • Maintenance

Admin and manager users are able to view a table that displays a history of past maintenance schedules.

Admin and manager users are able to delete records if necessary (e.g., unused maintenance schedules).

  • Contract

Admin and manager users are able to view a table that displays the current contracts with existing clients.

Admin users are able to perform CRUD operations for contract.

Additionally, admin users can create a new maintenance schedule with respect to each contract.

  • Client

Admin and manager users are able to view a table that displays existing clients.

Admin users are able to perform CRUD operations for client.

  • User

Admin and manager users are able to view a table that displays existing users.

Admin users are able to perform CRUD operations for user.

  • User Navbar Menu

All users are able to access this menu to either modify their profile (i.e., name, email, or photo change) or change password.

However, only admin users are able to change email and phone number support.

Tables

The tables utilize a third-party library called Bootstrap Table. The table from the library by default provides table functionalities that would be seen in a typical table as follows.

  • search table input.
  • refresh table.
  • show/hide columns.
  • full screen view of the table.
  • sortable columns.
  • resizable columns.
  • pagination.

Additional functionalities added to the table are a filter feature and downloadable table data for certain cases.

Testing

Considering the relatively small size of the project and tight deadline, testing were performed manually that tests the common workflow of the web-application used by each user roles.

Future Improvements

  • ❌ Perform proper testing using PHPUnit.

Third-Party Libraries

These libraries were installed (with composer and NPM) to provide additional functionalities either to simplify creating web components or expand existing features. The following lists out the third-party libraries used in this project.

NPM

  • Bootstrap Table ( 1.22.1 )
  • Apache ECharts ( 5.4.3 )
  • jquery-resizable-columns by dobtco ( 0.2.3 ) [dependent on StoreJS and JQuery]
  • StoreJS ( 2.0.0 )
  • tableExport.jquery.plugin by hhurz ( 1.28.0 )
  • SweetAlert2 ( 11.7.23 )

External Source

  • Bootstrap ( 5.3.0 )
  • JQuery ( 3.7.0 )

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published