Skip to content

Tools & Externals#

← Back to Main Page

The tools below are the ones actually used by the Educado project. For the runtime topology see Deployment & Infrastructure, and for the system design see System Architecture.

Development and collaboration#

Tool Description Link
GitHub Source hosting, code review and issue tracking for every Educado repository. GitHub
GitHub Actions CI for the repositories, including the documentation build (mkdocs build --strict). GitHub Actions
MkDocs Material Static site generator behind this documentation. MkDocs Material
uv Python dependency manager used to run and build the documentation site. uv

Back end#

Tool Description Link
Node.js 20 Runtime for the API and the email worker. Node.js
Express 5 HTTP framework used to build the REST API. Express
TypeScript Language used across API, web and mobile. TypeScript
Sequelize ORM mapping the PostgreSQL schema to the models in src/models. Sequelize
PostgreSQL 16 Relational database, single source of truth for platform data. PostgreSQL
Redis 7.2 Backing store for the BullMQ job queue. Redis
BullMQ Job queue used for asynchronous email delivery. BullMQ
MinIO S3 compatible object storage for images and videos. MinIO
Resend Transactional email provider (verification, password reset, registration decisions). Resend
Swagger UI API documentation served by the API itself at /docs/. Swagger
Jest Unit and integration test runner for the API, with supertest for HTTP level tests. Jest
ESLint + Prettier Linting and formatting for the TypeScript codebases. ESLint

Front end#

Tool Description Link
Vite Build tool and dev server for the web application. The web app is plain TypeScript, no framework. Vite
fetch wrapper The web application has no HTTP client library. All calls go through a small in house wrapper over the native fetch, in src/shared/api/http.ts, which prefixes the base URL, attaches the bearer token, parses JSON and throws a typed ApiError. fetch
flatpickr Date picker used in the web auth flow, in src/features/auth/components/AuthProfileStep.ts and src/features/auth/pages/EditProfilePage.ts, with the month select plugin and the pt-BR locale. flatpickr
nginx Serves the built web assets in production and handles the SPA fallback. nginx
Expo (SDK 56) Toolchain for the React Native mobile app, Android first. Expo
React Native UI framework for the mobile app. React Native
EAS Build Builds the mobile binaries (.apk / .aab) for distribution. EAS Build

axios is declared but not used

axios still appears in the dependencies of educado-web/package.json, but there is not a single import of it in src/. It is a leftover and should not be used for new code: the fetch wrapper above already handles the base URL, authentication and error shape consistently.

Infrastructure and delivery#

Tool Description Link
Coolify Self hosted PaaS (version 4.3.1) that deploys and supervises the API, the email worker and the web app. Coolify
Nixpacks Build strategy used by Coolify for the Node processes (API and email worker). Nixpacks
Docker Containerisation. The web app ships a multi stage Dockerfile; local infrastructure runs via Docker Compose. Docker
Traefik Reverse proxy managed by Coolify, terminating TLS for the public domains. Traefik

Testing and inspection#

Tool Description Link
Postman Manual API exploration alongside Swagger UI. Postman
Swagger UI Interactive contract for the API, canonical for request shapes. Swagger

← Back to Main Page