NOTE: This Application is for demonstration purpose only and you might not be able to install it in personal environment as it has a module which is also a user provider.
This Application has four modules
BO: Back Office module used to create tenant and also for managing user against a tenant. This module has below pages
Tenants: Tenants page is the landing page of this module. This page provides a dropdown with all the user provider eSpace and table which displays the tenants created against that user provider. By default a Users tenant is always found under Users user providers.
TenantAdd: This page provides a popup to take a tenant name as input and creates the tenant with the provided name under selected user provider
Tenant: This page display all the users present against the selected tenant and also provides an option to create new user.
Tenant_User_PopupEditor: This page provide a form to create user under the selected tenant.
Contacts_CustomUser: Contact application, this application is based on "CustomUsers" user provider, so any user part of CustomUsers module can access this application.
Contacts: This page displays all the contacts created under the logged in user tenant. This also provides ability to edit/create a contact.
ContactDetail: This page provides a form for creating a contact.
Contacts_users: Contact application, this application is based on "users" user provider, so any user part of users module can access this application.
CustomUsers: Custom User provider, this is a copy of old version of users module. This module was found in post https://www.outsystems.com/forums/discussion/26457/user-provider-module/
All the module work together and provides a playground to help understand how tenant can be mapped to a user provider and how an multi tenant application (contact) can be created. To get most of it I recommend performing below steps
Additionally try creating a same username against all the tenants and see how the application behaves.