Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 01-getting-started/API_INTEGRATION_QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
```bash
cd identity-core-api
export JWT_SECRET=your-dev-secret-key-change-in-production
./gradlew bootRun --args='--spring.profiles.active=dev'
./mvnw spring-boot:run --args='--spring.profiles.active=dev'
```

Backend ready at: `http://localhost:8080`
Expand Down
10 changes: 5 additions & 5 deletions 01-getting-started/GETTING_STARTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Before running the mobile/desktop apps, ensure backend services are running:

```bash
# Navigate to project root
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS
cd path/to/FIVUCSAS

# Start all backend services
docker-compose up -d
Expand All @@ -63,7 +63,7 @@ docker-compose ps

```bash
# Navigate to mobile-app directory
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS\client-apps
cd path/to/FIVUCSAS/client-apps

# Build Debug APK
./gradlew :androidApp:assembleDebug
Expand Down Expand Up @@ -100,7 +100,7 @@ adb install -r androidApp\build\outputs\apk\debug\androidApp-debug.apk
#### Method A: Run in Development Mode

```bash
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS\client-apps
cd path/to/FIVUCSAS/client-apps

# Run desktop app
./gradlew :desktopApp:run
Expand Down Expand Up @@ -140,7 +140,7 @@ Output location:
#### Step 1: Generate Xcode Framework

```bash
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS\client-apps
cd path/to/FIVUCSAS/client-apps

# Install CocoaPods (if not installed)
sudo gem install cocoapods
Expand Down Expand Up @@ -176,7 +176,7 @@ open iosApp.xcworkspace

```bash
# Terminal 1: Start services
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS
cd path/to/FIVUCSAS
docker-compose up

# Verify services
Expand Down
4 changes: 2 additions & 2 deletions 01-getting-started/METRICS_COLLECTION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ SELECT pg_size_pretty(pg_relation_size('biometric_data_embedding_idx'));
```bash
# For Identity Core (Java/Spring Boot)
cd identity-core-api
./gradlew test jacocoTestReport
# Report generated at: build/reports/jacoco/test/html/index.html
./mvnw test jacoco:report
# Report generated at: target/site/jacoco/index.html

# For Biometric Processor (Python/FastAPI)
cd biometric-processor
Expand Down
4 changes: 2 additions & 2 deletions 02-architecture/BIOMETRIC_ENGINE_ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Version:** 2.0
**Date:** 2026-03-19
**Status:** Design Document (Pre-Implementation)
**Status:** Implemented (Phase 4 complete 2026-05-16)
**Source of Truth:** `biometric-processor/demo_local_fast.py` (2551 lines)

---
Expand Down Expand Up @@ -278,7 +278,7 @@ Nice to have. Server-side alternatives exist for all of these.
| Component | Responsibility | Server Fallback |
|-----------|---------------|-----------------|
| `PassiveLivenessDetector` | Texture/color/moire liveness scoring | Server-side liveness via `biometric-processor` is the primary authority. Client-side is supplementary. Gabor convolution is expensive; defer to Phase 3. |
| `EmbeddingComputer` | ONNX MobileFaceNet face embeddings | Server-side DeepFace embedding via REST API |
| `EmbeddingComputer` | ONNX face embeddings | Server-side DeepFace embedding via REST API. **Note:** MobileFaceNet was removed per ADR 0003 (2026-04-18); the active client path is geometry-512 (landmark-based fallback). |
| `CardDetector` | ONNX YOLO card detection | Server-side YOLO (current production path) |

---
Expand Down
4 changes: 2 additions & 2 deletions 02-architecture/MODULE_STRUCTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ graph TD

**Contains:**
- `src/main/java/` - Hexagonal Architecture implementation
- `src/main/resources/db/migration/` - Flyway migrations (6 versions)
- `src/main/resources/db/migration/` - Flyway migrations (60 versions)
- `src/test/` - JUnit 5 + Mockito tests

---
Expand Down Expand Up @@ -160,7 +160,7 @@ docs/
├── 05-testing/ # Testing guides
├── 06-deployment/ # Deployment guides
├── 07-status/ # Status reports
└── 99-archive/ # Historical documents
└── archive/ # Historical documents
```

---
Expand Down
6 changes: 1 addition & 5 deletions 02-architecture/diagrams/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,7 @@ Professional UML and PlantUML diagrams for the FIVUCSAS platform.
## Source Files

PlantUML source files:
- **[PLANTUML_DIAGRAMS.md](PLANTUML_DIAGRAMS.md)** - PlantUML diagrams part 1
- **[PLANTUML_DIAGRAMS_PART2.md](PLANTUML_DIAGRAMS_PART2.md)** - PlantUML diagrams part 2
- **[PLANTUML_DIAGRAMS_FIXED.md](PLANTUML_DIAGRAMS_FIXED.md)** - Fixed PlantUML diagrams
- **[PLANTUML_DIAGRAMS.md](PLANTUML_DIAGRAMS.md)** - PlantUML diagram sources

## Diagram Tools

Expand All @@ -68,8 +66,6 @@ These diagrams were created using:

These diagrams are referenced throughout the documentation:
- [Architecture Analysis](../ARCHITECTURE_ANALYSIS.md)
- [System Design](../SYSTEM_DESIGN_ANALYSIS_AND_DECISION.md)
- [Design Audit](../DESIGN_AUDIT_REPORT.md)

---

Expand Down
2 changes: 1 addition & 1 deletion 04-api/BACKEND_FRONTEND_INTEGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ cd identity-core-api
export JWT_SECRET=your-secret-key-here

# Run with development profile
./gradlew bootRun --args='--spring.profiles.active=dev'
./mvnw spring-boot:run --args='--spring.profiles.active=dev'
```

Backend will be available at: `http://localhost:8080`
Expand Down
6 changes: 3 additions & 3 deletions 04-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Interactive API documentation for FIVUCSAS services.
**Note:** Start the backend first:
```bash
cd identity-core-api
./gradlew bootRun
./mvnw spring-boot:run
```

### Biometric Service (FastAPI)
Expand All @@ -33,8 +33,8 @@ uvicorn app.main:app --reload --port 8001

## Reference Documentation

- **[SERVICES_OVERVIEW.md](SERVICES_OVERVIEW.md)** - Overview of service capabilities
- **[BACKEND_REVIEW.md](BACKEND_REVIEW.md)** - Backend code review
- **[SERVICES_OVERVIEW.md](../archive/2026-05-28/SERVICES_OVERVIEW.md)** - Service capabilities overview (archived Nov-2025 snapshot)
- **BACKEND_REVIEW.md** - Backend code review

### Implementation Guides
- **[backend-api/SPRINGDOC_SETUP.md](backend-api/SPRINGDOC_SETUP.md)** - SpringDoc OpenAPI setup for backend
Expand Down
10 changes: 6 additions & 4 deletions 04-api/backend-api/SPRINGDOC_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ dependencies {
}
```

**Note:** identity-core-api uses Maven (`./mvnw`), not Gradle.

**Test:**
```bash
./gradlew clean build
./mvnw clean package -DskipTests
# Should compile successfully
```

Expand Down Expand Up @@ -962,7 +964,7 @@ public class AuthResponse {
```bash
# Start the backend
cd identity-core-api
./gradlew bootRun
./mvnw spring-boot:run
```

**Access Points:**
Expand Down Expand Up @@ -1011,10 +1013,10 @@ Once implemented, you'll have:
**Solution:**
```bash
# Check if dependency is added
./gradlew dependencies | grep springdoc
./mvnw dependency:tree | grep springdoc

# Verify application starts
./gradlew bootRun | grep "Swagger"
./mvnw spring-boot:run | grep "Swagger"
```

### Issue: Endpoints not appearing
Expand Down
4 changes: 2 additions & 2 deletions 05-testing/HOW_TO_TEST_APPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ adb devices
**Terminal 1 - Identity Core API**
```bash
cd identity-core-api
./gradlew.bat bootRun
./mvnw spring-boot:run
# Should start on http://localhost:8080
```

Expand Down Expand Up @@ -409,7 +409,7 @@ cd mobile-app
**To test with full system:**
```bash
# Terminal 1
cd identity-core-api && ./gradlew.bat bootRun
cd identity-core-api && ./mvnw spring-boot:run

# Terminal 2
cd biometric-processor && venv\Scripts\activate && uvicorn app.main:app --reload --port 8001
Expand Down
8 changes: 4 additions & 4 deletions 05-testing/MOBILE_TESTING_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ netsh advfirewall firewall show rule name="FastAPI Biometric"

**Terminal 1 - Spring Boot:**
```powershell
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS\identity-core-api
.\gradlew.bat bootRun
cd path/to/FIVUCSAS/identity-core-api
./mvnw spring-boot:run
```

**Terminal 2 - FastAPI:**
```powershell
cd C:\Users\ahabg\OneDrive\Belgeler\GitHub\FIVUCSAS\biometric-processor
cd path/to/FIVUCSAS/biometric-processor
.\venv\Scripts\Activate.ps1
python -m uvicorn app.main:app --host 0.0.0.0 --port 8001
```
Expand Down Expand Up @@ -395,7 +395,7 @@ netsh advfirewall firewall add rule name="FIVUCSAS" dir=in action=allow protocol

# Start Spring Boot
cd identity-core-api
.\gradlew.bat bootRun
./mvnw spring-boot:run

# In another terminal - Start FastAPI
cd biometric-processor
Expand Down
8 changes: 4 additions & 4 deletions 05-testing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ Testing guides and test reports for FIVUCSAS.

- **[TESTING_GUIDE.md](TESTING_GUIDE.md)** - ⭐ Complete testing guide (908 lines)
- **[MOBILE_TESTING_GUIDE.md](MOBILE_TESTING_GUIDE.md)** - Mobile app testing
- **[BACKEND_TEST_REPORT.md](BACKEND_TEST_REPORT.md)** - Backend test results
- **[QUICKSTART_TEST.md](QUICKSTART_TEST.md)** - Quick testing guide
- **BACKEND_TEST_REPORT.md** - Backend test results
- **[TEST_QUICKSTART.md](TEST_QUICKSTART.md)** - Quick testing guide
- **[HOW_TO_TEST_APPS.md](HOW_TO_TEST_APPS.md)** - How to test applications

## Quick Test Commands

### Backend Tests
```bash
cd identity-core-api
./gradlew test
./gradlew test --tests "com.fivucsas.identity.*"
./mvnw test
./mvnw test -Dtest="com.fivucsas.identity.*"
```

### Mobile App Tests
Expand Down
20 changes: 6 additions & 14 deletions 06-deployment/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Deployment and operations guides for FIVUCSAS.
## Local Development

- **[START_ALL_SERVICES.md](START_ALL_SERVICES.md)** - How to start all services locally
- **[BACKEND_DAY_1_PLAN.md](BACKEND_DAY_1_PLAN.md)** - Backend setup plan
- **[BACKEND_NEXT_STEPS.md](BACKEND_NEXT_STEPS.md)** - Backend next steps
- **BACKEND_DAY_1_PLAN.md** - Backend setup plan
- **BACKEND_NEXT_STEPS.md** - Backend next steps

## Quick Start All Services

Expand All @@ -15,7 +15,7 @@ See [START_ALL_SERVICES.md](START_ALL_SERVICES.md) for detailed instructions.
### Start Backend API
```bash
cd identity-core-api
./gradlew bootRun
./mvnw spring-boot:run
# Access: http://localhost:8080
```

Expand All @@ -35,15 +35,7 @@ cd mobile-app

## Production Deployment

⚠️ Production deployment not yet configured. Coming soon.

**Planned Production Setup:**
- PostgreSQL database (replacing H2 in-memory)
- Redis cache and message queue
- Docker containers
- Kubernetes orchestration (optional)
- NGINX reverse proxy
- Monitoring and logging
Production is live on Hetzner CX43 via Docker Compose + Traefik (api.fivucsas.com). PostgreSQL with pgvector, Redis, and Loki/Grafana monitoring are all running.

## Environment Configuration

Expand All @@ -69,8 +61,8 @@ Operator runbooks live in the `infra/` repo at `/opt/projects/infra/RUNBOOK_*.md

| Runbook | Path | When to use |
|---------|------|-------------|
| **Disk capacity** | [`infra/RUNBOOK_DISK.md`](../../infra/RUNBOOK_DISK.md) | Before any `docker compose build --no-cache` on the Hetzner CX43 host; on `ENOSPC` alerts. Documents the 5 defence-in-depth layers (per-container log caps, journald cap, hourly disk-guard, daily sweep, weekly aggressive prune). |
| **Audit log partitioning (pg_partman V57)** | [`infra/RUNBOOK_AUDIT_LOG_PARTMAN.md`](../../infra/RUNBOOK_AUDIT_LOG_PARTMAN.md) | When applying or reasoning about Flyway V57. pg_partman with monthly partitions, premake=12, retention 24 months; fail-soft when extension missing (`RAISE WARNING + RETURN`). Includes explicit opt-out `ALTER DATABASE identity_core SET app.skip_partman_v57='on'`. |
| **Disk capacity** | [`infra/RUNBOOK_DISK.md`](https://github.com/Rollingcat-Software/FIVUCSAS/blob/master/infra/RUNBOOK_DISK.md) | Before any `docker compose build --no-cache` on the Hetzner CX43 host; on `ENOSPC` alerts. Documents the 5 defence-in-depth layers (per-container log caps, journald cap, hourly disk-guard, daily sweep, weekly aggressive prune). |
| **Audit log partitioning (pg_partman V57)** | [`infra/RUNBOOK_AUDIT_LOG_PARTMAN.md`](https://github.com/Rollingcat-Software/FIVUCSAS/blob/master/infra/RUNBOOK_AUDIT_LOG_PARTMAN.md) | When applying or reasoning about Flyway V57. pg_partman with monthly partitions, premake=12, retention 24 months; fail-soft when extension missing (`RAISE WARNING + RETURN`). Includes explicit opt-out `ALTER DATABASE identity_core SET app.skip_partman_v57='on'`. |
| **Disaster recovery** | `infra/RUNBOOK_DR.md` | Annual DR drill, or a real outage requiring restore from off-site backup. |
| **Flyway repair** | `infra/RUNBOOK_FLYWAY_REPAIR.md` | When `schema_history` is out of sync with the migrations on disk. |
| **Network** | `infra/RUNBOOK_NETWORK.md` | DNS, Traefik routing, firewall, VPN. |
Expand Down
4 changes: 2 additions & 2 deletions 06-deployment/START_ALL_SERVICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ pip install pydantic-settings
### ❌ "Cannot find JAR file"
```powershell
cd identity-core-api
.\gradlew.bat clean bootJar
./mvnw clean package -DskipTests
```

### ❌ Desktop app won't start
Expand Down Expand Up @@ -211,7 +211,7 @@ Once all running, access these URLs in browser:
All green? You're good to go! ✅

- [ ] Terminal 1 shows: "Tomcat started on port 8080"
- [ ] Terminal 2 shows: "Uvicorn running on http://0.0.0.0:8001"
- [ ] Terminal 2 shows: "Uvicorn running on `http://0.0.0.0:8001`"
- [ ] Terminal 3 shows desktop window
- [ ] `curl http://localhost:8080/api/v1/auth/health` works
- [ ] `curl http://localhost:8001/health` works
Expand Down
Loading
Loading