Web application for managing maintenance tasks for a fleet of vessels of the Hellenic Coast Guard. The application allows for maintaining a list of boats each with its own components and maintenance sessions and notifies for overdue as well as future jobs.

Functionality at a glance:

  • Boats are created based on built-in templates. Each boat/template includes:
    • Components: Include their own maintenance schedule and record of maintenance sessions. Maintenance schedule can be based on operation hours and/or elapsed time.
    • Slots: Used to distinguish multiple components of the same type (e.g. main engine 1 and main engine 2 in slots starboard and port respectively).
    • Operation groups: Associated with components in order to track the component operation hours. Components that always operate simultaneously are mapped to the same operation group.
  • Components are created based on built-in templates. Components may be removed or moved to a different boat. When moving components between boats the maintenance history and operation hours are transferred to the new boat.
  • Operation hours are tracked by entering operation intervals such that they are contiguous and non-overlapping. Operation intervals consist of a start/end time and the corresponding operation hours for all operation groups.
  • A comprehensive boat maintenance overview page displays information about the boat operation hours as well as the overdue and pending jobs.
  • Both the boat overview and the session lists may be downloaded in pdf format.
  • Complete user management system supporting the following roles:
    • User: Allowed to manage maintenance information for his/her designated boat(s).
    • Viewer: Allowed read-only access to all boats and maintenance information.
    • Supervisor: Allowed to change configuration and manage maintenance information for all boats.
    • Administrator: Same as supervisor but also allowed to manage users and associate them with boats.

Key technologies:

  • ASP.NET Core WebAPI on .NET Core as the main application framework.
  • Identity Server 4 SPA authentication over OIDC.
  • Entity Framework Core ORM for object-oriented, type-safe database access.
  • SQL Server database server.
  • DinkToPdf/wkhtmltopdf for dynamic report creation in pdf format.
  • React front-end.

Boat overview:

  • Allows for upload/deletion of the boat image.
  • Displays information about:
    • The boat and the contact person.
    • The operation hours of all operation groups.
  • Includes links to:
    • Boat editing page.
    • Jobs pdf creation.
    • Components list.
    • Operation intervals list.
    • Sessions list.
    • Secondary jobs pop-up.
Overview Pdf
  • Includes three tables for:
    • Overdue jobs sorted by date.
    • Future hours-based jobs sorted by component (user-selectable number of future jobs for each component).
    • Future time-based jobs sorted by job date (user-selectable number of future jobs for each component).
  • Maintenance sessions can be automatically created from a listed job by clicking on the job “CREATE” button.

Components list:

  • Allows for paging, selecting the number of displayed items, searching and sorting. Searching and sorting can be done according to various columns.
  • Allows for in-place slot/operation group assignment displaying only compatible and available slots.
  • Provides links to component information editing, deletion, move to another boat and sessions list.

Sessions list:

  • Allows for filtering sessions by job (task or level) and start/end dates.
  • Allows for creating a pdf report out of the results.
  • Contains links to add new session, visit a session control panel and delete the session.

Session control panel:

  • Contains links for editing basic session information and deleting session.
  • Allows for adding/removing levels or tasks to the maintenance session:
  • Protects the user from adding overlapping tasks such as:
    • Levels that share tasks or already selected levels.
    • Tasks contained in the selected levels or already selected tasks.

Users list:

  • Allows for paging, selecting number of items per page, searching, and sorting by the desired column.
  • Provides links for editing, deleting, changing password and associate/disassociate with boat.