READ-ONLY PARKING OPERATIONS · SIXTEEN-WEEK PLAN

Turn periodic parking logs into facts an owner can trust.

ParkFlow receives canonical events from automated parking facilities, reconstructs vehicle journeys, and explains occupancy, queues, processing, equipment, faults, revenue, and data coverage—without ever controlling physical equipment.

16 junior developers4 teams of 416 weeks1 day each weekHebrew RTL desktop product
01 · FINAL OUTCOME

One uploaded week becomes one explainable management story.

Every developer owns a visible part of this shared acceptance journey.

01 · INGESTUpload mixed canonical CSV/JSON logs, validate records, preserve valid rows, and reject bad evidence clearly.
02 · RECONSTRUCTCreate stable sessions, retain partial journeys, and leave ambiguous events unmatched.
03 · UNDERSTANDRead thirty-day occupancy, demand, retrieval, equipment, revenue, and freshness facts at a glance.
04 · INVESTIGATEOpen the Level 3 Zone B busy period and trace a delayed retrieval through its source events.
05 · EXPLAINRelate queues and fault overlap without inventing causation or unavailable values.
06 · PROVEReview quality and the management report, enforce roles, and replay the upload with zero duplicates.
02 · OWNERSHIP

Sixteen complete feature assignments

Every student owns data/API behavior, a Hebrew interface, fixtures, tests, documentation, handoff, and a final demonstration. Every weekly task includes a copyable approval prompt.

03 · DELIVERY RHYTHM

Understand, contract, build, connect, and prove.

Sixteen calendar weeks provide approximately sixteen working days per developer. Scope stays small; ownership stays complete.

WeekThemeExpected shared evidenceVisible project result
W01UnderstandFlow, terms, boundaries, inputs/outputs, one success and failure fixture.Every developer can explain the owned feature before coding.
W02ContractMinimum typed shapes, examples, errors, producer and consumer named.Shared contracts stop sixteen features from drifting apart.
W03PrepareCommitted deterministic fixtures and initial tests.Every owner can work before adjacent features exist.
W04First sliceSmallest visible or callable end-to-end path.All sixteen features have a demonstrable beginning.
W05–06BuildNormal behavior, persistence, validation, and user path.The primary upload-to-analysis journey takes shape.
W07–08Failure states & testPartial, invalid, duplicate, empty, unavailable, RTL, keyboard, and contract tests.Missing telemetry degrades honestly instead of breaking the product.
W09–10ConnectOne upstream and one downstream typed integration test.Features join without shared-table coupling or duplicated formulas.
W11–12Complete & safeFinal journey, access, privacy, read-only boundary, and accessibility.The complete owner and manager scenarios work safely.
W13–14Stabilize & polishThirty-day fixture, measured behavior, approved design, and Hebrew copy.The integrated desktop product becomes review-ready.
W15–16Handoff & demonstrateRunbook, known limits, owned evidence, and individual live demonstration.Each student can explain exactly what she or he built.
04 · PRODUCT BOUNDARY

Historical analytics, never physical control.

Required cycle

  • Seeded owner and facility-manager access.
  • Canonical single-event, batch, CSV, and JSON ingestion.
  • Idempotent replay and transparent partial acceptance.
  • Facility hierarchy, flexible equipment, and vehicle restrictions.
  • Complete, partial, and ambiguous vehicle journeys.
  • Overview, occupancy, facility map, demand, queues, and processing.
  • Equipment use, faults, revenue, quality, and on-screen reporting.
  • Hebrew-only RTL desktop product using reviewed components.

Explicit exclusions

  • PLC, OPC-UA, robot, elevator, gate, or platform control.
  • Vendor adapters and arbitrary file-column mapping.
  • Live monitoring guarantees, alerts, or notifications.
  • Maintenance tasks, fault acknowledgement, or equipment reset.
  • Payments, invoices, card data, or personal billing data.
  • AI recommendations, forecasting, and automatic insights.
  • PDF/CSV export in the core cycle.
  • Mobile and tablet optimization.
Non-negotiable safety boundary: ParkFlow observes uploaded evidence. It cannot command, configure, reset, acknowledge, open, close, start, or stop physical equipment.
05 · PHYSICAL JOURNEY

The real process behind the event stream

The DE-63-inspired fixture is one implementation example; the model remains flexible enough for robots, elevators, and other systems.

ARRIVAL

Identify and assign

The licence plate identifies the vehicle. The source system checks restrictions, chooses a compatible location, and directs the driver to a floor and zone.

STORE

Prepare and move

The gate opens, the driver parks on the prepared platform, confirms completion, and the automated mechanism stores the vehicle.

REQUEST

Queue retrieval

The user enters an identifier at a lobby kiosk. Simultaneous requests form a queue while equipment prepares vehicles.

COLLECT

Return and exit

The system reports the collection location, the vehicle becomes ready, and the exit event closes the journey when available.

06 · SHARED CONTRACTS

Minimum shapes freeze after Week 2.

Students collaborate only on the contract, fixtures, one integration test, and necessary integration fixes.

CanonicalEvent {
 eventId, facilityId, eventType, occurredAt,
 licencePlate?, externalSessionId?,
 location?: { levelId?, zoneId?, spaceId? },
 equipment?: { equipmentId?, type? },
 requestId?, movementId?, vehicle?, pricing?,
 fault?, sourceSystem?, metadata?
}

Required for every event:
eventId + facilityId + eventType + occurredAt
Vehicle events additionally require licencePlate.
ParkingSession {
 internalSessionId, externalSessionId?, licencePlate,
 status, completeness, events[], issues[],
 arrivalAt?, storedAt?, retrievalRequestedAt?,
 readyAt?, exitedAt?, levelId?, zoneId?, spaceId?
}

DataIssue {
 type, sessionId?, eventIds[], missingRequirements[],
 candidates[], affectedMetrics[], explanation
}
Facility {
 id, name, levels[], accessPoints[], equipment[]
}
Level { id, facilityId, zones[] }
Zone { id, levelId, spaces[] }
Space {
 id, zoneId, usable,
 maxWidth?, maxHeight?, maxWeight?
}
Equipment {
 id, facilityId, type, location?, label
}
MetricResult<T> {
 value?: T, availability,
 numerator?, denominator?, sampleSize?,
 coveragePercent, requiredEvents[],
 missingRequirements[], range, comparison?,
 methodologyVersion
}

Never encode unavailable as zero.
Never describe time overlap as causation.
07 · METRIC DICTIONARY

Every number has named evidence.

OccupancyStored vehicles ÷ configured usable spaces.
Parking processingArrival → confirmed storage.
RetrievalRetrieval request → vehicle ready.
CollectionVehicle ready → facility exit.
Stored durationConfirmed storage → retrieval request.
ThroughputCompleted exits during the selected period.
Derived queueRetrieval requested but not yet ready.
Fault downtimeReported fault → reported recovery.
Equipment utilizationReported movement time ÷ applicable period.
08 · ARCHITECTURE

One simple application with domain-owned services.

REACT

Hebrew desktop frontend

Reviewed ParkFlow shell, tables, charts, timelines, map, forms, coverage labels, and failure states.

EXPRESS

Backend API

Validated routes, authorization, ingestion, domain services, analytical reads, health, and structured logs.

SUPABASE

Database and authentication

Seeded roles, migrations, facility/event/session records, and server-enforced scoping.

FIXTURES

Deterministic operation

Three levels, zones A–F, ninety spaces, thirty days, partial data, faults, pricing, and duplicates.

Database ownership

TeamOwned recordsCross-team access
Data & SetupUsers/roles, facility hierarchy, equipment definitions, ingestion runs, immutable canonical events.Exposes typed auth, facility, validation, and event services.
Parking JourneysInternal sessions, associations, unmatched events, session issues, journey read models.Consumes accepted events; exposes session and issue views.
Facility PerformanceOwned analytical queries/read models for overview, occupancy, map, demand, and queues.Consumes typed session/facility views; never rewrites source evidence.
Business & ReliabilityDuration, equipment, fault, revenue, quality, and report read models.Consumes typed summaries and evidence; never recalculates another owner's metric differently.
09 · ACCEPTANCE

Required final demonstrations

The main journey plus boundary cases prove the system is coherent and honest.

Main journey

  1. Upload one week of mixed canonical CSV/JSON logs.
  2. Validate, deduplicate, import, and explain rejected rows.
  3. Read occupancy, demand, retrieval, equipment, revenue, and freshness.
  4. Open a busy period and Level 3 Zone B.
  5. Trace a delayed retrieval and its source events.
  6. Inspect contemporaneous queue and equipment fault evidence.
  7. Review utilization, downtime, revenue, quality, and report.
  8. Replay the same source and create zero duplicates.

Boundary evidence

  • Manager cannot change facility setup or users.
  • Partial session remains visible and excludes only unsupported metrics.
  • Ambiguous event remains unmatched.
  • Measured zero differs from unavailable telemetry.
  • Stale upload cannot look current.
  • Low pricing coverage cannot look like complete revenue.
  • Fault overlap is not labelled causation.
  • No screen or API controls physical equipment.