Own product · 2024 – 2025 Project 13 of 20
TDK Core
A shared base for websites on several domains from one codebase.
At a glance
- Role
- Design and development
- Period
- 2024 – 2025
- Status
- Archived
- Technologies
- 6 technologies
A Nette application that serves websites on several domains from one codebase. Each domain has its own database and permissions, features are added as modules (accounts, permissions, blog, seminars, tickets, invoices, translations), and sign-in goes through Keycloak.
Technically interesting
- A new domain with one command. A domain is created with a console command that takes its name, owner, address and database; migrations and the synchronisation of domain permissions also run from the console.
- Modules with one structure. A new module adds its own API endpoints, and its permissions are generated for it. Endpoints are declared with an attribute right on the method – with a version, path, method and a deprecation flag.
- A generic API with filters. One builder composes the conditions, so a new filter type means one enum case and one change to the builder.
- Teamwork. Development went through GitLab with a branch for every task and merge requests, with CI/CD and separate development and production instances in Docker.
Built with
- PHP
- Nette
- MariaDB
- Keycloak
- OAuth 2.0
- Docker