Work

Anonymized case study

A business portal connected to existing systems

Bring management data into a web application with dedicated workspaces for field teams, customers and managers. This project combines a custom portal, data synchronization and access administration.

A project by Bruce Borgna

The client, its sector and business data are anonymized. The diagram explains the solution; it does not reproduce client screens or data.

Connect data and users

The need: make information from several management systems available while defining what each user can access. The scope includes viewing records and documents, handling requests from field teams and administering access.

A portal independent of source systems

Existing management tools remain the systems of record. Separate processes synchronize the required data into a dedicated read model. The portal uses this model to present information according to each user’s role and scope.

From management data to user workspaces

Source systems feed consolidated data through synchronization. The portal uses this data to provide four workspaces with access rights and journeys suited to each role.

Anonymized concept diagram. Data is synchronized; availability depends on the latest completed process.

Journeys tailored to each role

Field teams

Find an item using a QR code, an image or manual search, view related information and send a request to the back office.

Customers

View records, contracts and documents associated with their account. Account assignments and permissions define which information is available.

Managers

View dashboards and consolidated information within their scope, with support for working across multiple account contexts.

Administration

Manage users, invitations, roles and account assignments. Track synchronizations, errors and the application’s technical health.

An architecture built for reading data

The central choice is to separate data collection from data access. Portal pages use the read model, while synchronization processes have their own monitoring.

Keep existing systems
The application adds an access layer for information. It does not replace the tools that produce management data.
Define access scopes
Accounts, roles and assignments determine available journeys and data. Administration functions have a dedicated workspace.
Make processes observable
Monitoring views expose synchronization status and errors. Processes are logged to support diagnosis.
Deploy identified versions
The application uses container images and automated checks to build and deploy its versions.
Tools and their roles in the solution
ToolRole
Power AutomateSynchronizes SQL data to Supabase in batches and exposes processing status through monitoring.
On-premises data gatewayConnects the Power Automate SQL Server connector to data accessible on the client’s private network.
Supabase and PostgreSQLSupabase, based on PostgreSQL, provides the consolidated read model. A separate PostgreSQL database handles accounts, sessions and application jobs.
LaravelHandles the web portal, authentication, permissions and business journeys without directly querying source systems.
SOAP API and PythonA separate Python process calls a business API and synchronizes its data to Supabase.
Brevo SMTPDelivers transactional emails: invitations, password resets and workflow notifications.
RedisProvides the application cache.
Docker and VPSThe VPS hosts the application; Docker runs it using prebuilt, identified container images.

What this model enables

Data from multiple sources can be viewed in a single application. Teams, customers and managers have distinct journeys, while administrators can monitor access and synchronization processes.

This study describes the implemented features and architecture. It makes no claim about quantified time savings or measured business performance.

Questions about a connected business portal

Does the ERP or management system need to be replaced?

In this project, the management systems stay in place. The portal provides a dedicated user interface fed by synchronized data.

Is information updated in real time?

The portal relies on synchronization processes. Data freshness depends on completed runs; it should not be confused with direct, instant access to source systems.

Can the same portal serve teams and customers?

Yes: this implementation provides distinct workspaces and access scopes based on roles and account assignments. Each journey presents information relevant to its audience.

Your data is already there. Connect it to your teams.

Do you have an ERP, several business tools or a need for a customer portal? Let’s define the users, the data to connect and the first useful journey.

Discuss your business portal Explore other projects