HayaDev
APICompleted

Skinner API (Django)

Django REST Framework and PostgreSQL backend of a multi-tenant SaaS platform for ABA clinics, built at Self Aplicações Tecnológicas para Saúde, Educação e Bem-Estar.

  • Python
  • Django
  • Django REST Framework
  • PostgreSQL
  • AWS Lambda
  • Zappa
  • ReportLab
  • Matplotlib

This project is covered by confidentiality. The page describes only the technical nature of the work, with no internal details, data or proprietary code.

About the project

Skinner API was the first generation of the Skinner platform’s backend. The system managed organizations, patients, professionals, therapy programs, sessions, biofeedback games and reports.

I worked on evolving the API and the database while the product was being developed and operated, dealing directly with business rules, data modelling and integrations.

Key technical challenges

  • Multi-tenant architecture, with data isolated between organizations.
  • REST API development with Django REST Framework.
  • Modelling and evolving a PostgreSQL database.
  • Authentication, authorization and per-organization access control.
  • Business rules for training, sessions and patients.
  • Processing the physiological data coming from the games.
  • PDF report generation with data and charts.
  • File storage on AWS services.
  • Query optimization and preventing performance problems.
  • API documentation with OpenAPI.
  • Automated tests for the application’s main flows.

Architecture

The application was built as a Django monolith organized by domain, using Django REST Framework to expose the APIs.

Isolation between organizations was treated as a core requirement, with membership checks applied to every operation that handles client data.

The architecture evolved over time as new domains and features were added to the product.

Reports and data processing

The API was also responsible for processing the data from game matches and for generating PDF reports.

The reports combined application data with physiological information processed in the backend, including charts, and were stored on AWS infrastructure.

Engineering

During development, I worked mainly with:

  • Python and Django;
  • Django REST Framework;
  • PostgreSQL;
  • database modelling and migrations;
  • multi-tenant architecture;
  • business rules;
  • query optimization;
  • data processing;
  • document and chart generation;
  • AWS Lambda and S3;
  • API documentation;
  • automated tests.

How the project evolved

The experience gathered while evolving this first generation helped identify architectural improvements that were later applied to the platform’s new versions, especially in separating business rules, modelling domain states, reusing structures and the testing strategy.

Completed project, replaced by a new generation of the platform.

Confidential project. The information presented has been deliberately limited to general technical aspects, without exposing code, user data or internal product details.

Back to projects