Web-Applikation mit RESTAPI -- 2
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.
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.
Related categories:
PHP
Website Design
Windows Desktop
CSS
Software Architecture
Software Testing
Microsoft
MySQL
HTML
Website Management