3 Commits
v1.0.3 ... main

Author SHA1 Message Date
a14c55b7fd docs: use corrected auth screenshots in readme 2026-07-07 07:33:34 +02:00
8f8706a032 docs: expand android install guide 2026-07-07 07:30:08 +02:00
55b0bf7c89 docs: add android app user guide 2026-07-07 07:23:52 +02:00
19 changed files with 416 additions and 2 deletions

418
README.md
View File

@@ -1,3 +1,417 @@
# bc-erp-android-releases # BC-ERP Android App
Public BC-ERP Android APK release assets Öffentliches Release-Repository für die BC-ERP Android-App. Dieses Repository enthält fertige APK-Dateien als Releases und diese bebilderte Anwenderdokumentation.
## Inhaltsverzeichnis
- [Zweck der App](#zweck-der-app)
- [Installation und Updates](#installation-und-updates)
- [Erster Start: Serveradresse einrichten](#erster-start-serveradresse-einrichten)
- [Login](#login)
- [Startseite und Sync](#startseite-und-sync)
- [Projekte](#projekte)
- [Zeiterfassung](#zeiterfassung)
- [Aufmaß](#aufmaß)
- [Materialbedarf](#materialbedarf)
- [Fotos](#fotos)
- [Profil und Monteur-Auswahl](#profil-und-monteur-auswahl)
- [Mehr und Abmelden](#mehr-und-abmelden)
- [Offline-Arbeiten und Sync-Status](#offline-arbeiten-und-sync-status)
- [Fehlerbehebung](#fehlerbehebung)
## Zweck der App
Die BC-ERP Android-App ist die Baustellen-App für Monteure und mobile Mitarbeiter. Sie wird auf der Baustelle genutzt, um projektspezifische Daten schnell und offlinefähig zu erfassen:
- aktive Projekte anzeigen
- Zeiten per Timer erfassen
- Zeiten manuell nachtragen
- Aufmaße zu Angebotspositionen oder manuell erfassen
- Materialbedarf melden
- Baustellenfotos aufnehmen oder aus der Galerie übernehmen
- lokale Änderungen synchronisieren
- Monteur-Profil für Zeitbuchungen auswählen
Die App ist für die tägliche Baustellennutzung optimiert. Sie speichert Eingaben lokal und synchronisiert diese mit dem BC-ERP Backend, sobald eine Verbindung verfügbar ist.
## Installation und Updates
Die APK wird über die Releases dieses Repositorys bereitgestellt.
### APK herunterladen
1. Auf dem Android-Gerät dieses Repository öffnen:
`https://git.bahmcloud.de/bahmcloud/bc-erp-android-releases`
2. Oben oder rechts den Bereich `Releases` öffnen.
3. Das neueste Release wählen, zum Beispiel `BC-ERP Android 1.0.11`.
4. Unter `Assets` die Datei `BC-ERP-Android-<version>.apk` herunterladen.
5. Nach dem Download die APK über die Download-Meldung, die Dateien-App oder den Browser-Download öffnen.
### Installation aus unbekannter Quelle erlauben
Da die App nicht über den Play Store installiert wird, fragt Android beim ersten Installieren nach einer Freigabe.
Je nach Gerät heißt die Einstellung zum Beispiel:
- `Aus dieser Quelle zulassen`
- `Unbekannte Apps installieren`
- `Installation unbekannter Apps erlauben`
Vorgehen:
1. APK öffnen.
2. Wenn Android blockiert, `Einstellungen` antippen.
3. Für den verwendeten Browser oder Dateimanager `Aus dieser Quelle zulassen` aktivieren.
4. Zurück zur APK gehen.
5. `Installieren` antippen.
Nach der Installation kann die Freigabe bei Bedarf wieder deaktiviert werden. Für spätere Updates muss sie eventuell erneut erlaubt werden.
### Erster App-Start
1. BC-ERP öffnen.
2. Serveradresse eintragen.
3. Mit Benutzerkonto anmelden.
4. Im Profil den Monteur prüfen oder auswählen.
5. Einmal `Sync` ausführen, damit Projekte und Monteure lokal verfügbar sind.
Die App prüft neue Releases automatisch. Wenn eine neuere APK verfügbar ist, wird sie heruntergeladen und anschließend zur Installation angeboten.
Wichtig:
- Updates werden ohne Play Store ausgeliefert.
- Die App installiert Updates nicht heimlich. Android zeigt vor der Installation eine Bestätigung an.
- Die Serveradresse wird beim ersten Start gesetzt und kann später über `Serveradresse ändern` neu gesetzt werden.
### Update installieren
Wenn die App ein Update findet:
1. Download abwarten.
2. Android-Benachrichtigung zum heruntergeladenen Update antippen.
3. Falls Android die Installation blockiert, Installation aus dieser Quelle erlauben.
4. Update installieren.
5. App wieder öffnen.
Die bestehenden lokalen App-Daten bleiben bei einem normalen Update erhalten. Bei einer kompletten Neuinstallation müssen Serveradresse und Login neu gesetzt werden.
## Erster Start: Serveradresse einrichten
Beim ersten Start fragt die App nach der Backend-Adresse. Diese Adresse verbindet die Android-App mit dem BC-ERP Server.
![Server-Setup](docs/android-app/server-setup-screen.png)
Vorgehen:
1. Backend-Adresse eintragen, zum Beispiel `http://192.168.178.50:3000`.
2. `Verbinden und speichern` antippen.
3. Die App prüft automatisch `/api/health`.
4. Bei erfolgreicher Verbindung öffnet sich der Login.
Hinweise:
- Die App ergänzt `/api` automatisch, wenn es fehlt.
- Bei einem Serverwechsel werden alte Login-Daten verworfen.
- Wenn die Verbindung fehlschlägt, zeigt die App die technische Ursache an, zum Beispiel Timeout oder HTTP-Fehler.
## Login
Nach der Servereinrichtung meldet sich der Benutzer mit E-Mail und Passwort an.
![Login](docs/android-app/login-screen.png)
Voraussetzungen:
- Der Benutzer muss im BC-ERP Backend existieren.
- Das Recht `App Login` muss in der Benutzerverwaltung aktiviert sein.
- Admin-Benutzer haben alle Rechte.
Funktionen:
- `Anmelden`: meldet den Benutzer an und speichert einen mobilen API-Schlüssel.
- `Serveradresse ändern`: öffnet das Server-Setup und löscht lokale Login-Daten.
- `Abmelden`: entfernt den gespeicherten Login.
Wenn der Login fehlschlägt, zeigt die App eine konkrete Meldung, zum Beispiel falsche Zugangsdaten, fehlendes App-Recht oder nicht erreichbarer Server.
## Startseite und Sync
Die Startseite zeigt den mobilen Arbeitsstand.
![Startseite](docs/android-app/03-start-sync.png)
Bereiche:
- `Meine Projekte`: Anzahl der lokal verfügbaren aktiven Projekte.
- `Schnellzugriff`: direkte Navigation zu Projekten, Zeiten, Fotos und Profil.
- `Sync`: startet eine manuelle Synchronisierung.
- `Letzter Sync`: Zeitpunkt des letzten Sync-Laufs.
- `lokal gespeichert`: Anzahl noch nicht synchronisierter lokaler Änderungen.
Der automatische Hintergrund-Sync läuft still. Der manuelle Sync lädt aktuelle Projektdaten und sendet lokale Änderungen.
## Projekte
Die Projektliste enthält aktive beauftragte Projekte und Projekte in Arbeit.
![Projektliste](docs/android-app/04-projekte.png)
Jede Projektkarte zeigt:
- Projekttitel
- Projektnummer
- Status, zum Beispiel `Beauftragt` oder `In Arbeit`
Durch Antippen öffnet sich die Projektdetailansicht.
![Projektdetail](docs/android-app/05-projekt-detail.png)
Von einem Projekt aus sind alle Baustellenfunktionen erreichbar:
- `Zeit erfassen`
- `Zeit nachtragen`
- `Zeiten anzeigen`
- `Foto aufnehmen`
- `Aufmaß erfassen`
- `Materialbedarf melden`
## Zeiterfassung
Die Zeiterfassung unterstützt zwei Arbeitsweisen: Timer und manueller Nachtrag.
### Timer
![Zeiterfassung Timer](docs/android-app/06-zeiterfassung-timer.png)
Vorgehen:
1. Projekt auswählen.
2. Optional Tätigkeit eintragen.
3. `START` antippen.
4. Nach Arbeitsende `STOPP` antippen.
Die App speichert die Zeit lokal und markiert sie als `PENDING`, bis sie synchronisiert wurde.
### Manuelle Zeit
![Zeiterfassung Manuell](docs/android-app/07-zeiterfassung-manuell.png)
Vorgehen:
1. Tab `Manuell` wählen.
2. Projekt auswählen.
3. Tätigkeit, Datum und Start/Ende oder Dauer eintragen.
4. `Zeit nachtragen` antippen.
Die Dauer kann direkt als Stundenwert eingegeben werden, zum Beispiel `1,5`. Alternativ berechnet die App die Dauer aus Start- und Endzeit.
### Zeiten anzeigen, bearbeiten und löschen
![Zeitenliste](docs/android-app/08-zeiten-liste.png)
Die Zeitenliste zeigt:
- Tätigkeit
- Projekt
- Datum
- Start- und Endzeit
- Dauer
- Sync-Status
Aktionen:
- `Bearbeiten`: öffnet die gespeicherte Zeitbuchung zur Korrektur.
- `Löschen`: entfernt eine lokale Buchung.
- `Aktualisieren`: synchronisiert und lädt aktuelle Daten.
## Aufmaß
Aufmaße können auf Basis vorhandener Angebotspositionen oder manuell erfasst werden.
![Aufmaßliste](docs/android-app/09-aufmass-liste.png)
Die Liste gruppiert Aufmaße nach Status:
- `Offen`: noch nicht abgerechnet
- `Abgerechnet`: bereits einer Rechnung zugeordnet
Jeder Eintrag zeigt Bezeichnung, Menge, Einheit, Positionstyp und Sync-Status.
### Aufmaß erfassen
![Aufmaß erfassen](docs/android-app/10-aufmass-erfassen.png)
Modus `Angebot`:
1. Angebotsposition auswählen.
2. Aufgemessene Menge eintragen.
3. Optional Notiz hinzufügen.
4. `Lokal speichern` antippen.
Modus `Manuell`:
1. Typ `Material` oder `Maschine` wählen.
2. Bezeichnung, Einheit und Menge eintragen.
3. Optional Einzelpreis und Notiz ergänzen.
4. Lokal speichern.
Die Daten werden offline gespeichert und beim nächsten Sync an BC-ERP übertragen.
## Materialbedarf
Materialbedarf erfasst benötigtes Material direkt aus der Baustelle.
![Materialbedarf](docs/android-app/11-materialbedarf.png)
Die Liste zeigt:
- Materialbeschreibung
- Menge und Einheit
- Notiz
- Sync-Status
### Materialbedarf melden
![Materialbedarf melden](docs/android-app/12-materialbedarf-melden.png)
Vorgehen:
1. Material eintragen.
2. Menge und Einheit wählen.
3. Optional Notiz ergänzen.
4. `Lokal speichern` antippen.
Der Bedarf wird lokal gespeichert und beim Sync an das Backend übertragen. Im Desktop kann der Bedarf weiterbearbeitet, bestellt, geliefert und einem Angebot zugeordnet werden.
## Fotos
Die App speichert Baustellenfotos projektbezogen und synchronisiert sie mit dem Backend.
![Fotoliste](docs/android-app/13-fotos.png)
Die Fotoliste zeigt:
- Vorschaubereich
- Titel
- Aufnahmedatum
- Sync-Status
Durch Antippen öffnet sich eine Detailansicht mit Bild, Titel, Beschreibung und Zeitpunkt.
### Foto aufnehmen oder auswählen
![Foto aufnehmen](docs/android-app/14-foto-aufnehmen.png)
Vorgehen:
1. Im Projekt `Foto aufnehmen` wählen.
2. `Foto aufnehmen` oder `Aus Galerie wählen` antippen.
3. Optional Titel und Beschreibung ergänzen.
4. `Lokal speichern` antippen.
Die App speichert das Foto zuerst lokal. Beim Sync wird das Bild als Upload an BC-ERP gesendet.
## Profil und Monteur-Auswahl
Im Profil wird der Monteur gewählt, auf den Zeitbuchungen laufen.
![Profil](docs/android-app/15-profil.png)
Vorgehen:
1. Monteur aus der Liste wählen.
2. `Speichern` antippen.
Hinweise:
- Die Monteurliste kommt aus dem Backend und wird offline zwischengespeichert.
- Ein Benutzer kann im Desktop einen Standardmonteur erhalten.
- Nach dem Login übernimmt die App den Standardmonteur automatisch, falls er hinterlegt ist.
## Mehr und Abmelden
Der Bereich `Mehr` zeigt kompakte Konto- und Statusinformationen.
![Mehr](docs/android-app/16-mehr.png)
Angezeigt werden:
- angemeldeter Benutzer
- Anzahl lokaler Änderungen
- Abmelden-Funktion
- App-Informationen
`Abmelden` löscht den gespeicherten Login und führt zurück zum Login.
## Offline-Arbeiten und Sync-Status
Die App ist offlinefähig. Eingaben werden zuerst lokal gespeichert und später synchronisiert.
Sync-Status:
- `⏳`: lokal gespeichert, noch nicht synchronisiert
- `✓`: erfolgreich synchronisiert
- `⚡`: Konflikt oder Sonderstatus
Offline gespeichert werden:
- Zeiten
- Aufmaße
- Materialbedarf
- Fotos
- Projekt- und Monteur-Cache
Bei wiederhergestellter Netzwerkverbindung startet die App automatisch einen Sync. Zusätzlich kann jederzeit manuell über `Sync` oder `Aktualisieren` synchronisiert werden.
## Fehlerbehebung
### App fragt nicht nach Serveradresse
Aktuelle Version installieren und bei Tests die App-Daten löschen oder die App neu installieren. Ab Version `1.0.10` wird Android-Backup für App-Einstellungen deaktiviert, damit alte Serverdaten nicht automatisch wiederhergestellt werden.
### Login klappt nicht
Prüfen:
- Serveradresse korrekt?
- Backend erreichbar?
- Benutzer aktiv?
- Passwort korrekt?
- App-Recht in der Benutzerverwaltung aktiviert?
### Projekte fehlen
Prüfen:
- Projektstatus ist `Beauftragt` oder `In Arbeit`.
- Benutzer ist online und kann synchronisieren.
- Einmal `Sync` auf der Startseite antippen.
### Zeiten können nicht erfasst werden
Prüfen:
- Im Profil ist ein Monteur ausgewählt.
- Projekt ist lokal verfügbar.
- Datum und Dauer sind korrekt gesetzt.
### Fotos werden nicht synchronisiert
Ab Version `1.0.11` werden Foto-Uploads wieder als echtes `multipart/form-data` gesendet. Wenn Fotos weiterhin ausstehen:
- Netzwerkverbindung prüfen.
- Serveradresse prüfen.
- Manuell `Sync` starten.
- Backend-Uploads-Verzeichnis prüfen.
### Update wird nicht installiert
Prüfen:
- Installation aus unbekannten Quellen für BC-ERP erlauben.
- Download-Benachrichtigung antippen.
- Genug Speicherplatz auf dem Gerät vorhanden?
## Release-Hinweis
Dieses Repository enthält nur öffentliche Release-Artefakte und Dokumentation. Der Quellcode des Hauptprojekts liegt nicht in diesem Repository.

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB