The most exciting thing about the low-code platforms is the fact that  you can develop an application very fast and have your first release in just a few hours.

Euro 2020/2021 Cup

If you have not heard about Sprinterra’s team yet, it is a good moment to mention that most of our team members are from Ukraine. We love development and love soccer, especially the fact that the Ukrainian team reached the quarter-final during the last European championship. It’s a huge achievement for the Ukrainian nation and we were truly inspired to build an app reflecting team standings and results at the championship.

The Quick Prototype Solution

We drew a picture on the board at the office to see the Euro 2020 brackets, results and to bid on the future games. But for us as for the software development team it was not a solution, but only a prototype.

Prototype

A working prototype made using a board and a few color pens. The next step was implementation and sharing it with the rest of the World. 

The Euro cup was running its course, so we needed rapid development and the OutSystems platform was the right choice to develop a modern responsive application as quickly as possible.

Our Requirements for the Solution

Application Development Using OutSystems

Prepare Data Model/Architecture

The core of all modern applications is the data. Because the application should have been built quickly we’ve added only data required for MVP: teams, matches and users. Game status was added as a static entity (enumeration if you will).

There is a very powerful tool to draw Entity diagrams in OutSystems. It helps to manage data modeling in application and allows diagram sharing with the team. Diagrams are easy to read and understand, with visible relations between data entities.

Euro Database

I believe data management is the most important part of software development. And I should  confess, sometimes I utilize OutSystems entity diagrams for the projects which are worked on using different sets of technologies, because this tool is very well made and easy to use. 

Develop Functions to Expose Data to Modules

 It is a good practice to separate functionality by modules and logic from the security and maintenance points of view. We do not need to expose all data functions to the modules, the requirement is to expose GET, POST and PUT functions for the data.

Euro ServerActions

For this low-code application we have only three methods to share with other modules for creating or updating matches, updating games status. All GET functions are created with the aggregates in OutSystems this time. All Users functions are created using OutSystems Service Center including creating roles, users and user groups, as you can see on the screenshot below.

Euro Users

Create Components (Widgets) in OutSystems

When you create a User Interface it is important to decide which components must be reusable in order to save your team time and decrease cost of development, maintenance and time to market. In Euro 2020 bracket online application four reusable components were defined (see the screenshot below):
1.   Flag
2.   Team
3.   Match
4.   SprinterraMenu

Euro Widgets

The match component has the information about Home and Guest teams, score, time and location of the game. The match widget is using the team widget and the team widget is using the flag widget.

Euro Match widget

These are all the custom components we need to use in our application. We used standard components of OutSystems –  Table, Form, Button and other, for the data management modules.

Management Module

A module with the matches is available only for users with the Manager role.

Manage Matches

Manager is able to add a new game or edit existing.

Manage Match

MVP Solution as a Responsive Single Page Application

Within a few hours of development utilizing the OutSystems platform we’ve created a fully operational and responsive web application that will work on almost any device, including desktops, laptops and tablets.

Euro desktop

Mobile version with the slider of the brackets.

Euro mobile all

Pros and Cons of Our Low-code Solution

Pros

It took us just a few hours to deliver. It might take up to a couple of days for those who are just starting using OutSystems, still a very impressive timeline. 

The base themes in OutSystems UI are (in most cases) fully responsive and are working well on mobile, tablet, laptop and desktop screens. 

Cons

If you wish to share your web application on social media you should understand that it will have poor sharing information due to the Single Page Application architecture.

Forge module SEO Utils on steroids could be used to add meta information to your application for the browser, but not for the search engines.

The application requires the OutSystems platform. There are two options to set up an application in the cloud or on-premise, but there is no way to run it without the OutSystems ecosystem.

You should really consider all limitations of the OutSystems platform before developing software products that will be used for the years. Of course, the platform is flexible and you can build your own modules and use modules from other developers, but in some cases classic software development might be more cost-effective.

Stay with Sprinterra

If you think OutSystems is a right choice for your organization, due to the rapid development and low cost associated with this process, and have an idea  about creating an application using OutSystems, you can fill in a request for proposal on our website RFP for Healthcare or RFP for Fintech. Our proposals are free of charge and include not only project timeline and cost, but proposed architecture, design and other details. Please do not hesitate to contact us if you have any questions.


If you want to know more about low-code platforms subscribe to our news and connect with us on social networks. If you think this article might be interesting for your followers, please feel free to share it, it will allow us to collect more feedback and improve our blog.

Subscribe to Our News

Leave a Reply

Your email address will not be published. Required fields are marked *