
Create a first OutSystems reactive web app by building a home page with centered Hello world, added to the menu, and styled using containers and classes.
Create a reactive screen that takes two integer inputs and performs addition. Assign the sum to a result variable and display it in a message.
Implement arithmetic operation part two by displaying the calculated sum on the screen, binding the result to an expression widget within an added row, and ensuring correct numeric addition.
Apply if-else validation to two positive integers before performing addition, returning a clear error when inputs are invalid and displaying the result when valid.
Build an arithmetic feature with four buttons for add, subtract, multiply, and divide, each using its own action on integer inputs to compute and display results.
Create a single arithmetic action that uses a switch widget to perform add, subtract, multiply, or divide based on the operator parameter passed from four buttons.
Create a conditional arithmetic app with OutSystems' if-else widget: subtract when value one is greater than value two, otherwise add.
Practice string operations using built-in text actions. Learn to lookup a character by index with substring, and validate inputs with trim and length checks to handle index out of bounds.
Practice reversing a user input string, displaying the original and reversed versions with a pipe separator, and validating non-empty input using if-else logic and dynamic UI updates.
Learn list operations in a reactive OutSystems app by creating a text list, appending and inserting names, removing and sorting items, and displaying indexed results with a list widget.
Prevent duplicate names by checking the existing list using trim and to upper case, and show 'this given name is already present in the list' when found; otherwise add.
Demonstrate list operation three by using the list index off method to detect duplicates and display when a name is already present, including its one-based position in the list.
Learn to add a delete icon beside each name and remove items from the list by position using a list remove action, updating indices.
Master list item deletion in OutSystems by adding a confirmation prompt before removing a name, using a yes or cancel flow to prevent unintended actions.
Add a global delete all button beside the add button, prompt for confirmation, and clear the list if the user confirms, removing all records.
Explore list operation seven by adding names to a text list with an optional index. Validate input, insert at a given position or append, and handle out-of-bounds errors.
Extend the previous version to support undoing a single record by storing the deleted name and its index in a record, showing an undo button, and reinserting on undo.
Initialize the list with names Ankit, John, and Linda at the initialize event using list append to populate zeroth, first, and second positions, and preserve features from earlier exercises.
Create a list of user details (name, surname, city) using a structure or list of records, validate inputs, and display results in a table with hash, name, surname, city.
Develop a date formatter screen using a date input, a predefined format dropdown, and a format button to show the formatted date, as part of the OutSystems skill builder.
Design and implement a Fibonacci series generator that accepts an input length, displays the first n terms using a loop, and resets state between runs.
Reverse each word in a paragraph by splitting input with string split, reversing each word, and joining results while preserving word order in OutSystems server and client actions.
Calculate the sum of a number's digits by converting the input to text, looping through digits, and validating entry with a calculate button.
In this exercise, learners build a screen that accepts a comma-separated integers list and a search value, splits and validates input, and highlights a match in green.
Design an end-to-end OutSystems signup page using a form widget to capture and validate full name, email, mobile, password, and retype password, showing saved records with masked passwords.
Demonstrates building a signup form with password visibility toggle using icons, and explains two implementation approaches: JavaScript-based toggle and a two-state if/else widget solution.
Design a password complexity feature for the signup form, using four boolean checks (length, case, special character, no sequential) with JavaScript-powered color feedback and save validation.
Design a screen with dependent dropdowns that filter cities by state using JSON deserialization, highlight capital cities in bold with state name and show population.
Design a client profile overview page with a profile image, details, and an active or inactive status, plus an accordion for details and a control panel to toggle status.
Learn to build a client registration form in OutSystems that creates a database record with name, email, and created date, marks the record active, and shows a success message.
Fetch a client record by ID, edit the retrieved data, and persist changes to the database with validation for mandatory name and email.
Create a single-screen client manager that fetches and edits a client, then performs a soft delete by marking inactive, with a confirmation prompt and restricted edits for inactive records.
Create a client list viewer page that queries active clients and displays id, name, email, and created on in a table with a refresh button.
Build an active client list with a refresh button and a right-aligned count, using a label and count container bound to the list length, in the same app module.
Implement a live like search on the client list by name, surname, and email using an aggregate filter with a search text variable and on-change refresh.
Implement a searchable client list with an inline delete action that performs a soft delete, updates the displayed list and count, and prompts for confirmation.
Implement an inline update feature for a client list on a new screen, with an editable name field, save action, non-empty name validation, and data refresh after update.
Learn to build an inventory management app with categories and items using OutSystems scaffolding, including audit fields and validation for mandatory fields.
Develop inventory management by adding category and item via pop-up forms, validate and save to database, show spinners, disable save during processing, refresh lists.
Enable adding and updating items via a popup in the inventory management app by toggling the popup, binding an item object, and using a spinner during server actions.
Manage categories in a web block driven inventory page by adding, editing, and validating category name and description, and showing created and updated metadata with tooltips for descriptions.
Develop a connected drop down experience by linking a category and item selector with on-demand item fetch, a spinner indicator, and automatic rate display for the chosen item.
Extend the dropdown with a select all option that shows all items on page load, and fetch at start while applying the category filter only when a category is chosen.
Design and implement connected dropdowns in a single row with category and item selection, a processing web block, and an order processing UI with add, remove, and validation.
Welcome to Course 2 of the OutSystems Zero to Hero Series — a complete hands-on training module designed to transform theory into practice.
In this course, you’ll go beyond the basics and strengthen your OutSystems skills through 40+ guided exercises built around real-world scenarios. Each exercise is carefully designed to reinforce the concepts learned in Course 1 and introduce intermediate-level problem-solving that developers face in day-to-day projects.
You’ll work on:
Designing dynamic screens using inputs, conditions, and validations.
Building and connecting entities, aggregates, and data relationships.
Creating logic flows using client and server actions.
Applying variables, data actions, and events effectively.
Performing String operations.
Performing List operations and logic building.
Practicing Outsystems UI widgets and design principles
This course focuses entirely on practical learning, ensuring you gain confidence in using OutSystems Service Studio efficiently and independently. Whether you’re preparing for certification, switching to a low-code career, or building your own projects, these exercises help you learn by doing — not just by watching.
By completing this course, you’ll have solid experience in OutSystems Reactive Web Development at both the basic and intermediate levels — preparing you for advanced topics such as architecture design, multitenancy, and reusable components in Course 3.
Start practicing today and take your next step toward becoming an OutSystems professional developer.