Skip to content

Frontend

Vue/Vite frontend for Nexus by McGuire Technology.

Development

sh
npm install
npm run frontend:dev

The app will be available at the local URL printed by Vite.

Root Redirects

When users land on the frontend root path /, the app redirects based on local auth state:

  • signed out users go to the docs URL in production builds
  • signed out users go to /signin during local Vite development
  • signed in users go to /dashboard

By default, the docs URL is http://docs.localhost. Override it with VITE_DOCS_URL when the docs are hosted somewhere else.

Docker

The frontend can also run behind Traefik in the Compose stack:

sh
docker compose up --build frontend traefik

By default, the app is routed at http://app.localhost.

The docs top navigation links to http://app.localhost/signin. Successful sign in and sign up flows land on /dashboard.

Application Shell

Authenticated pages use a responsive application shell. Users can switch between left-sidebar and top-bar navigation from the user menu. Tenant selection, user actions, and docs access live in menu controls instead of the primary object navigation.

Master views use card grids by default. Selecting a master object opens a read-only detail pane. Related records in a detail pane use shortcut icons to navigate to that object type's master view with the linked object focused. Edit workflows are reserved for inspector-style UI.

System

System is a Nexus module. The frontend includes sign up and sign in flows at /signin, a signed-in dashboard at /dashboard, authenticated user listing flows at /users, group flows at /groups, tenant context controls, session management, and preference workflows. User records are platform accounts rather than a users-only product module.

Assets

Assets is a Nexus module. The frontend includes authenticated asset model listing and creation flows at /asset-models. Asset models start with id, name, and tracking_type.

The frontend also includes authenticated asset listing and creation flows at /assets. Assets start with id, tenant_id, optional project_id, model_id, name, nullable serial_number, and quantity. Serialized models collect serial numbers; countable models collect quantities.

The frontend includes authenticated asset assignment flows at /asset-assignments. Assignments connect an asset to either a person or location with a start date and optional end date.

The frontend includes authenticated asset circulation flows at /asset-circulations. Circulations record events such as issuing an asset to a person, returning it, moving or receiving it into a location, and physical location confirmations.

Projects

Projects is a Nexus module. The frontend includes authenticated project listing and creation flows at /projects. Technology Service and Maintenance Service appear as shared service projects seeded by the backend.

The frontend includes authenticated parent issue flows at /issues, service request flows at /service-requests, known problem flows at /known-problems, incident flows at /incidents, change flows at /changes, post-incident analysis flows at /post-incident-analysis, and asset repair subtype flows at /asset-repairs.

Parent issue pages share the same master/detail layout and add-sheet flow. Issues collect project, title, subtype, status, priority, opened date, closed date, and description. Repairs track repair title, description, status, priority, location, reported date, and resolved date while also appearing in the parent Issues view.

Configurations

Configurations is a Nexus module. The frontend includes authenticated configuration item flows at /configuration-items and relationship workflows for connecting configuration items.

Locations

Locations is a Nexus module. The frontend includes authenticated location type listing and creation flows at /location-types. Location types start with id and name.

The frontend also includes authenticated location listing and creation flows at /locations. Locations start with id, parent_id, name, and type_id.

Census

Census is a Nexus module. The frontend includes authenticated person listing and creation flows at /persons. Persons start with id and current_identity_id.

The frontend includes authenticated identity listing and creation flows at /identities. Identities start with id, person_id, last_name, first_name, and middle_name.

Education

Education is a Nexus module. The frontend includes authenticated school listing and creation flows at /schools. Schools start with id and name.

The frontend includes authenticated school year listing and creation flows at /school-years. School years start with id, name, start, and end.

The frontend includes authenticated school calendar listing and creation flows at /school-calendars. School calendars start with id, school_id, calendar_id, and name.

The frontend includes authenticated school enrollment listing and creation flows at /school-enrollments. School enrollments start with id, person_id, and calendar_id.

Set VITE_API_BASE_URL for non-default API hosts. If it is not set, the app uses http://api.localhost.

Nexus by McGuire Technology