Web-Applikation mit RESTAPI -- 2

Job ID: 40009223

Budget: $750 – $1,500 USD

2 BESCHRIEB FÜR VARIANTE 1.3

2.1 Ausschreibung: Entwicklung einer Web-Applikation (PDF-Verarbeitung mit Bestell- und Paketverwaltung)

2.1.1 Ziel

Es soll eine webbasierte Anwendung entwickelt werden, mit der eingehende Bestellungen (PDF-Dateien) eingelesen, verarbeitet, überprüft und in einer Datenbank gespeichert werden können.
Die Anwendung soll benutzerfreundlich, zweisprachig (Deutsch/Englisch), sicher und erweiterbar sein.

2.1.2 Funktionsumfang
2.1.2.1 Benutzerverwaltung

- Login über Benutzername/Passwort (Authentifizierung).
- Benutzer darf nur Bestellungen einsehen/bearbeiten, die seiner hinterlegten Adresse zugeordnet sind (Autorisierung).
- Administration: Das Onboarding neuer Benutzer erfolgt in einem externen System. In der Web-Applikation selbst soll der Benutzer jedoch:

- sein Passwort ändern können
- die Funktion „Passwort vergessen“ (Reset via E-Mail-Link) nutzen können

2.1.2.2 PDF-Verarbeitung

- Hochladen von Bestell-PDFs durch den Endkunden.
- Extraktion sämtlicher relevanter Zeilen (Positionen).
- Erkennung und Auslesen der Bestellnummer.
- Speicherung des originalen PDF-Dokuments in der Datenbank (oder als Datei mit Referenz).


2.1.2.3 Datenbank-Anbindung & Business-Logik

- Vergleich der im PDF enthaltenen Bestellpositionen mit den Daten im System (Tabellenabfrage über Bestellnummer).
- Markierung von Abweichungen (z. B. fehlende oder abweichende Positionen).
- Benutzer kann Anpassungen vornehmen:
- Position hinzufügen/löschen
- Mengen/Konditionen anpassen
- Schrittweise Bearbeitung:

- In einem ersten Schritt soll der Benutzer auch nur den Liefertermin erfassen können, ohne weitere Details zu bearbeiten.
- Weitere Schritte (Splitting, Positionsänderungen etc.) können danach erfolgen.
- Offene Bestellungen:

- Der Benutzer hat in einer Verwaltung/Übersicht Zugriff auf alle seine noch offenen Bestellungen.
- Darstellung als Liste mit Filter-/Suchfunktionen (z. B. nach Bestellnummer, Liefertermin, Status).
- Von dort aus kann er eine Bestellung öffnen und weiterbearbeiten.
- Änderungen werden in der Datenbank gespeichert (inkl. Änderungsprotokoll).

2.1.2.4 Bestellpositions-Splitting

- Ausgangslage: Eine Position im PDF oder in der Datenbank (z. B. -1000 kg Produkt A-) muss vom Lieferanten in mehrere Pakete/Einheiten aufgeteilt werden können.
- Erfassung pro Paket: mindestens 5 Pflichtfelder:

1. Paketnummer (z. B. -Paket 1, Paket 2, …-)
2. Gewicht (kg pro Paket)
3. Anzahl (Stück pro Paket)
4. Bemerkung/Referenz (frei definierbar)
5. Status (z. B. offen, geliefert, kontrolliert)

- Beispiel:

- Originalposition: -1000 kg-
- Erfassung durch Lieferant:

- Paket 1 → 100 kg, 2 Stück
- Paket 2 → 150 kg, 3 Stück
- …
- Paket 10 → 50 kg, 1 Stück

Validierungen:

- Summe der Teilmengen darf die ursprüngliche Bestellmenge maximal bis 10% (%
Konfigurierbar) über oder unterschreiten.
- Pflichtfelder müssen ausgefüllt werden.
- Speicherung jeder Teillieferung in einer eigenen Tabellenzeile, verknüpft mit der
Originalbestellposition.


Frontend-Darstellung:

- Benutzer sieht die Hauptbestellposition.
- Klick auf „Aufsplitten“ öffnet eine Maske/Tabelle zum Erfassen der Pakete. Wenn definiert
ist das aufgesplittet werden muss, ist das abschliessen erst nach Erfassung von mindestens
2 Positionen möglich
- Pakete können hinzugefügt/gelöscht werden.
- Änderungen werden sofort gegen die Datenbank gespeichert (über REST API).

2.1.2.5 Benutzeroberfläche (Frontend)

- HTML5-basierte Oberfläche mit Responsive Design (Desktop & Tablet).
- Zweisprachigkeit (Deutsch/Englisch) – Sprachumschaltung durch Benutzer.
- Übersichtlich strukturierte Darstellung der Bestellpositionen:
- Originaldaten aus PDF
- Vergleichsdaten aus Datenbank
- Editierbare Tabellenansicht
- Upload-Funktion für PDF.

2.1.3 Nichtfunktionale Anforderungen

- Sicherheit: HTTPS, Passwort-Hashing, rollenbasierte Zugriffssteuerung.
- Performance: Verarbeitung einer Bestellung (ca. 5–20 Seiten PDF) in < 10 Sekunden.
- Dokumentation:

- Installationsanleitung
- Benutzerhandbuch (DE/EN)
- Technische Dokumentation (API, Datenbankschema)
- Code-Übergabe: Vollständiger Sourcecode inkl. Build-/Deployment-Skripte.

2.1.4 Technische Anforderungen

Frontend:

- HTML5, CSS3, JavaScript/TypeScript
- Framework: React oder Angular (bitte Anbieterwahl angeben)

Backend / REST API:

- Programmiersprache: C (.NET Core) oder Node.js (Express) oder Java (Spring Boot) – bitte Anbieterwahl begründen
- Schnittstellen: REST API (JSON)
- Datenbank:

- Relationale Datenbank (ist MS SQL Server)
alle Daten werden über RESTAPI abgelegt.


PDF-Verarbeitung:

- Nutzung einer etablierten Bibliothek (z. B. iText7, PDFBox, PDF.js)
- Internationalisierung:

- Übersetzungen über JSON- oder i18n-Dateien
2.1.5 Lieferumfang

- Voll funktionsfähige Web-Applikation gemäss Anforderungen.
- Installationspaket (Deployment-Setup für Test & Produktion).
- Dokumentation (technisch + Endbenutzer).
- Quellcode inkl. Rechte zur Weiterentwicklung.
2.1.6 Erwartete Angebotsangaben

1. Vorgehensweise und Architekturvorschlag.
2. Eingesetzte Programmiersprachen, Frameworks und Bibliotheken.
3. Aufwandsschätzung (Personentage) und Preis.
4. Zeitplan (Umsetzungsdauer, Meilensteine).
5. Erfahrungen/Referenzen mit ähnlichen Projekten.