ZVV - Customer Self-Service Portal

★ Featured
Client: ZVV (Zurich Transport Network)
Employer: Unic
Period: 2017 – Present
Role: Application Architect & Backend Lead
Team Size: 8
Spring BootKotlinAngularOAuthREST API

Development of a self-service customer portal for ZVV that allows customers to manage their subscription information and personal details.

Technical Challenges

  • Integrating with the SBB NOVA interface for subscription management
  • Implementing secure authentication and authorization
  • Creating a responsive, accessible user interface
  • Ensuring data privacy compliance with Swiss regulations

Solutions

Built a robust backend with Spring Boot and Kotlin, implementing a clean architecture with clear separation of concerns. Developed a responsive Angular frontend with accessibility features. Implemented OAuth-based authentication and fine-grained authorization controls.

Outcomes

  • Reduced customer service calls by enabling self-service for common tasks
  • Improved user experience with a modern, responsive interface
  • Enhanced security with robust authentication and authorization
  • Streamlined subscription management process

Project Overview

This project involved the development of a self-service customer portal for ZVV (Zurich Transport Network) that allows customers to manage their subscription information and personal details. The solution was built using Spring Boot and Kotlin for the backend, with an Angular frontend, and included integration with the SBB NOVA interface for subscription management.

Technical Challenges

The implementation presented several significant technical challenges:

  • SBB NOVA Integration: We needed to integrate with the SBB NOVA interface for subscription management, which required understanding and implementing complex business rules and data models.
  • Security Requirements: The portal needed to handle sensitive customer data, requiring robust authentication and authorization mechanisms.
  • User Experience: The interface needed to be intuitive, responsive, and accessible to users of all abilities across various devices.
  • Data Privacy: As a system handling personal information, strict compliance with Swiss data protection regulations was essential.

Solutions Implemented

To address these challenges, we:

  1. Built a robust backend with Spring Boot and Kotlin, implementing a clean architecture with clear separation of concerns
  2. Developed a responsive Angular frontend with accessibility features following WCAG guidelines
  3. Implemented OAuth-based authentication and fine-grained authorization controls
  4. Created a comprehensive integration layer for the SBB NOVA interface
  5. Designed a secure data handling approach compliant with Swiss data protection regulations

Outcomes

The project was a success, with the following outcomes:

  • Reduced customer service calls by enabling self-service for common tasks such as subscription management and personal information updates
  • Improved user experience with a modern, responsive interface that works across all devices
  • Enhanced security with robust authentication and authorization mechanisms
  • Streamlined subscription management process, reducing errors and processing time
  • Created a maintainable and extensible architecture that can accommodate future requirements