An independent, human-centered redesign of the Oulu public transport app (OSL) — focused on accessibility for excluded users, faster ticket purchasing, and clearer real-time information. Designed solo as a system designer would: from contextual analysis through Figma prototype, validated with 5 real users.
Course: Human-Centered Design (812363A-3009) · University of Oulu
Duration: Sep – Oct 2025 (8 weeks) · Status: In progress (Phase 1 complete)
Format: Independent project — solo researcher, designer, and prototyper
Methods: Heuristic evaluation, cognitive walkthrough, WCAG audit, persona development, mid-fidelity Figma prototyping, think-aloud usability testing with 5 participants
Live prototype: View on Figma →
OSL (Oulun Seudun Liikenne) is the official mobile app for Oulu's public transport — used daily by commuters, students, tourists, elderly residents, and people with disabilities. As a frequent user myself, I noticed the app falls short in three areas that affect real-world commuting:
| Area | Problem | Impact |
|---|---|---|
| Navigation | Landing page defaults to "Purchases", "Home" redirects to "Customer Messages" — misleading mental model | Users miss buses while hunting for the right tab |
| Ticket purchase | 6–7 step flow takes 30+ seconds; no balance/credit system | Users can't buy on the move; risk of boarding without ticket |
| Accessibility | Non-compliant with WCAG 2.1 AA — missing screen reader, high contrast, voice input, text resizing | Excludes elderly, visually impaired, and non-Finnish speakers |
| Real-time data | Inaccurate bus tracking; no delay notifications | Missed connections, eroded trust |
| Support | No offline mode, no onboarding, no contextual info (crowding, weather) | Tourists and new users abandon early |
The thesis: A transit app's job is to remove friction from a fundamentally stressful task — catching a bus. Every extra tap, every missing alert, and every excluded user is a system failure.
This project was built deliberately on multiple HCD frameworks rather than improvised: