EV Charging Platform for a Slovak Charge Point Operator
Designed and built a clickable operator console for a Bratislava charge point operator running about 1,200 public chargers in Slovakia and Czechia: live network health, every charger and its OCPP state, audited remote commands, and session detail with signed meter values, the full price calculation and refunds within each user's limit.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, chargers, charger detail, sessions and session detail. Every one of the 22 demo chargers and 30 sessions opens its own detail page.
Remote start and stop, unlock, soft and hard reset, change availability, trigger status and get diagnostics. Each needs a reason, is logged with its result, and times out after 60 s on a disconnected charger.
A refund is checked against the amount captured and the user's own limit (30.00 EUR or 750.00 CZK, client policy). Anything above it goes to a support lead for approval.
14 sites in Slovakia and Czechia, 4 hardware vendors on OCPP 1.6J and 2.0.1, 30 sessions across 5 payment channels, 6 tariffs in EUR and CZK, 6 field tickets and 3 roaming partners.
Rozsutec grew by buying two smaller networks. Chargers from four makers reported to two back ends, prices lived in a spreadsheet and were pushed by hand, and the old app showed chargers as available after they had been offline for days. Drivers saw the price only on their bank statement, roaming drivers were refused where tariffs had not been shared, a broken motorway charger could stay broken for a week, and support refunds left no record of why.
Stožiar is one platform for drivers and operators: a driver app and a no-account web payment page that show the full price before every start, and an operator console that runs chargers over OCPP, roaming over OCPI, tariffs, sessions, field service, refunds and the AFIR data feed. The build is the operator console's core: network health, chargers, remote commands and session detail.
A charge point operator answers to drivers, roaming partners, site hosts and EU law at once. Rozsutec had to do it across two countries, two currencies, four hardware vendors and two OCPP versions.
AFIR requires ad hoc charging without an app or contract, and a price shown before the session starts, broken down into its per kWh, per minute, per session and other components. Prices had been set in a spreadsheet, so what the driver saw and what they paid could differ.
Chargers report over OCPP 1.6J or 2.0.1 with their own vendor error codes. A charger that stops sending heartbeats has to become unknown rather than stay available, and a fault has to reach a field service ticket instead of waiting in a complaint inbox.
Each session has to be priced from the tariff version that applied at its start, with VAT for the country of the charger, a pre-authorisation hold captured for the final amount, and signed meter values (OCMF) where the charger provides them so a reading can be verified.
Partner drivers arrive through OCPI 2.2.1 with their own tokens and tariffs, and AFIR expects location, availability and price data published free of charge to each national access point. Charging history shows where a person was and when, so GDPR applies.
Mapped 13 roles from drivers to grid engineers and 48 screens: 15 in the driver app, 4 for ad hoc web payment and 29 in the operator console. Defined the data model for sites, chargers, EVSEs, versioned tariffs, sessions, payments, refunds, roaming partners, CDRs, tickets and remote commands, and wrote down the rules the design follows: AFIR, OCPP, OCPI and eMI3 ids, MID metering, GDPR with the Slovak and Czech data protection acts, PCI DSS, PSD2 and the European Accessibility Act.
Built the operator console's 5 key screens on a production dashboard kit: the dashboard with uptime against the 98% client target, KPIs per country, sessions per hour and a needs attention list; the chargers table with status tabs and filters; charger detail with remote commands, status history with vendor error codes explained, configuration keys and the OCPP message log; and sessions with session detail, meter values chart, signed meter values and refunds. All actions run on local state.
The OCPP back end for ABB, Alpitronic, Kempower and Wallbox chargers, OCPI roaming direct or through a hub such as Hubject or Gireve, Adyen or Stripe payments with pre-authorisation, Nayax or Payter card terminals, the national access point data feed, and accounting exports. Staff roles with country scope and refund limits, an append-only audit log, the driver app, the ad hoc web payment pages and the remaining console screens for tariffs, roaming, tickets, uptime, refunds and settings.
The dashboard lists chargers offline for more than 30 minutes, connectors with 3 failed starts in a row, tickets past their repair target (24 hours for motorway DC, 72 hours for AC, client policy), refunds awaiting approval, roaming credential errors and sites near their grid limit, each linked to the record.
Every remote command asks for a reason, shows whether the charger accepted, rejected or timed out, and stays in the command log with the user's name. Vendor error codes such as GroundFailure are translated into plain language next to the raw OCPP messages.
Session detail shows the timeline from authorisation to unplug, the power and energy curve, the tariff version applied, each price component with VAT, the pre-authorisation and capture, and the OCMF signature status with a link to the transparency viewer.
Slovak sessions stay in EUR and Czech sessions in CZK, with a country switch on every list. Driver emails are masked, card details show only brand and last four digits, and opening a session is recorded in the audit trail.

Designed and built a clickable grid asset monitoring platform for a regional electricity distribution company in Sindh: a control room dashboard, an alarm list built for shift work, an asset register with nameplate data, and an explainable health and risk score for every transformer and breaker - all read-only from SCADA.

Built a consumer iOS and Android app for solar generation, battery storage, EV charging and smart-home device control - backed by an IoT sensor network and AI optimisation engine. Shipped from clickable AI prototype to App Store in 16 weeks.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab