Back to selected work

Bring driving-school operations and records together

Independent product development · In development

Veisteg is a driving-school operations platform for office staff, instructors and students or guardians, joining school workflows with training and financial records.

Where it stands

Demonstrated locally
School administration and the student web client have been run locally with demonstration data.
Still in development
External services use simulated or unconfigured providers. Mobile apps have not been tested on physical devices, and hosted deployment has not been demonstrated.
Explore the recorded screens

A platform for the whole school

A driving school needs the office, instructors and learners to work from consistent records. Veisteg brings scheduling, vehicles and courses together with student records, training progress, messages and financial administration.

Connecting office, instructors and students

I work through the handovers: what the instructor records, what the student should see and what the office must follow up. My experience in operations and finance helps me define that workflow. I use AI-assisted development to build the screens and rules around it.

Walk through the prototype

Explore separate school and student views. The lesson-to-finance transition was checked separately from these captures.

Recorded development screens · demonstration data

  1. 1Plan the school day
  2. 2View student activities
  3. 3Open school finance

Plan the school day

Office staff see lessons and resources together in the school calendar.

Veisteg school calendar with scheduled lessons and assigned resources.
The school overview brings lessons and resources together for office staff.Open full-size screenshot

View student activities

The student browser build shows activities from the local demo service, with simulated sign-in.

Student activities list showing a scheduled lesson in the browser build of the app.
Student app in the browser, using a simulated sign-in code and lesson data from the local demo service.Open full-size screenshot

Open school finance

Financial administration belongs to Veisteg’s school workspace. The SUMVERK label is reused branding.

Veisteg school finance workspace with package and accounting records.
Finance is part of Veisteg's own school administration platform; the SUMVERK label does not indicate a shared backend with the separate Sumverk product.Open full-size screenshot

Screenshots show the development build using demonstration data.

Applications and roles

School office web

Scheduling, student and staff records, finance, learning and administration

Selected school-office views tested locally

Instructor app

Flutter app project for Android and iOS

Flutter code for Android/iOS; instructor app not run

Student and guardian app

One Flutter app for Android, iOS and a web scaffold

Browser version tested locally; phone app not tested

Role-scoped access

Office, instructor, student and linked guardian experiences

Role-specific access rules in source

How the parts fit together

The wider platform also contains learning and theory, packages and invoices, ledger and reconciliation, staff and expense administration, website and enquiry handling, reporting and TABS CSV migration. Different roles receive different workspaces. The SUMVERK-labelled finance area is Veisteg’s own implementation, separate from the standalone accounting product.

How it runs

Application and deployment status
ModeCurrent status
Web adminSchool records are accessed through the school service; selected pages ran locally.
Student app in browserBrowser build connected to the local school service with sample data
Native appsAndroid/iOS project targets exist; no device or store release verified
Selected reconnect handlingSome instructor actions can queue and retry; this is not a complete offline-app claim
Local server and cloud hostingA shared Go/PostgreSQL service was run locally. Hosted configuration exists in source; an operating cloud service has not been verified.
Desktop accessThe admin runs in a browser. Local launchers start services and open it; there is no separate native desktop shell in this repository.

One lesson. Connected records.

Follow the responsibility from scheduling to training and the applicable financial rule.

One lesson across rolesSchool schedules a lesson, the learner views it, and the instructor teaches. Only a completed lesson goes to authorised attestation and record update. An eligible prepaid lesson uses its existing package; otherwise the configured billing path applies. Unresolved or cancelled lessons leave this completion path.SCHOOLLEARNERINSTRUCTORRECORDS & FINANCEYesNoYesNoSchedule lessonSchedule lessonView bookingView bookingTeach lessonTeach lessonCompleted?Completed?Attest with authorityAttest withauthorityResolve statusResolve statusUpdate training recordUpdate trainingrecordPackage eligible?Packageeligible?Use package Record valueUse packageRecord valueConfigured billing pathConfiguredbilling path
One lesson across rolesSchool schedules a lesson, the learner views it, and the instructor teaches. Only a completed lesson goes to authorised attestation and record update. An eligible prepaid lesson uses its existing package; otherwise the configured billing path applies. Unresolved or cancelled lessons leave this completion path.NoYesYesNoSchedule lessonSchoolSchedule lessonView bookingLearnerView bookingTeach lessonInstructorTeach lessonCompleted?Completed?Resolve statusSchool / instructorResolve statusAttest with authorityInstructorAttest withauthorityUpdate training recordSchool recordsUpdate trainingrecordPackage eligible?Packageeligible?Use package Record valueUse packageRecord valueConfigured billing pathConfiguredbilling path

A qualifying lesson uses an existing prepaid entitlement. Completion is not automatically a new invoice or cash payment.

Source-supported conditional path; screenshots show separate views. Repeat-use protection and cancellation/dispute handling remain to be verified.

Conditions and text walkthrough

From a lesson to its training and financial records

The school, learner and instructor have different responsibilities. Completing a lesson updates its training record and leads to evaluation of the applicable financial rule; it is not automatically a new cash payment.

  1. School

    Schedule the lesson.

  2. Learner

    View the scheduled lesson.

  3. Learner and instructor

    Take part in the lesson.

  4. Authorised instructor

    Record completion and attest to the training.

  5. Training records

    Update the learner’s training record.

  6. Financial workflow

    Evaluate the configured package or non-package rule.

Eligible lesson with an available prepaid package

Apply package usage and create the financial record required by the configured rule. The required control is to use that entitlement once for the same completion, including retries. This does not itself mean raising a new invoice or receiving cash.

Non-package lesson

Follow the configured non-package path. Do not assume that every completion creates a new invoice.

Cancelled, no-show, unconfirmed or disputed

Do not treat the lesson as completed in this example. Cancellation, absence and unresolved lessons need their own handling under the school’s rules.

Source and focused checks support the conditional package path. The screenshots show separate administration and learner views, not one connected journey. Protection against repeated package use, and the handling of cancellations or disputes, remain to be verified.

A qualifying lesson can use an existing prepaid entitlement instead of charging the learner again.

Further product and technical detail

A completed lesson can update learning and finance together

The source connects lesson completion with training and finance; focused tests cover conditional package handling. The student web example separately shows sign-in and upcoming activities. These are different pieces of evidence, not one demonstrated cross-app journey.

Technical detail

Native phone/device and hosted deployment were not exercised. Selected commands have reconnect queues, rather than a complete offline mode. TABS support is CSV upload, preview and reconciliation; no live TABS API was demonstrated. The lesson-to-accounting transition was checked separately from the screenshots.

Discuss a role

For a conversation about a relevant role, contact me by email or LinkedIn.