2. General
2.1 Dictionary
Application
Refers to the custom-made application that is the subject of this document. Application management interface is private: only authenticated and authorized users can access it.
Brand
Refers to Porsche Croatia brands: Volkswagen (VW), Volkswagen Gospodarska vozila (VW GV), Škoda, Seat, Cupra, Audi. Every brand has a name and a code.
Client
Porsche Croatia d.o.o.
User
Each authenticated user of the application.
Brand manager
Users of the app that mostly manages events.
Promotor
Promotors working on events that scan the QR codes of invitees and manages the signing of the document.
Invitees
Visitors of the event that need to sign the documents.
2.2 Legend
Items marked as nice to have are implemented if they require little effort. If assessed as significant effort, they should be estimated separately.
Nice to have functionality.
Items marked as change request indicate additional scope. These items should be estimated separately.
Billed change request.
2.3 About this document
The purpose of this document is the definition of project “Development of the Events and Vozni park”. Employee evaluation part of the application will be managed separately.
The document describes and clarifies functionality that needs to be delivered in the new application.
This documentation is accompanied by design mockups created in Figma. The mockups serve solely as a visual aid for understanding the application flow and interface layout. The final appearance and behaviour of the application in production may differ from the mockups shown, depending on technical decisions made during the development phase.
Porsche Croatia d.o.o. is a general representative for the brands Volkswagen, Audi, SEAT, CUPRA, Skoda, MOON and Volkswagen Gospodarska vozila.
2.4 Technical limitations
The application should be optimized for versions of Chrome and Firefox on Windows 11, Linux; Chrome, Firefox and Safari on macOS; released in the last 6 months. Older versions should either work with reduced guest experience or block access to the booking web application with recommendation to upgrade the browser.
All code must reside in git.
All application configuration (database access, passwords, keys, routes, SMTP server, etc.) must be stored in a single configuration file. This file must not be stored in GIT. This should allow the same software to run on the production and test environment (same package, bin, exe, etc.).
Must use fully automated continuous integration / continuous deployment with two environments:
2.5 Overview
Application management interface allows the users of the application to do most of their tasks. Core areas of the application management interface are:
- Authentication/authorization (known as “login”)
- User management
- Event management
- Document management
- Invitee management
- Signing the documents at the spot
- Reservations and form signing for Vozni park
The application will be in Croatian.
Application works online. Parts of application are made responsive, so they are accessible on the mobile phone.
2.6 Authentication/authorization
Authentication/authorization is done by an external service (such as Azure B2C). Details are dependent on the selected service.
Core features:
- Users must be authenticated and authorized to access the admin part.
- Users must be authenticated with email and password.
- Registration of users is not possible.
- Sign in.
- Sign out.
- Forgotten password.
2.7 User management
User management is only accessible to the user with the role “user-manager”. User management is tightly integrated with the chosen authentication and authorization platform.
The user list displays the following user data:
The list has no pagination and no filtration.
User-manager can:
- Add new users.
- Assign email.
- Assign a random password, but not store it. Expected process is that the new user will click “forgotten password” and reset it.
- Edit existing users.
- Assign roles.
- Delete users.
A deleted user loses access to the application, but his/her records must be kept in reservation timeline, where we display which user made a status change.
2.8 User roles
Types of roles:
Brand managers (uvoznik)
Brand managers can view events, create events, manage invitees, select vehicles for events, and manage evaluations.
Managers of Vozni park
Managers of Vozni park have access to Vozni park part of the application.
Evaluators (partners)
Evaluators can fill out the forms for the assessments. Evaluators are part of Employee evaluation, they do not have access to Events / Vozni park part of the app.
Promotors at the sign-in counter scan QR code, take consents from invitees and track their activities. They can also access list of events and invitees for a specific event and see the consents they have already signed with the timestamp.
Promotors only have access to events application.
They should not have the option to edit or download documents.
User-manager
For managing users there is an extra role called “user-manager”. User-manager can manage users (add, delete, or edit users).
2.9 Language
The app interface is in Croatian language. This documentation is in English.
2.10 Offline functionality
The entire app is a web app that works with an internet connection. However, parts of the application should be functional without internet connection.
2.11 Brand specifics
The application is used by multiple brands; each brand has their own logotype. The core application remains the same, with identical functionalities and features.
Data in the app is not restricted by brand. All users see information from all the brands, scoped only by which part of the app they have access to (e.g. Events vs. Vozni park). Within that scope, they can filter the view down to their own brand if they want to. *NEEDS TO BE CONFIRMED WITH CUSTOMER
We show the brands logotype on the event detail page and on documents user signs.
3. Events
3.1 Event management
Event management is done by brand managers.
3.2 Events list
Events list is visible to brand managers, but only for the brands they have access to, and to promotors if they have access to this event.
The list contains the following information:
- Name of the event
- Event brand
- Location
- Date of start
- Date of end
Status: future, active, past.
User can:
- View all events
- Search events by name or location
- Filter events by brand
- Filter events by date
- Add new events
- View detail of event
- Edit existing events (only for non-archived events)
- Delete existing events if no invitees were imported for that event. Modal window for confirmation appears.
- Archive/unarchive event
When the event is finished, brand manager checks if all information on the event is correct and archives it.
Only past events can be archived. Archived events cannot be edited anymore. They need to be unarchived before editing.
Filter to show archived or to not show archived events.
3.3 Adding new event
The following data can be added for each event:
- Brand - selected on a dropdown (mandatory field)
- Name of the event - text field (mandatory field)
- Start day / time - selection on a calendar, time selector (mandatory field)
- End day / time - selection on a calendar, time selector (mandatory field)
- Location - text field (mandatory field)
- Documents for the event - selection from a predefined list
- Activities for the event - selection from a predefined list
- Questionnaires list - name and URL fields (optional field)
- Questionnaire results list - name and URL fields (optional field)
- Notes - text field (optional field)
- Vehicles on the event - selection from a predefined list
- Invitees - event manager manually enters invitees
For some documents, event-specific content should be added.
For some activities, name of the module can be added.
3.4 Event detail
Event detail shows the event setup and links to related event data.
The page shows the following information:
- Event name
- Edit event button
- Brand logotype
- Event info summary: brand, location, start date, start time, end date, end time
- Created by (name of brand manager that created the event)
- Invitees card with count, linking to invitee list
- Vehicles card with count, linking to vehicle list
- Questionnaires (expandable section)
- List of documents (expandable section)
- List of activities (expandable section)
- Notes (expandable section)
Questionnaires section shows questionnaire and questionnaire result names and URLs that were added while creating the event.
List of documents shows documents that were selected while creating the event.
List of activities shows activities that were selected while creating the event.
Event status badge (Active).
3.5 Invitee management
Invitees are added on a specific event by the brand manager.
On the invitee profile for the event, the app tracks which documents the invitee has signed and which activities he has taken.
A general invitee list is also available, where all invitees are consolidated and identified by their email address.
3.6 List of invitees on event
We have invitee list under each event. Invitee list is visible to brand managers and promotors, who can also see that event.
New invitees are added manually by brand manager.
The list contains the following information:
- Name and surname
- Company
- Email
User can:
- View all invitees for the specific event
- Search invitees by name, company or email
- Add new invitee to the event
- View invitee detail
- Edit existing invitee
- Delete invitee from the event. Modal window for confirmation appears.
When the event is archived, invitee list cannot be edited anymore. “Dodaj pozvanika”, “Uredi pozvanika” and “Ukloni pozvanika” button are disabled.
Add filters to list of invitees on the event. User can filter by documents that invitees signed or by activities that invitees took. This is information needed for auditor.
3.7 Adding new invitee
Brand manager adds new invitee on the specific event.
Required data:
- Name and surname - text field (mandatory field)
- Company - text field (mandatory field)
- E-mail - email field (mandatory field), unique identifier for an invitee
- Telephone number - telephone field (mandatory field)
- Partner ID - number field (mandatory field)
3.8 Invitee detail
Invitee detail page is accessible from the invitee list on the event or via QR code invitee receives by email.
It displays all information related to a specific invitee for that specific event.
The page contains the following information:
- Invitee name and surname
- Company, address, email and telephone number shown as a summary line below the name
- Download QR code button
- Documents section
- Activities section
- Activity log section
Documents section shows a list of all documents the invitee needs to sign for this event and documents the invitee already signed.
Per document we show:
- Document name
- Status “Signature required” or “Signed”
- Action “Sign” if not yet signed, or Download if already signed
Activities section shows a list of all activities assigned to this invitee for this event.
For single-timestamp activities:
- Activity name
- “Check-in” button
- Status “Checked in” if completed. The button is no longer shown after completion.
For dual-timestamp activities:
- Activity name
- “Start activity” button when the activity has not yet started
- “End activity” button once the activity is started
Activity log shows a chronological log of all completed activities, sorted in reverse chronological order.
For single-timestamp activities we show start time only.
For test drives we show registration plate, start time, end time, and comment.
3.9 Invitee list general
Brand managers can access a general invitee database and see which events an invitee already attended. Unique ID of the invitee is email.
On the list we show:
- Name and surname
- Company
- E-mail address
Clicking the invitee opens an expandable section with all attended events:
- Name of the event
- Brand of the event
- Location
- Start date
- Status
- Link to detail page of the invitee on the specific event
3.10 Document management
Document management is done by developers.
New consent documents need to be sent to the developers to be implemented into the application.
3.11 Document signing
Document signing is done from a signing modal.
The modal shows prefilled information. Invitee must add additional information required by the document, confirm agreement with terms and conditions, and sign the document.
When invitee signs the document, the app generates a PDF based on the following information:
- Invitee that this document belongs to
- Name of document the invitee signed
- Brand logotype
- Consent given - yes
- Name of the event
- Dynamic content by the invitee, for example name or email
- Manually inputted content by the invitee, for example license permit number
- Invitee signature
- Timestamp of signature
- Document body
A PDF is generated based on this information. The PDF displays dynamic and manually inputted content. Some content can have a remark, such as “Hereinafter referred to as service provider”.
PDF is available for download on invitee detail page. Only brand managers can download the PDF. Promotors should not see the download button.
The app does not use certified signature services for signing the document.
Every new event needs to have a new signature from the invitees. Consents are not valid for future events.
Event-specific content should be included in generated documents when it is defined by the brand manager while creating the event, for example service provider name.
3.12 General list of documents
General list of documents is available in the app. Brand manager can view the list and open a detail of each document. On detail, it should be visible what dynamic and manual content is included in the document and what fixed content comes from the template. The same screen that invitee sees when signing the document can be reused.
3.13 Activity management
Activity management tracks what invitees do on a specific event.
List of activities is editable only by developers. New activities need to be sent to developers to be implemented into the application.
Activities are selected when event is created and then shown on invitee detail.
There are two types of activity tracking:
- Single-timestamp activities
- Dual-timestamp activities
3.14 Activities tracking (single-timestamp activities)
Single-timestamp activities are used for activities where only one timestamp is needed.
Example:
- Lecture attendance
- Check-in to an activity
On invitee detail, promotor clicks “Check-in”.
A modal window opens with current date and time preselected. Promotor can change the date and time if necessary, add comment and click “Spremi”.
After check-in:
- Activity is marked as completed.
- Activity status changes to “Evidentirano”.
- Timestamp is saved
- Button is no longer shown
- Activity cannot be edited after check-in
Activity log records:
- Activity name
- Date and time of check-in
- Comment
3.15 Activities tracking (dual-timestamp activities)
Dual-timestamp activities are used for activities where start and end time are both needed.
Example:
Starting the activity:
- Promotor clicks “Pokreni aktivnost” on Test drive on the invitee profile.
- A modal window opens with registration plate, start date and time, and comment.
- Registration plate is selected from vehicles assigned to the event.
- Start date and time are pre-filled with current date and time and can be changed by the promotor.
- Comment is optional.
- Promotor clicks “Spremi” to confirm.
- Activity on invitee profile is marked as started and the button changes to “Završi aktivnost”.
If the selected vehicle is currently assigned to another invitee, notification appears:
“Ovo vozilo ima aktivnost u tijeku s korisnikom [ime korisnika]. Ako dodijelite ovo vozilo novom pozvaniku, ta aktivnost će automatski biti završena.”
If the promotor confirms, the other invitee’s test drive is automatically marked as finished, end time is set to now, and the new test drive starts for the new invitee.
Ending the activity:
- Promotor clicks “Završi aktivnost” on the invitee profile.
- A modal window opens with registration plate, end date and time, and comment.
- Registration plate is pre-filled and read-only.
- End date and time are pre-filled with current date and time and can be changed by the promotor.
- Comment is optional.
- Promotor clicks “Spremi” to confirm.
- Activity is marked as completed and added to the activity log.
Activity log shows:
- Registration plate
- Start time
- End time
- Comment
An unlimited number of test drives can be tracked per invitee.
Activity information cannot be edited after saving.
3.16 General list of activities
General list of activities is available in the app. Brand manager can view the list and, if possible, open a detail of each activity. The same screen that promotor sees when tracking activities can be reused.
3.17 Vehicle management
Vehicle management on events is done through the general vehicle inventory.
Vehicles on the event are selected from the general vehicle inventory. Brand manager adds vehicles to the event by selecting them from the list.
Vehicle list on event displays all vehicles assigned to the specific event.
The list contains the following information per vehicle:
- Brand
- Model
- Registration plate
- Chassis number
- Color
Each vehicle row can be expanded to show driver history log for that vehicle. Driver history log lists all invitees who drove that vehicle during the event, with start time, end time and comment for each entry.
User can:
- View all vehicles on the event
- Edit the vehicles list
When adding vehicles to the event, brand manager is taken to a separate page showing the full vehicle inventory. Vehicles from both Događaji and Vozni park sections are shown. Archived vehicles are not shown.
The add vehicles page contains the same columns as event vehicle list, with an additional “Status za vrijeme događaja” column showing the status of each vehicle for the period of the event.
Only vehicles with status “Aktivno” can be selected. Vehicles with status “Zauzeto” or “Neispravno” are visible in the list but cannot be selected.
User can:
- Search vehicles by brand, model or registration plate
- Select one or multiple vehicles by checking the checkbox next to each vehicle
- Save the selection by clicking “Spremi”. The number of selected vehicles is shown on the button, for example “Spremi 10”.
Vehicles added to an event are also shown on Vozni park calendar as event usage.
When the event is archived, vehicles list cannot be edited anymore and “Dodaj vozila” button is disabled.
If there is an easier implementation for selecting only available vehicles during the event period, the add vehicles flow can be adjusted.
3.18 QR Codes
QR codes are generated by the app
Each invitee has a unique QR code for each event
QR code is accessible on the invitee detail page in the app
When the QR code is scanned, the invitee profile for the specific event is shown
User must be signed in to see the invitee profile
After the event is done, the QR codes can stop working
3.19 Mailings
Mailings are used to send event-related information to invitees.
Three days before the event, automatic mailing is sent to all invitees on the event.
The mailing contains QR code of each specific invitee.
If invitee is entered after this timeframe, they receive the email right after they are added to the event.
Mailings are specific per brand. Brand logotype is shown in the email.
Mailings are part of the change request scope.
3.20 Documents
This section describes documents that were in use before using the app and how they will be managed in the app.
Documents are selected on event creation from a predefined list.
Some documents need event-specific content added by the brand manager.
Documents that require signatures are signed by invitees during the event. After signing, the app generates a PDF document with event, invitee, brand and signature information.
Documents described in this section:
- Disclaimer
- Izjava o suglasnosti
- Potpisna lista
- Popis vozača - potpisna lista
- Preuzimanje vozila za školovanje
3.21 Disclaimer
There are several versions of Disclaimer document.
All different versions will be prepared. Each version will be available as a separate document that brand manager can add to event.
This document must be signed by the invitee, following the same document signing logic used for other documents.
3.22 Izjava o suglasnosti
“Izjava o suglasnosti” is one of the predefined consent documents that can be selected for an event.
The document shows event-specific content, dynamic content, manually inputted content and standard template fields.
Event-specific content is entered once by the brand manager when creating the event and applies to all invitees signing this document for that event:
- Service provider name (Naziv proizvođača / rent-a-car društva / leasing društva) - text field
Service provider name is printed at the top of the document with the remark: u daljnjem tekstu: “ponudnik storitev”.
Dynamic content is pulled automatically per invitee/event:
- Event start date
- Event end date
- Event name
- Event location
- Invitee name and surname
Event name is printed with the remark: u daljnjem tekstu: “događaj”.
Invitee name and surname is printed with the remark: u daljnjem tekstu: “sudionik”.
Manually inputted content by the invitee at the event:
- Invitee’s residence/address (prebivalište)
Standard fields:
- Document body - fixed content from the template
- Timestamp of signature
- Invitee’s signature
All event-specific and dynamic fields appear together at the top of the document, before the fixed template text begins.
3.23 Potpisna lista
“Potpisna lista” is managed in the application under activities - registration.
This document is not shown as a document the invitees need to sign.
3.24 Popis vozača - potpisna lista
“Popis vozača - potpisna lista” is managed in the application under activities - test drives.
This document is not shown as a document the invitees need to sign.
3.25 Preuzimanje vozila za školovanje
“Preuzimanje vozila za školovanje” is managed with pickup / return records in the Vozni park part of the app.
This exact document will not exist as a separate document in the app.
4. Fleet
4.1 Calendar
The calendar shows the booking status of all vehicles from the general inventory (Inventar / Popis vozila), regardless of which area they’re designated for — both Vozni park vehicles and Događaji (Events) vehicles appear on the same calendar.
Vehicles are grouped into two sections (this is defined when user adds a new vehicle to the general vehicle inventory):
Vozni park – further grouped by purpose (Namen): IT, Postprodaja, Novinarji, Veliki kupci, etc., with a vehicle count shown per group. *NICE TO HAVE, can be left out
Događaji
For each vehicle, the calendar shows:
Brand, model and registration plate as the row label.
A timeline with a colored bar (blue color) for each reservation in Vozni park, labeled with the renter or customer name (e.g. “Jutranji list,” “Ana Horvat”) spanning the booked dates.
A timeline with a colored bar (green color) for each period the vehicle is added to an event.
Periods where the vehicle is marked “Neispravno” (red color) on its inventory page are also shown as a blocked period directly on the timeline – vehicle set as “Neispravno” is shown as Neispravno for all the future dates.
We do not show vehicles that were picked-up/returned by the pick-up/return record on the calendar. If the wish is to have accurate calendar, the Manager of vozni park should manually change the reservation dates (if there was a change from reservation to actual pick-up/return).
Past reservations can also be edited.
If user wants to add a car as “out of order” for a certain period, they need to make a new reservation for that period and write “Odjava”/”Out of order” or similar as the customer name (shown in blue color).
Hovering over a vehicle shows a tooltip with additional vehicle info: chassis number and color.
Clicking an existing reservation bar opens a menu with options to edit the reservation, open its handover protocol (“zapisnik o preuzimanju”), or remove the reservation.
A filter at the top of the page allows filtering the calendar view by brand. *NICE TO HAVE FUNCTIONALITY
4.2 Managing reservations
New reservation modal can be opened in two ways:
- The “+ Nova rezervacija” button at the top of the Kalendar zauzetosti page opens with vehicle and dates empty, to be filled in manually.
- Clicking an empty cell on the calendar pre-fills vehicle from the row and start date from the day clicked.
Form fields:
- Vehicle (Vozilo) - searchable dropdown, mandatory
- Period (Od / Do) - date fields, mandatory
- Name / company (Ime i prezime / tvrtka) - text field, mandatory
- Contact info (Email / Telefon) - text field, optional
Vehicle dropdown shows brand, model and registration plate together, for example “Seat Leon FR ST-789-CC”. Archived vehicles are not shown.
Period defines the reservation period.
If the vehicle is not available in the selected period, we show error message “Vozilo nije dostupno u odabranom razdoblju.”
Clicking “Spremi rezervaciju” saves the reservation, which then appears as a new bar on the calendar for that vehicle and date range.
User can edit existing reservations. Same modal window as for new reservation opens, with the title “Rezervacija” and pre-filled fields.
User can delete reservation. Modal window for confirmation appears.
4.3 List of pickup/return forms
This page lists all vehicle pickup/return protocols tied to Vozni park reservations.
Table columns:
- Vehicle (Vozilo) - vehicle brand, model and registration plate
- User (Korisnik) - name and company of the person
- Period (Razdoblje) - reservation period (Od - Do)
- Status (Status) - Draft / Preuzeto / Vraćeno
- Pickup record (Zapisnik o preuzimanju) - action button or PDF download, depending on status
- Return record (Zapisnik o povratku) - action button or PDF download, depending on status
Statuses and corresponding actions:
- Draft - pickup protocol started but not finalized. Pickup record column shows “Otvori zapisnik o preuzimanju” to continue/complete it. Return record column is empty, since the vehicle has not been picked up yet.
- Preuzeto - pickup protocol completed. Pickup record becomes “Download PDF”. Return record column shows “Otvori zapisnik o vraćanju”.
- Vraćeno - both protocols completed. Both columns show “Download PDF” only.
User can:
- Start new pickup record (“Novi zapisnik o preuzimanju”)
- Search by vehicle or user/customer
- Delete record that has draft status. Modal window for confirmation appears.
- Edit “Zapisnik o preuzimanju” of a draft record
- Open “Zapisnik o vraćanju”
- Download PDF records
Preuzeto and Vraćeno records cannot be deleted.
4.4 Pickup form
Pickup form is a two-step form.
It is opened either from a specific reservation in Kalendar zauzetosti, or via “Novi zapisnik o preuzimanju” on the Zapisnici list.
Step 1
Podaci o vozilu:
- Registration plate (Registarska oznaka) - searchable dropdown, mandatory. Prefilled if opened from a specific reservation, otherwise selected manually.
- Brand (Marka) - read-only, auto-filled based on the selected registration plate
- Type (Tip) - read-only, auto-filled based on the selected registration plate
- Chassis number (Broj šasije) - read-only, auto-filled based on the selected registration plate
- Color (Boja) - read-only, auto-filled based on the selected registration plate
- Insurance notice - static text that theft coverage applies only in RH and EU; travel abroad requires the vehicle owner’s written approval
Oprema vozila:
- Vatrogasni aparat - prefilled, disabled field
- Komplet obvezne opreme - prefilled, disabled field
- Add field - adds an empty field for entering additional equipment
Podaci o korisniku:
- Company
- Company address
- Name and surname
- User’s address
- Email
- Phone
- Driver’s license number
- Category
- Issued by
- Valid until
Rok korištenja:
- From / To - date fields, mandatory. Prefilled if opened from a specific reservation.
- Vehicle must be returned by - time, mandatory
- Return location - text, mandatory
- Special arrangement - text, optional
- Working hours notice - static text showing office hours (Mon-Thu 8:30-16:00, Fri 8:30-13:30)
Stanje vozila pri preuzimanju:
- Mileage - number, mandatory
- Pickup date - date, mandatory, prefilled from the “Od” date in Rok korištenja
- Pickup time - time, mandatory
- Battery charge level - %, optional
- Fuel amount - text, optional
- Damage noted at handover - textarea, optional
- Photos - file upload, optional
Bottom bar:
- Save draft - saves as Draft even if mandatory fields are not complete
- Continue to signatures - proceeds to Step 2
Step 2
All Step 1 data is shown read-only for review.
User must confirm terms and sign:
- Terms checkbox
- User’s signature at pickup
- Porsche Croatia’s signature at pickup
- Personal data protection notice
Create protocol finalizes the record:
- Sends a copy of the completed protocol and general terms to the email entered under user data. If no email was entered on Step 1, copy is not sent.
- PDF is available for download on Zapisnici list
- Record status is set to Preuzeto
4.5 Return form
Return form is a two-step form.
It is opened via “Otvori zapisnik o vraćanju” from a Preuzeto-status record on the Zapisnici list.
Step 1
Data carried over from Zapisnik o preuzimanju is shown read-only:
- Podaci o vozilu
- Oprema vozila
- Podaci o korisniku
- Rok korištenja
- Stanje vozila pri preuzimanju
New editable section is Stanje vozila pri vraćanju:
- Mileage - number, mandatory
- Return date - date, mandatory
- Return time - time, mandatory
- Driven - days + hours, mandatory
- Battery charge level - %, optional
- Fuel amount - text, optional
- Damage noted at return - textarea, optional
- Photos - file upload, optional
Bottom bar:
- Save draft - saves progress. Unlike pickup protocol, this does not change the record status. It stays Preuzeto and can be reopened later.
- Continue to signatures - proceeds to Step 2
Step 2
All data is shown read-only for review, including new Stanje vozila pri vraćanju section.
User must confirm terms and sign:
- Terms checkbox
- User’s signature at return
- Porsche Croatia’s signature at return
- Personal data protection notice
Create protocol finalizes the record:
- Sends a copy of the completed protocol to the email entered under user data. If no email was entered on pickup Step 1, copy is not sent.
- PDF is available for download on Zapisnici list
- Record status is set to Vraćeno
5. Vehicle Inventory
5.1 Vehicle Inventory List
The general vehicle inventory is the master list of all vehicles available across the application (accessible via “Inventar” in the main navigation).
On events vehicles are selected from this list. On Vozni park we show all the vehicles from this list.
The list contains the following information per vehicle:
Brand
Type/Model
Registration plate
Chassis number
Color
Status (Aktivno / Zauzeto / Neispravno)
Status Aktivno / Neispravno is manually chosen from the edit vehicle page. Status Zauzeto is automatically set if the vehicle is used on an event or reserved/picked-up in Vozni park.
User can:
View all vehicles in the inventory (paginated list)
Search vehicles
Filter vehicles by brand
Filter to show arhived or to not show arhchived vehicles
Add a new vehicle (“Unesi vozilo”)
Edit an existing vehicle (“Uredi vozilo”)
Delete a vehicle from the inventory (“Ukloni vozilo”)
Arhive a vehicle from the inventory (“Arhiviraj vozilo”)
Deleting and archiving a vehicle
If the vehicle has never been added to an event, it can be permanently deleted (“Ukloni vozilo”).
If the vehicle has already been added to an event, it can only be archived (“Arhiviraj vozilo”) – permanent deletion is not available, since its booking history needs to be kept.
The default view on the vehicle inventory list excludes archived vehicles. A filter (“Prikaži arhivirana vozila”) lets the user include them.
Archived vehicles are not shown anywhere else in the app where vehicles can be selected – e.g. when adding vehicles to an event, or when creating a Vozni park reservation.
If the vehicle is “In use” it cannot be deleted or arhiced – this option is not available.
If the vehicle has active reservations for event or vozni park it cannot be deleted or arhived – we show a notification in a modal window.
5.2 Add new vehicle
Clicking “Unesi vozilo” on the general vehicle inventory page opens a form where the following data is entered:
- Vehicle brand (Marka) - dropdown, mandatory. Register is preset and cannot be edited in the app.
- Type (Tip) - free text field, mandatory, for example “Golf 8 GTI”
- Registration plate (Registarska oznaka) - text field, mandatory
- Chassis number (Broj šasije) - text field, mandatory
- Color (Boja) - text field, mandatory
- Usage area (Vrsta korištenja) - radio selection, mandatory
- Purpose (Namen) - dropdown, mandatory, shown only when “Vozni park” is selected
- Status (Status) - dropdown, mandatory
Usage area options:
Usage area determines where the vehicle is shown on the calendar in Vozni park.
Purpose options are predefined and entered by developers. Selected purpose determines how the vehicle is displayed on the Vozni park calendar.
Status options manually selectable by user:
Status “Zauzeto” is never manually selected. It is applied automatically by the system whenever the vehicle is currently assigned within either Events or Vozni park.
If user selects “Neispravno”, we show notification: “Vozilo neće biti dostupno za rezervacije dok se status ručno ne promijeni nazad u ‘Aktivno’.”
Vehicle cannot be set as “Neispravno” if it has active reservations currently or in the future. Brand manager should remove the vehicle from events / remove reservations, then the vehicle can be set as “Neispravno”.
Saving the form adds the vehicle to the general inventory. Vehicle is also shown on the calendar in Vozni park, and on the selection list of vehicles when an event is edited.
5.3 Edit vehicle
“Uredi vozilo” opens the same form as “Unesi vozilo”, pre-filled with the vehicle’s current data.
Below the form, edit page shows vehicle bookings overview: a table of this vehicle’s events and reservations across the whole application (Events and Vozni park).
Past and future events and reservations are shown. Future entries are shown at the top.
Vehicle bookings overview shows:
- Type (Vrsta)
- Name (Naziv događaja / korisnika)
- Period (Razdoblje)
Type options:
- Događaj - vehicle is or was added to an event
- Vozni park - rezervacija - vehicle is or was reserved on Vozni park
- Vozni park - aktivni najam - vehicle is or was picked-up from Vozni park
Name options:
- Naziv događaja is shown in case of event
- Naziv korisnika is shown in case of reservation or pickup from Vozni park
Entries can come from either Vozni park or Events.