What the client required
- More accurate advertising as a result of user´s profile analysis
- The application provides valuable user statistics for marketing purposes
- User´s actions tracked by log features
- The client is now more accurate and thus more effective in his marketing
- Application is flexible for third-party service replacements
Client / ZapFi
Technology / Java, PHP
ZapFi was created to provide free Wi-Fi Internet for the city of Bruges.
Now the company is growing its network to other cities and even countries.
Also various applications have been developed (especially in the mobile field) to provide more services to ZapFi users and more ways to advertise to the customers.
What the client required
ZapFi uses its network for advertising. Therefore the client needed a core system for storing user data and managing their sessions.
This system was called ZapCenter and was primarily needed to improve their advertisement targeting to users.
Also, the system had to collect network usage statistics: registrations count, session numbers per day/week etc.
What we offered to our client
First, we provided an analyst and project manager to the client.
They participated in software platform selection, and recommended an application server and the database engine.
After that, we developed database schemes and the application structure.
Then we provided ZapFi with three Java developers to create the system for storing user data.
New users are required to register and provide some basic information about themselves.
This is called the user profile. During the user sessions, the profile is updated with statistical information for further advertisement analysis.
Based on the profiles, the system discovers user interests and is able to provide the right advertisements to them.
![api call Example of an API call.](https://apro-software.com/wp-content/uploads/2020/06/api-call.jpg)
Example of an API call.
The APRO part is the core of the whole ZapFi system for maintenance and administration of the whole advertising Wi-Fi network.
We store data about user registrations and their sessions, log their actions and do the analysis of these.
The application is built using J2EE, GlassFish as an application server, and PostgreSQL database.
It provides a RESTful API for the client-side applications.
Application design principles
As ZapCenter is used by several teams (and their applications), and at the same time contains sensitive user data, security was one of the main requirements.
Another important requirement is flexibility. ZapCenter uses several third-party services (SMS sending, WiFi equipment, warehouse application etc.).
We were required to make service replacement as easy possible.
The system needed to support Multilanguage and localization.
We also solved various interesting technical problems, such as language-specific characters in SMS messages.
Conclusion
During the development, there were continuous improvements to ZapCenter in order to find the best solution.
This required intensive communication with the customer and all the teams participating in the development.
The customer had several teams working on the different parts of the system.
Most of them were using the API provided by the APRO application to request user data or usage statistics.