schmidie / splitbill Goto Github PK
View Code? Open in Web Editor NEWBilling System
Billing System
Benuter meldet sich im System an
Benutzer navigiert über Ereignisliste zu einem Ereignis an dem er teilnimmt
Benutzer sieht seine bisherigen Ausgaben
Benutzer sieht Gesamtausgaben
Benutzer sieht seine aktuelle vorläufige Abrechnung
Benutzer meldet sich im System an
Benutzer navigiert über Ereignisliste zu seinem Ereignis
Benutzer wählt eine Aktion "Entfernen" für einen Erreignis
Benutzer druckt auf ein OK Button in einem "popup message box" um seine Aktion zu Bestätigen
Ausgewähltes Ereignis wird aus der Ereignisliste entfernt und in den Papierkorb des Erstellers gelegt
User navigiert zur Registrierungsseite
User findet Registrierungsformular mit Benutzername, Email und Passwort
User wählt einen Benutzernamen, der nicht vergeben ist
User gibt gültige Email-Addresse ein
User wählt ein Passwort
Passwort muss zweimal eingegeben werden
User gibt Zahlungsinformationen an
User sendet Formular ab
User bekommt per Mail ein Bestätigung der erfolgreichen Registration
User kann sich einloggen
Extensions:
Benutzername vergeben, oder Email-Addresse ungültigen Formates, oder Passwörter stimmen nicht überein
Nutzer bekommt eine Meldung diesbezüglich
das Absenden des Formulars hat kein Effekt
Aktivierungslink verschicken
Ausgabe der offenen Beträge
Optionen zur Anzeige der eventl. Zahlungsinformationen, oder den Betrag als beglichen markieren
Der gewählte Kontoverwalter/Nutzer wird benachrichtigt
Benutzer meldet sich im System an
Benutzer navigiert über Ereignisliste zu einem Ereignis
Benutzer wählt eine Aktion "Bearbeiten" für einen Ereignis
Benutzer editiert beliebeige Felder und speichert seine Änderungen mit dem Druck auf einen "Speichern" Button
Alle Änderungen werden im System gespeichert
Benutzer meldet sich im System an
Benutzer navigiert zu dem ausgewählten Ereignis
Benutzer bekommt eine Ausgabenübersicht zu seinem Ereignis
Benutzer bestätigt die Korrektheit der Ausgaben und klickt auf "Abrechnen"
Das Ereignis wird abgeschlossen, es können keine Kosten mehr angemeldet werden
Alle Teilnehmer des Ereignisses bekommen eine Mail, dass sie für dieses Ereignis den Betrag zahlen müssen oder eine Zahlung erhalten.
Benuter meldet sich im System an
Benutzer navigiert über Ereignisliste zu einem Ereignis an dem er teilnimmt
Benutzer über die Kostenpunkte Bilder der Rechnungen abrufen (falls verfügbar)
Hintergrund: Rückfragen und Absprachen hinsichtlich der Abrechnung sollten öffentlich einsehbar sein. Deshalb ist es sinnvoll eine Kommentarfunktion an jedes Ereignis anzuhängen. Die Kommentare sollten einfach flach nacheinander folgen, wie beispielsweise "Facebook Kommentare" bei einer Veranstaltung.
Main Success Szenario:
Benutzer ist eingeloggt oder loggt sich ein
... navigiert zu einem Ereignis auf das er Zugriff hat
... klickt auf "Kommentiere/Rückfrage stellen" und wird zum Kommentarfeld navigiert
... kommentiert im Formular das Ereignis und klickt auf Senden
Der eingegebene Text erscheint als Kommentar des Ereignisses
Extension Points optional:
Es kann verboten sein Kommentare zu hinterlassen
Ein Benutzer kann vom Kommentare-Verfassen ausgeschlossen sein
Kommentare sollen gelöscht werden können
Hintergrund ist, dass Ereignisse nur zwischen Benutzern abgerechnet werden können, die diesem Ereigbnis zugeordnet sind:
Main Success:
Benutzer ist eingeloggt oder loggt sich ein
... verfügt über Code/spezifische URL und ruft diese/n auf
... muss entscheiden ob er diesem Eregnis zugeordnet werden möchte [Ja]
... gelangt auf die Ereignisübersicht/Postenübersicht des Ereignisses
Extension Points:
Benutzer entscheidet sich für nein bei der Frage nach dem Beitritt
... soll (z.B. weil er ein Kind ist) "anders" abgerechnet werden, zum Beispiel mit einem geringeren Anteil an der Gesamtsumme (was Auswirkungen auf die Anteile nicht-ermäßigter Ereignisteilnehmer hat)
Ausgabe der offenen, beglichenen und eingegangen Beträge (Ein- und Ausgaben) und der damit verbundenen Nutzer
(optional) Möglichkeit ein Nutzer zu kontaktieren
Benuter meldet sich im System an
Benutzer navigiert über seine Ereignisliste zu einem Ereignis an dem er teilgenommen hat
(Benutzer klickt auf Posten hinzufügen, falls das Formular nicht ohnehin schon auf der Seite sichtbar ist)
Benutzer gibt in Textfeld Namen des Posten an
Benutzer gibt in anderem Feld Kosten an
Je nach Belegpflicht muss Rechnungsscan hochgeladen werden
Benutzer klickt auf Posten hinzufügen
Der offene Posten wird dem Ereignis hinzugefügt
Benutzer meldet sich im System an
Benutzer navigiert zum gewünschten Ereignis
In der Historie kann der Nutzer nun ablesen, was die letzten Änderungen beim Ereignis waren (z.B. Neuer Kostenpunkt, neuer User, ...)
Statistik über Gesamtsumme der geteilten Kosten wird auf der Startseite ausgegeben (als teaser)
Seite wird in der gewählten Sprache neu geladen
Die gewählte Sprache bleibt während der Sitzung aktiv
Ist der Nutzer eingeloggt, wird die gewählte Sprache als Standard
im Profil gespeichert
Benutzer meldet sich im System an
Benutzer wählt die Name, Ort und Zeitpunkt des Ereignis
Benutzer kann Zahlungsmodalitäten festlegen
Benutzer legt Belegpflicht fest
Benutzer definiert die möglichen Teilnehmer (siehe X)
Benutzer bestätigt das Erstellen mit dem Druck auf einen Ereignis erstellen
Button
Das neu erstellt Ereignis befindet sich nun in der Liste der aktiven Ereignisse
Der Teilnehmer hat einen Posten erstellt und möchte ihn nach der Erstellung ändern/löschen (z.B. falscher Preis oder falsches Ereignis, Rechnung hinzufügen...)
Benutzer meldet sich an
Benutzer navigiert über Ereignisliste zu einem Ereignis
Benutzer öffnet dortige Postenliste
Sofern das Ereignis noch nicht abgerechnet wurde) Bei den Posten die der Nutzer erstellt hat, sind "bearbeiten" und "löschen" Buttons (Der Ersteller des Ereignisses darf bei allen Posten jeweils ablehnen)
Nutzer klickt "löschen": Nachdem die Aktion bestätigt wurde (Popup...) wird der Posten gelöscht
Nutzer klickt "bearbeiten": Das selbe Formular, was der Benutzer bei der Erstellung ausgefüllt hat, erscheint. Nun kann er die vorausgefüllten Werte ändern. Bei einem Klick auf den "Speichern-Button" wird der Posten geändert
Benutzer wird zur Postenliste weitergeleitet
Extensions:
Validierung und Fehlermeldungen wie bei "Posten zu Ereignis hinzufügen"
zu kurzer/gar kein Titel
invalider Preis
Ausgabe der offenen Beträge
Optionen den „Schuldner“ zu kontaktieren, oder den Betrag als eingegangen markieren
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.