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.
Parts of application are made responsive, so they are accessible on the mobile phone.
Application works online. However, part of the app - events list, invitees on the event and starting and ending the activities (test drives) should be available and work also offline. The promotor should be able to start and finish the test drive for a specific invitee, information should be saved, even if the app is offline. If multiple users are doing this, the activity would be saved multiple times.
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.
- Change 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 brand logotype on the event detail page, PDF generated documents, and in the email invitees receive.
2.12 Milestones
Establish the shared project foundation: application architecture, core data model, environment/config handling, CI/CD, base API and web app structure, shared layout/navigation, and baseline error handling and browser support.
Scope:
Estimate: 8-12 man-days
2. Authentication, authorization, and user management
Integrate external authentication, implement sign in/out and password flows, protect routes and APIs, define role-based access, and build user CRUD with role assignment for the user-manager role.
Scope:
Estimate: 8-12 man-days
3. Vehicle inventory
Deliver vehicle CRUD, search/filter/pagination, archive and delete rules, vehicle statuses, vehicle detail/edit screens, and booking history visibility needed by both Events and Fleet.
Scope:
Estimate: 10-15 man-days
4. Fleet reservations and availability calendar
Build the fleet calendar, grouped vehicle availability view, reservation CRUD, conflict detection, prefilled booking flows from the calendar, and reservation validations tied to vehicle availability.
Scope:
Estimate: 10-15 man-days
5. Fleet pickup and return protocols
Implement the two-step pickup and return forms, draft persistence, signatures, attachments, PDF generation, protocol list/downloads, email sending, and protocol status transitions from draft to pickup to return.
Scope:
Estimate: 15-20 man-days
6. Events core management
Deliver event list, create/edit/archive event flows, event detail, vehicle assignment to events, event metadata and questionnaires, and per-event invitee management including the main list/detail management surfaces.
Scope:
Estimate: 15-20 man-days
7. Events operational workflows
Implement QR-based invitee lookup, document signing, signed PDF availability with role restrictions, single- and dual-timestamp activity tracking, activity logs, and vehicle reassignment logic during overlapping test-drive activity flows.
Scope:
Estimate: 15-20 man-days
8. Cross-domain integrations, offline support, and hardening
Finish automatic event mailings, general invitee/document/activity lists where included in release scope, offline support for the documented event flows, sync/reconnect behavior, permissions hardening, QA, and production-readiness work.
Scope:
Estimate: 15-20 man-days
3. Events
Figma URL: https://www.figma.com/design/NWu7ssnTfTJHFNDy13CnUt/Aplikacija-Vento---UI?node-id=26-1766&t=H7jz4hMIphTvr0OG-1
3.1 Event management
Event management is done by brand managers.
3.2 Events list
Events list is visible to brand managers and to promotors.
The list contains the following information:
- Name of the event
- Event brand
- Location
- Date of start
- Date of end
Status: future, active, past. Status is time-based.
User can:
- View all events
- Search events by name or location
- Filter events by brand
- Filter events by date
- Filter to show archived or not archived events
- 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.
Archived events cannot be edited anymore. They need to be unarchived before editing.
The default view excludes archived events. Vehicles added to an archived event are considered free vehicles, so they can be reserved or added to another event.
A filter “Prikaži arhivirane događaje” lets the user include 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.
Notes section shows notes that were added 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 using the same form as Add new 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” buttons are disabled.
We add filters to list of invitees on the event. User can filter by documents that invitees sign. On the list we show only those invitees that signed that document. User can also filter by activities that user took. On the list we show only those invitees that took a specific activity. 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)
- Invitee’s residence/address - text field (optional field)
- E-mail - email field (mandatory field), unique identifier for an invitee
- Telephone number - telephone field (mandatory field)
- Partner ID - number field (optional field)
A notification about emailing the invitee is added. This is connected to the mailings change request.
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, telephone number and partner ID shown as a summary line below the name
- Show QR code button. It opens a modal with QR code, event name and invitee name below the code.
- 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
Generated PDF content is defined in Document signing.
Activities section shows a list of all activities assigned to this invitee for this event. All activities are the same for all invitees on one 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. The most recent activity is shown at the top.
For single-timestamp activities we show activity name and start time.
For test drives we show activity name, 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. This request needs to be included.
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 page.
The page shows prefilled information. Invitee must add additional information to the document, checkmark that they agree 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 checkbox info
- Name of the event
- Time period of the event
- Location of the event
- Event-specific content defined by the brand manager when creating the event, for example service provider name
- 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.
For signing the document, we do not use any certified services for signature.
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.
List of documents in the first phase of the app:
- Disclaimer
- Izjava o suglasnosti
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 require only one check-in action to be recorded.
Example:
When a promotor clicks the “Check-in” button on the invitee profile, a page for tracking activity opens with current date and time preselected. Promotor can change the date and time, add comment and click “Spremi”.
Once completed, the activity status changes to “Evidentirano” and the action button disappears. The activity cannot be edited after check-in.
The activity is marked as completed and timestamp is saved.
If activity has a custom name added during event setup, the custom name is shown on the list of activities.
Activity log:
The following information is recorded and saved on the invitee profile for each single timestamp activity (Popis aktivnosti):
- Activity name, with custom name if it is added
- Date and time of check-in
- Comment
3.15 Activities tracking (dual-timestamp activities)
Dual timestamp activities require both a start and an end action to be recorded. Test drive is the primary example of this activity type.
Example:
Starting the activity:
- Promotor clicks “Pokreni aktivnost” on Test drive on the invitee profile.
- A page for tracking activity 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 page for tracking activity 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.
Invitee can drive the same car more than once.
Activity log:
All completed test drives are listed in the activity log (Popis aktivnosti) on the invitee profile.
Each entry shows:
- Activity name
- Registration plate
- Start date and time
- End date and 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.
List of activities in the first phase of the app:
- Test drive (Testna vožnja) - dual-timestamp activity
- Registration (Registracija) - single-timestamp activity
- Modul 1 + custom field for module name - single-timestamp activity
- Modul 2 + custom field for module name - single-timestamp activity
When setting up the event, brand manager can choose from this list of activities to be added to the event.
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 the driver history log for that vehicle - a list of 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. All vehicles are shown, from Događaji and Vozni park sections. Archived vehicles are not shown.
The list contains the same columns as above, with an additional “Status za vrijeme događaja” column showing the status of each vehicle for the period of the event, for example “Zauzeto” if the vehicle is already taken for another 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 way to solve selecting vehicles for an event, the 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 this document. All different versions will be prepared. Each one will be available as a separate document that brand manager can add to event.
This document will have to be signed by the invitee to follow the same document signing logic that is used to manage documents.
When invitee is signing the document, we display:
- Name of document the invitee is signing
- Time period of the event (disabled field)
- Name of the event (disabled field)
- Location of the event (disabled field)
- Name of the invitee (disabled field)
- Document body
- Consent checkbox
On the generated PDF document, we display:
- Name of document the invitee is signing
- Time period of the event
- Name of the event
- Location of the event
- Name of the invitee
- Document body
- Timestamp of signature
- Invitee signature
3.22 Izjava o suglasnosti
When invitee is signing the document, we display:
- Name of document the invitee is signing - “Izjava o suglasnosti”
- Time period of the event (disabled field)
- Name of the event (disabled field)
- Location of the event (disabled field)
- Name of the invitee (disabled field)
- Invitee’s residence/address - text field, prefilled from invitee detail page, can be edited
- Document body
- Consent checkbox
On the generated PDF document, we display:
- Name of document the invitee is signing
- Time period of the event
- Name of the event, printed with the remark: u daljnjem tekstu: “događaj”
- Location of the event
- Name of the invitee, printed with the remark: u daljnjem tekstu: “sudionik”
- Service provider name (Naziv proizvođača / rent-a-car društva / leasing društva) - text field; printed at the top of the document with the remark: u daljnjem tekstu: “ponudnik storitev”
- Invitee’s residence/address (prebivalište)
- Document body
- Timestamp of signature
- Invitee signature
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
Figma URL: https://www.figma.com/design/NWu7ssnTfTJHFNDy13CnUt/Aplikacija-Vento---UI?node-id=2027-6740&t=H7jz4hMIphTvr0OG-1
4.1 Calendar
Vozni park is a separate module for managing the company’s shared vehicle fleet: vehicles used for rentals, journalist test cars, and other non-Events purposes.
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 blue bar for each reservation in Vozni park.
- Each reservation bar is labeled with company name, customer name, or both, for example “Jutranji list”, “Ana Horvat”, or “Jutranji list - Ana Horvat”.
- The reservation bar spans across the booked dates.
- A timeline with a colored green bar for each period the vehicle is added to an event, labeled with the event name.
- Periods where the vehicle is marked “Neispravno” (grey 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 future dates.
Calendar does not display the dates from the pickup/return records. The calendar only shows dates and status based on the reservations made. If they wish to have an accurate calendar, the Manager of Vozni park should manually change the reservation dates if there was a change from the reservation to the actual pickup/return.
Times of reservation and times of pickup/return records are not connected and can differ.
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. This is shown in blue.
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.
4.2 Managing reservations
New reservation page 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. Shows brand, model and registration plate together, for example “Seat Leon FR ST-789-CC”. Archived vehicles are not shown.
- Period (Od / Do) - date fields, mandatory. Defines the reservation period.
- Company name (Tvrtka) - text field, optional. Company the vehicle is reserved for.
- Name and surname (Ime i prezime) - text field, optional. Name of the person the vehicle is reserved for.
- Contact info (Email / Telefon) - text field, optional.
At least one of the fields Company name or Name and surname must be filled in. If both fields are left empty, we show error message: “Barem jedno od polja Tvrtka ili Ime i prezime mora biti ispunjeno.”
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 page 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:
- Two prefilled, disabled fields shown by default: Vatrogasni aparat and Komplet obvezne opreme
- Add field - adds an empty “Unesite naziv opreme” field for entering additional equipment
Podaci o korisniku:
- Company (Tvrtka) - text, optional, prefilled if opened from a specific reservation
- Company address (Adresa tvrtke) - text, optional
- Name and surname (Ime i prezime) - text, optional, prefilled if opened from a specific reservation
- User’s address (Adresa korisnika) - text, optional
- Email (E-mail) - text, optional, prefilled if opened from a specific reservation
- Phone (Telefon) - text, optional
- Driver’s license number (Broj vozačke dozvole) - text, optional
- Category (Kat.) - text, optional
- Issued by (Izdana od PU) - text, optional
- Valid until (Vrijedi do) - date, optional
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, optional
- 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
- File upload (Odaberi datoteke) - attach photos of the vehicle, optional
Bottom bar:
- Save draft - saves as Draft even if mandatory fields are not complete; can be reopened and edited later
- 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 - confirms the user has read and accepts the general terms printed on the back, which become part of the protocol
- User’s signature at pickup - signature pad, mandatory
- Porsche Croatia’s signature at pickup - signature pad, mandatory
- Personal data protection notice - static text on how personal data is processed
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
Carried over from Zapisnik o preuzimanju, shown read-only: Podaci o vozilu, Oprema vozila, Podaci o korisniku, Rok korištenja, Stanje vozila pri preuzimanju (all fields/values as finalized at pickup).
New editable section is Stanje vozila pri vraćanju:
- Mileage - number, mandatory, prefilled from mileage from the pickup form
- Return date - date, mandatory
- Return time - time, mandatory
- Driven - days + hours, mandatory, calculated automatically based on pickup date/time and return date/time
- Battery charge level - %, optional
- Fuel amount - text, optional
- Damage noted at return - textarea, optional
- File upload (Odaberi datoteke) - attach photos of vehicle, 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 - confirms the user has read and accepts the general terms printed on the back, which become part of the protocol
- User’s signature at return - signature pad, mandatory
- Porsche Croatia’s signature at return - signature pad, mandatory
- Personal data protection notice - static text on what personal data is processed and why
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
Figma URL: https://www.figma.com/design/NWu7ssnTfTJHFNDy13CnUt/Aplikacija-Vento---UI?node-id=2065-23407&t=H7jz4hMIphTvr0OG-1
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. It does not determine which vehicles can be used for which purpose. Vehicles from Vozni park can also be used for events.
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 in reverse order: latest events are shown at the bottom, and 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.
5.4 Vehicle detail
Vehicle detail shows the same information as the Edit vehicle page.
User can open Edit vehicle from this page.