Project Thumbnail

User Onboarding Portal

In 2024, we started working with a new manufacturer whose devices rely on their own cloud platform to function properly. As distributors, we were given administrator access to this cloud portal, which allowed us to manage both devices and installer accounts.

However, the system had a major limitation: there was no option for users to register themselves. Every request had to go through our team, who had to manually create each account. At first, with just a few requests per day, the process was manageable. But as the brand became more popular, the requests grew into dozens per day.

This meant assigning team members to a repetitive and inefficient task, causing delays for customers who needed immediate access to the platform. Frustration increased, as many arrived on site without having registered and had to **wait—sometimes for hours—**for someone from our team to complete the process.


I decided to fully automate the user registration process. The idea was to create a simple web page, accessible to our customers, where they could register themselves without any support.

Beyond solving the operational issue, I saw the opportunity to turn this tool into a reference portal for installers, by integrating the complete product documentation as well.


The technical solution was based on Flask, which is ideal for simple and fast-to-develop applications.

  • Frontend: I built a clean interface using HTML, CSS, and JavaScript, with client-side validation to improve the user experience.

  • Backend: Flask handles form processing and makes requests to the manufacturer’s cloud portal, which I had previously reverse-engineered by inspecting the network traffic between their frontend and backend.

  • Technical documentation: I integrated content from our knowledge base using Zendesk APIs, converting articles to Markdown automatically. I used Flask-FlatPages to render static pages written in Markdown directly on the site.

The architecture is minimalist: a single Flask app deployed on a server, with no database needed, as data is sent directly to the manufacturer’s platform.

Technical Challenges

The main challenge was understanding how the cloud portal’s API worked, since no official documentation was provided. I analyzed the original frontend’s network requests, and although I had no support from the manufacturer, the structure of the portal was solid enough that I could reproduce the necessary requests from my backend without major issues.

Results or Impact

  • Hundreds of hours saved on repetitive tasks for our technical team

  • Zero waiting time for our clients, who can now register anytime, on their own

  • Centralized and accessible documentation, which has significantly reduced common support questions

  • Over 2,000 registrations processed automatically in the first year

The solution has proven to be stable, useful, and scalable, requiring almost no maintenance.

Lessons Learned

  • Technically, I strengthened my skills with Flask and learned how to work with undocumented APIs, which is a very valuable skill in real-world scenarios.

  • Professionally, I gained a deeper understanding of the importance of looking at processes from the customer’s point of view and finding ways to reduce friction.

  • Personally, I proved to myself that it's possible to deliver real value in a short time by combining observation, decisiveness, and execution.

Recent Projects

About Me

about-me-user-img

Francesco Esposito

Data Scientist

Data enthusiast turning messy information into meaningful insights. I mix creativity, code, and curiosity to make data work.