CASE STUDY

Government and institutions

Making public services and institutional initiatives more visible and accessible.

CMS
Kotlin
ReactJS
Postgres
INTRODUCTION

The City of Lugano is one of the largest municipalities in southern Switzerland. It serves hundreds of thousands of citizens, providing several services and promoting many initiatives to make the city more attractive. In this context, their mission was to increase the accessibility and visibility of their services to the population, exploiting digital technologies.

CHALLENGE

The city of Lugano provides its citizens with the Agorateca service: a media library with more than 40.000 movies, books, games and music albums available for rent.

Managing such a large catalog, distributed across multiple places and with lots of different users needs a custom backoffice system, connected to an easy to use customer facing portal.
Our aim is to implement the full system composed by the backoffice, used by Agorateca employees, and the publicly available frontoffice.

Further requirements are:

  1. Provide a custom media catalogue management suite
  2. Provide an easy to use searchable interface
  3. Implement a custom lending/rental process
  4. Provide recommendations to the users based on topics and themes
Writing means sharing. It’s part of the human condition to want to share things – thoughts, ideas, opinions.

Paulo Coelho

SOLUTION

We developed a custom integration using state of art components:

  • The backend is developed with Kotlin and Spring boot
  • The internal administration panel is a single page application built with TypeScript and ReactJS
  • The customer facing portal is based on Wordpress extended with custom plugins
  • Data is persisted on a Postgres database. We leverage the n-gram data structure and word based metric spaces to provide advanced search and fuzzy matching
  • Identity and access management is centralized, both for internal and external user, in a Keycloak instance
OUTCOMES
MENU
CLOSE
HomeWhat we doHow we workJoin usTech blog
info@welld.chView all our contacts