CredVerify is an AI-powered academic credential verification platform for Zimbabwe.
# CredVerify Mobile (team scanner)
Minimal Android app for the CredVerify team:
1. **Opens straight into scan** — document scanner launches automatically.
2. **Auto edge detection / capture** via `cunning_document_scanner`.
3. **Uploads the image to `POST /scan`** — nothing is saved on the phone (temp file deleted after upload).
4. **Shows API verdict** — Genuine, Suspicious, Likely Fake, or Unverifiable.
## Requirements
- Flutter SDK 3.2+
- Android device with camera
- CredVerify API base URL (when backend is live)
## Configure API URL
The API URL is set at **build time**:
```bash
flutter run --dart-define=CREDVERIFY_API_URL=
your-api.example.com
```
Release APK:
```bash
flutter build apk --release --dart-define=CREDVERIFY_API_URL=
your-api.example.com
```
Until the URL is set, the app shows **“Verification API not configured yet”**.
## API contract
Calls `POST {CREDVERIFY_API_URL}/scan` with `multipart/form-data` field `file` (JPEG/PNG).
Expects JSON with at least `status`: `genuine` | `suspicious` | `likely_fake` | `unverifiable`.
See the main CredVerify repo `API_DOCUMENTATION.md` §4.1 for the full response shape.
## Project layout
```
lib/
main.dart # App entry → ScanScreen only
config/api_config.dart # API base URL (dart-define)
models/scan_verdict.dart
services/
scanner_service.dart
verification_api.dart
screens/scan_screen.dart
```
## Run locally
```bash
cd credverify-mobile
flutter pub get
flutter run
```
## Team workflow
- Backend team hosts API and shares the production/staging base URL.
- Mobile team rebuilds with `--dart-define=CREDVERIFY_API_URL=...` and distributes the APK.
- No local database, settings, or document library in this app.