-
Notifications
You must be signed in to change notification settings - Fork 3
06 ‐ Software Design and Architecture
This document describes each component of our web app's architecture and their respective roles.
-
Nuxt3: Our application is built on Nuxt3, a Vue.js framework that we've leveraged to create a universal web application. It handles our requests, renders our pages, and manages our routes.
-
Tailwind CSS: We're using Tailwind CSS to rapidly build our custom user interfaces. This utility-first CSS framework lets us create responsive designs directly in our markup.
-
DaisyUI: DaisyUI, a plugin for Tailwind CSS, is employed in our app to provide pre-built components and simplify UI styling.
-
MapTiler: Our mapping platform, MapTiler, powers our map interfaces and location-based data functionality.
-
Node.js: Our web app's backend services run on Node.js. It's our chosen JavaScript runtime for building fast and scalable network applications.
-
Express.js: We've built our web server on Express.js, a minimal and flexible Node.js web application framework that provides a robust set of features for our app.
-
Mailtrap: For safe email testing in staging and development, we're using Mailtrap. It's a fake SMTP server where we can view and inspect outgoing emails without them reaching the intended recipients.
-
Nodemailer: Our server uses the Node.js module, Nodemailer, to send transactional emails, such as password resets and email confirmations.
-
Google Cloud Storage: We're storing images uploaded by users in Google Cloud Storage, a scalable, durable, and highly available object storage service. We then store links to these images in our database.
-
Nominatim API: The Nominatim API, a search engine for the OpenStreetMap database, is what we use to convert address data into geographic coordinates for our mapping and location-based services.
-
Digital Ocean App Platform: We host our application on the Digital Ocean App Platform, which allows for easy deployment, scaling, and management without manual server or infrastructure management.
-
GitHub / GitHub Projects: Our application's source code resides in GitHub, which provides us with version control and source code management. We also use GitHub Projects for project management, tracking issues, and organizing tasks.
-
Als Benutzer möchte ich mich registrieren können, um ein persönliches Konto auf der Webseite zu erstellen.
-
Als Benutzer möchte ich mich einloggen können, um auf mein persönliches Konto zuzugreifen.
-
Als Benutzer möchte ich Tickets für Veranstaltungen in einen Warenkorb legen können, damit ich sie später kaufen kann.
-
Als Benutzer möchte ich Tickets aus meinem Warenkorb kaufen können, um Zugang zu den Veranstaltungen zu erhalten, für die ich mich interessiere.
-
Als Benutzer möchte ich verschiedene Zahlungsmöglichkeiten nutzen können, um für meine Tickets zu bezahlen.
-
Als Benutzer möchte ich eine Bestätigung meiner Ticketkäufe erhalten, damit ich weiß, dass die Transaktion erfolgreich war.
-
Als Benutzer möchte ich eine übersichtliche und ansprechende Webseite nutzen, damit ich leicht finden kann, was ich brauche und die Nutzung der Seite genießen kann.
-
Als Veranstalter möchte ich mich registrieren können, um ein Veranstalterkonto auf der Webseite zu erstellen.
-
Als Veranstalter möchte ich mich einloggen können, um auf mein Veranstalterkonto zuzugreifen.
-
Als Veranstalter möchte ich neue Veranstaltungen erstellen können, um Tickets auf der Webseite zu verkaufen.
-
Als Veranstalter möchte ich Details zu meinen Veranstaltungen (Datum, Ort, Preis, Beschreibung etc.) hinzufügen und aktualisieren können, um potenzielle Ticketkäufer zu informieren.
-
Als Veranstalter möchte ich die Anzahl der verkauften Tickets in Echtzeit einsehen können, um meine Veranstaltungen zu managen.
-
Als Veranstalter möchte ich eine Übersicht über die Einnahmen meiner Veranstaltungen haben, um meine Finanzen zu verwalten.
-
Als Veranstalter möchte ich eine Benachrichtigung erhalten, wenn Tickets für meine Veranstaltungen ausverkauft sind, um informiert zu bleiben und ggf. zusätzliche Tickets bereitstellen zu können
You can find a PDF version of this wiki here