Skip to main content

General overview of the UALA's backend project.

This project contains multiple applications (in alphabetical order):

  • tw-integration: application that handles interface and communication between TWPro and Treatwell Marketplace
  • uala-admin: ActiveAdmin application internally used to have a visual representation and perform actions on multiple entities
  • uala-auth: simple small application that allow other services (at the moment only uala-brands and v1/manager EPs) to authenticate with our APIs
  • uala-brands: another simple application that handles data about Brands (like L'Oreal, Icon, Aveda, ...) and their relationships with Venues
  • uala-core: Rails engine where all other applications inherits from. Contains a lot of shared logics
  • uala-graph: GraphQL application used by the widget booking only
  • uala-internal-tools: application that implement features used to optimise the company's teams day to day work.
  • uala-main: the main TW Pro application (and the original one before the split). Contains all models and logics about SaaS and UALA's marketplace
  • uala-statistics: application that serves endpoints for reports, graphs and other statistics-oriented stuff.

!!! We are using English as main language in all our development flow, so we encourage you to write descriptions, comments, and everything else in English, across all our internal and external systems (code comments, code reviews, jira tasks, environment variables names, saved metabase questions names, ...) !!!

System architecture

The complete uala-backend architecture can be displayed as an overview in the following graph. A similar representation of it can be found in Miro, and a video recording with further explanation is available as well.

About documentation

Documentation site is built with Retype and can be edited as markdown files in the doc folder of the repository. To start playing with documentation locally, you can run the following command:

# Or if you don't have node installed
docker compose up livedoc

Then you can open the documentation site at http://localhost:5005. Then you can edit the markdown files in the doc folder and see the changes reflected in the browser. When you're done propose your changes with a PR. See also RFC doc.