Municipal Objects Registry is a small web service for working with a registry of municipal objects. It supports browsing, creating, and editing records, managing related entities, importing data, and seeing changes almost immediately through real-time updates.
The architecture is simple and separated: the frontend lives in front and is built with React, React Router, React Query, React Hook Form, Zod, Axios, and a STOMP/WebSocket client. The backend lives in backend as a Java 17 WAR application based on Spring Web MVC, Spring Data JPA, and Hibernate. Data is stored in PostgreSQL, imported files are stored through MinIO, caching is handled by Ehcache, and the external API is split across controllers, services, repositories, DTOs, and domain models. Deployment is handled by GitHub Actions on pushes to main or manual workflow runs: the backend workflow builds a WAR with Maven, applies backend/db/setup.sql to the remote PostgreSQL database, copies the artifact to the Helios server over SCP, and restarts WildFly with scripts/restart-wildfly.sh; the frontend workflow installs npm dependencies, builds the static React bundle, archives it, sends it to the same server, and restarts httpd through scripts/restart-httpd.sh.