🔗 Live Case Study | WITI Ecosystem
WITI Field (codename: NOUR) is the specialized professional mobile ecosystem developed for the Regional Council of Bailiffs (Court of Appeal of Tetouan, Morocco).
Currently in live field-testing, it bridges the gap between official judicial missions and modern high-trust digital documentation.
WITI Field is built with a Feature-Driven Architecture (FDA) and Clean Architecture principles, prioritizing high reliability and auditable code.
- State Management: Riverpod with Code Generation (
riverpod_generator) for a precise, typed, and reactive state. - Dependency Injection: Modular provider-based DI, enabling seamless mocking and unit testing of business logic.
- Storage Strategy: Local-first caching with SQLite/Isar for offline field durability, synced with Supabase Real-time via Row-Level Security (RLS).
- Hardware Integration: Custom camera flows, GPS anti-spoofing, and Google ML Kit Document Scanner for high-integrity capture.
/features: Domain-specific logic (Missions, Identity, Acts, Notifications)./core: Shared infrastructure, themes, and cross-cutting utilities./services: Supabase listeners, Location handlers, and OCR connectors./providers: High-level state managers and data flow orchestrators.
- Field Authentication: Deep integration with WITI Governance for authenticated mission assignment.
- Evidence Verification: Real-time integration with WITI Certify (QRPRUF) protocols for cryptographic proof of presence.
graph TD
A[UI Layer - Flutter] --> B[Domain Layer - Business Logic]
B --> C[Data Layer - Repository Pattern]
C --> D[(Local DB - Offline First)]
C --> E[Remote - Supabase RLS Protected]
subgraph "Modular Feature Architecture"
B
C
end
Live field deployment — Regional Council of Bailiffs, Court of Appeal of Tetouan, Morocco.
| Dark Mode | Light Mode | News & Activity |
|---|---|---|
![]() |
![]() |
![]() |
| Intervention Form | Subject & Reference | GPS Proof |
|---|---|---|
![]() |
![]() |
![]() |
| Bailiff Directory | Regional Council | Legal Library |
|---|---|---|
![]() |
![]() |
![]() |
| Dark Mode | Light Mode |
|---|---|
![]() |
![]() |
- Flutter SDK (Stable)
- Dart VM
- Supabase CLI
- Clone the repository:
git clone https://github.com/sanadidari/nour.git cd nour - Install dependencies:
flutter pub get
- Generate code (Riverpod & Freezed):
dart run build_runner build --delete-conflicting-outputs
- Run the app:
flutter run
- Automated Testing: Unit tests for domain logic located in
test/. - CI/CD Pipeline: Configured via GitHub Actions for automated static analysis (Lints) and test verification.
Part of the WITI Ecosystem. License: MIT License.
Developed by @sanadidari - Senior Full-Stack Engineer | Founder of Sanadidari SARL










