Where is the next wine festival or concert? Which blockbusters are currently playing at the cinema? PFALZWERKZEUG, the leisure and events app of PFALZWERKE AKTIENGESELLSCHAFT, provides this and much more useful information. Following a relaunch, the all-in-one tool will be even more user-friendly, faster and, above all, more personal in the future.
PFALZWERKZEUG has always bundled current and interesting content for its users, such as events, leisure tips, cinema programs, e-bike charging stations restaurant tips, and makes them conveniently and attractively accessible via a unique tool. Oriented to the company's new design language, the app presents itself in a very colorful way. Icons serve as eye-catchers and highlight the individual sections of the app. This makes the overall layout fresher and more modern.
The technical setup of the app is fundamentally new. It enables a new operating logic, which is reflected above all in the new search entry. Here, the motto in future will be "let yourself be inspired": Using drop-down menus, users can decide whether they need information alone, as a couple or as a family. The search is supplemented by a time and region selection. Thus the PFALZWERKZEUG becomes more personal and the user finds more simply the leisure Tipps useful for it.
The handling is simple, the display is clear, and the watch list also bundles all content marked by the user and makes it clearly available at any time. This way, concerts in Pirmasens or Heidelberg as well as bars in Kaiserlautern and restaurants in Kusel remain in the user's memory even over a longer period of time.
Anyone using the Palatinate tool can find information about the entire Palatinate, the Saar Palatinate and the Rhine-Neckar metropolitan region in various categories.
Quelle: https://www.pfalzwerke.de/pfalzwerke-gruppe/news/20190418-pfalzwerke-relaunchen-pfalzwerkzeug_n34672
At the time, the app was implemented together with AppPilots, a long-standing partner of the agency, with whom it was always a lot of fun to work together. The idea behind the app was great! Being able to search within a radius of a location and filter the events by target groups and time period was very good. The UX concept of the app was also great. Very easy to use, easy to access. The performance of the app was also good. Nevertheless, there were challenges.
The backend of the app was implemented in Pimcore and the data there was partly maintained manually (news, etc.) and the events were imported. Here was the biggest challenge, because the app should be able to filter by date and radius. For my personal way, a renewed example that digitization is not a single struggle. Unfortunately, not enough attention was paid to the database and so it was overlooked that the data sets did not contain any date and, above all, no geo-coordinates for the radius search. In addition, the data was only available in Excel spreadsheets.
For many years I have been pointing out "Shit In, Shit Out!". If the database is poor, no matter how good your idea is, it will quickly reach its limits. As a solution-oriented person, I quickly thought of finding a solution. Fast was an important point here, because the backend had to be up and running in two weeks.
The solution was to first analyze the data. What kind of dates could I find and what kind of address spellings were there?
For example, "Every third weekend between March and April" or "Once a year on the first weekend in November" were used as dates, but also "Every second Fri. and Sat." - There were quite a few. So I wrote a parser which could recognize all the different formats and hit them anyway if the deviations were small. Only in case of too big deviations, which were very rare, it had to be touched up manually. To do this, I added an extension in the Pimcore backend that allowed the editors to simply correct the data.
To be able to fetch the geo-coordinations from partly exact addresses, but partly only regions or places, I made queries against the Google API during the import. Per import about 10000 records ran through the app. Unfortunately without a simple, unique identifier. So I had to combine and separate the data for an address from the data for an event to avoid re-queries for already existing addresses during import.
This example showed me that with enough effort and will, you can still get good out of any bad database. To find the gold, you just have to wash the rock first.