Skip to content

Beinhaltet die Business-Logik für Frontend, Adminportal, Selfserviceportal und EAI. Und bildet somit den Kern der Anwendung.

License

Notifications You must be signed in to change notification settings

it-at-m/dave-backend

Repository files navigation

Backend (Datenportal):

About the project

Dieses Repository ist eine der 5 Komponenten der Anwendung "DAVe" (Datenbank und Auswertung für Verkehrszählungen).

Es müssen nicht zwingend alle 5 Komponenten gleichzeitig verwendet werden. Allerdings bildet dieses Repository den Kern der Anwendung und ist Voraussetzung für alle anderen Bestandteile.

DAVe besteht aus folgenden Repositories:

  • Backend (Datenportal): Beinhaltet die Business Logik für Frontend, Adminportal, Selfserviceportal und EAI. Bildet den Kern der Anwendung.
  • Frontend (Datenportal): Das Datenportal bietet einen lesenden Zugriff auf die Zählungen. Es kann nach Zählungen gesucht werden (auch auf einer Karte). Hat ein Nutzer eine Zählung, bzw. eine Zählstelle gefunden, so kann in dieser eine umfangreiche Datenanalyse betrieben werden. Repository
  • Adminportal: Das Adminportal ist den Administratoren der Anwendung vorbehalten. Hier ist der komplette Workflow um eine Zählstelle, oder eine Zählung anzulegen abgebildet. Auch die Kommunikation mit dem Zähldienstleister wird über dieses Portal abgewickelt. Repository
  • Selfserviceportal: Das Selfserviceportal ist dem Zähldienstleister vorbehalten. Dort sieht der Dienstleister Aufträge für neue Zählungen, kann Metadaten zu einer Zählung pflegen und die Zähldaten hochladen. Das Selfserviceportal kann auch mit mehreren verschiedene Zähldienstleister betrieben werden. Repository
  • EAI: Um Schnittstellen zu anderen Systemen innerhalb der LHM zur Verfügung zu stellen, gibt es die Möglichkeit direkt Daten als CSV-Datei zu bekommen. Folgende Funktionen werden angeboten:
    • Ausgabe aller Zählstellen mit Koordinaten als CSV-Datei
    • Ausgabe der Spitzenstunde einer bestimmten Zählung als CSV-Datei
    • Daten aller Zählstellen und Zählungen des angegebenen Monats werden im JSON-Format zurückgegeben

EAI-Repository

Besonders ist die Aufteilung der Daten. Alle Daten, die relevant für die Suche sind (Stammdaten), werden in Elasticsearch gespeichert. Die Bewegungsdaten - im Fall von DAVe die Zähldaten - werden in einer relationalen Datenbank (bei der LHM: Oracle) vorgehalten. Um die Ladegeschwindigkeit zu erhöhen, werden bereits beim Speichern der Zähldaten diverse Berechnungen durchgeführt und die vorberechneten Ergebnisse zum direkten Abruf in der Datenbank hinterlegt. Hier kommt auch eine KI-Komponente zum Einsatz, die die Hochrechnung von Kurzzeitzählungen auf den ganzen Tag übernimmt (bisher nur bei Radzählungen). Die Frontends sind jeweils Vue Single Page Applications, die über ein Service Gateway mit dem Backend kommunizieren. DAVe besteht nur aus einem einzigen Spring Service.

Built with

Java 21, Spring Boot 3.3, ElasticSearch 8.15

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

Open an issue with the tag "enhancement"
Fork the Project
Create your Feature Branch (git checkout -b feature/AmazingFeature)
Commit your Changes (git commit -m 'Add some AmazingFeature')
Push to the Branch (git push origin feature/AmazingFeature)
Open a Pull Request

Coding Conventions

We use the itm-java-codeformat project to apply code formatting conventions. To add those conventions to your favorite IDE, please have a look at the README of itm-java-codeformat.

BuildAndRun

Local requirements:

  • Java: min Java 21
  • ElasticSearch: v8.15
  • Maven 3.9.7
  1. Clone the Project from GitHub
  2. Configure your ElasticSearch in application-local.yml
  3. Build the Project with mvn clean install
  4. If you start it for the first time then change ddl-auto to create
  5. Run the Project with one of the scripts runLocal or runLocalNoSecurity

OR you can go straight to the dave-frontend and try out our test stack based on docker-compose.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

it@m - opensource@muenchen.de

About

Beinhaltet die Business-Logik für Frontend, Adminportal, Selfserviceportal und EAI. Und bildet somit den Kern der Anwendung.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages