Introduction
This is the central repository for technical documentation of projects developed and maintained by Department of Innovation and Technology of the City of Bratislava (opens in a new tab). if you'd like to contribute, get in touch via email or github (opens in a new tab)
If you are an individual or a company who’d like to take part in these efforts, collaborate closely on development or report an issue, we’d love to hear from you! 🙌 Contact us using this repository or at innovationteam@bratislava.sk
Our goal is to be transparent about services we’re developing and providing, as well as to invite other cities and municipalities to build on top of the same or similar open-source technologies we’ve already tested and used - to foster an ecosystem of collaboration (opens in a new tab) between teams facing similar challenges. We’ll be happy to get in touch.
Getting started
Hey! 👋 If you're a new contributor, member of the Innovations team or an external contractor, we recommend starting with Editor setup, then following other setups that are relevant for your role.
When you are done, it's useful to check out how we handle environment variables .
This documentation is a living document, and we encourage you to contribute to it. If you see something that's missing or incorrect, please open an issue or create a PR (opens in a new tab).
For internal developers:
There is also the main onboarding process common for the whole Innovations team (currently in Miro). If you haven't seen it, please approach you buddy or the team lead.
Structure
The site is split into following sections - see the main menu on the left:
- Setup & Onboarding - Start here if you are a new contributor. This section contains information about our development environment, workflows, tools and the way to set them up.
- Setting up new project - How to set up eslint & prettier for new project.
- Frontend / Web development - All the docs about common techniques, best practices, libraries and tools we use in frontend development, as well as about our CMS (Strapi) and fulltext-search tool (Meilisearch), which are also usually developed and maintained by the frontend team.
- Backend development - Libraries and services used by backend, common across multiple projects.
- Deployment, infrastructure, monitoring - Kubernetes, cloud services, Grafana.
- Project specific documentation - Contains documentation relevant only for the specific projects.
Our technologies
If you're not familiar with any of these technologies, give them a look:
Frontend
- Next.js (opens in a new tab)
- Typescript (opens in a new tab)
- TailwindCSS (opens in a new tab)
- Strapi CMS (opens in a new tab)
- GraphQL (opens in a new tab), which we use for connecting Next to Strapi
- GraphQL Codegen (opens in a new tab), which we use to generate typesafe SDK from our GraphQL queries
- Meilisearch (opens in a new tab), often connected to Strapi via meilisearch-strapi plugin (opens in a new tab)
- openapi-generator-cli (opens in a new tab), which we use to generate typesafe SDK from BE openapi specs (Swagger)