Coder Social home page Coder Social logo

diddielou / metropolismanager Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 19.74 MB

A desktop app made with Compose for Desktop: a City Manager and a Country Manager. Each manager enables the user to change the data shown in the list on the right. Features: Clicking on a country selects its capital in the City Manager and filters for cities in this country. Clicking on a city selects the country in the Country Manager.

Kotlin 100.00%
compose-desktop compose-for-desktop filter-data form selection-handling

metropolismanager's Introduction

Metropolis Manager

A student project as part of the module "Desktop application development" taught by Dr. Dieter Holz at the University of Applied Sciences Northwestern (FHNW)

Screenshot

Metropolis

Assignment description in German:

Die Aufgabe: Desktop Applikation zur Verwaltung von Städte-Informationen

Im Zentrum steht die Verwaltung von Gemeinden und Städten mit mehr als 500 Einwohnern. Weltweit sind dies ca. 200'000. Dafür ist die Entwicklung von mindestens zwei Explorern und zwei Editoren notwendig (jeweils für Städte und Länder).

Dieses Assignment entspricht einer typischen Situation, in der sich Software-Firmen häufig befinden. Es soll in sehr kurzer Zeit eine erste Version einer Geschäftsapplikation umgesetzt werden, die bereits eingesetzt werden kann und damit einen Nutzen beim Auftraggeber erzeugt. Auf dieser Basis wird dann ein längerfristiges Projekt definiert, bei dem die Geschäftsapplikation weiter optimiert wird.

Dementsprechend besteht das Assignment aus drei Teilen

  • Entwurf der Applikation, so dass die Applikation mit möglichst geringem Aufwand technisch umsetzbar ist. Normalerweise hat dieser Entwurf Schwächen im Bereich der Usability.

    • Dieser Entwurf muss nicht weiter dokumentiert werden (kein Wireframe muss abgegeben werden)

  • Implementierung von Metropolis

    • basierend auf den Beispielen und insbesondere den xtracted-Packages aus module08 und module09

    • die beiden Explorer müssen LazyLoading, Sortieren und Filtern unterstützen ✔

    • die Editoren unterstützen Mehrsprachigkeit, Input-Validierung und Undo/Redo ✔

  • Entwurf der nächsten Applikations-Version (Balsamiq-Datei, .bmpr)

    • Wie sieht das aus Benutzersicht optimale Interaktions-Konzept für Metropolis 2.0 aus?

    • Wie ist das optimale Zusammenspiel zwischen den beiden Explorern?

    • Was soll passieren, wenn im CountryExplorer ein Land selektiert wird?

    • Wann "erscheinen" die Editoren?

    • Wie kann am besten bei einer Stadt das Land eingetragen werden?

    • Wie kann die Datenkonsistenz sichergestellt werden, z.B. wenn bei einem Land die Hauptstadt eingetragen wird?

    • Wann werden die Datenänderungen in einem Editor auch in den entsprechenden Explorern angezeigt?

    • Wie wird visualisiert welche Datensätze verändert und noch nicht gespeichert wurden?

    • dieser Teil der Aufgabe wird idealerweise in einem kleinen Team (zwei bis drei Personen) bearbeitet

    • Dokumentieren Sie ihren Entwurf als Balsamiq-WireFrame

Anforderungen

  • Gewünschte Funktionalität

    • 2 Explorer, jeweils mit Lazy-Loading aus der lokalen Datenbank metropolisDB, Sortier- und Filter-Möglichkeiten auf mindestens vier Spalten ✔

      • Implementierung basiert auf den Beispielen aus module08

      • CityExplorer für die ca. 200'000 Städte und Gemeinden ✔

      • CountryExplorer für die ca. 250 Länder ✔

    • 2 Editoren, jeweils mit Header-Bereich und Formular-Bereich ✔

      • Implementierung basiert auf den Beispielen aus module09

      • CityEditor muss auf jeden Fall das Feld für den COUNTRY_CODE enthalten ✔

      • CountryEditor muss auf jeden Fall das Feld für CAPITAL enthalten ✔

    • neue Städte/Länder können angelegt, bestehende aus der Datenbank gelöscht werden ✔

    • die Explorer und Editoren müssen jeweils separat, mit einer eigenen Demo-Applikation gestartet werden können ✔

    • Metropolis verbindet die Explorer und Editoren zu einer Gesamtapplikation ✔

      • Selektion einer Stadt im CityExplorer

        • "öffnet" den CityEditor

        • zeigt die Länder-Information in geeigneter Weise im CountryExplorer/CountryEditor an (✔)

      • Selektion eines Landes im CountryExplorer

        • öffnet den CountryEditor

        • zeigt die Information der Hauptstadt in geeigneter Weise im CityExplorer/CityEditor an (✔)

        • zeigt die Städte dieses Landes in geeigneter Weise im CityExplorer an ✔

    • Wichtiger Hinweis: Es sind Veränderungen und Erweiterungen in den xtracted-Packages notwendig. Diese können nicht unverändert übernommen werden. ✔

  • Die Implementierungssprache für die gesamte Applikation ist Kotlin ✔

  • Das UI ist mit Compose Desktop zu entwickeln ✔

  • Verwendung von JDBC für die Datenbank-Zugriffe ✔

  • Keine Verwendung von externen Libraries, die nicht bereits im Unterricht eingesetzt wurden ✔

metropolismanager's People

Contributors

diddielou avatar github-classroom[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.