Skip to content

gianbattistabifulco/Humans

Repository files navigation

Humans - iOS App

CI License: MIT Platform Swift

App iOS open source per la segnalazione e ricerca di persone scomparse in Italia.

Perché è open source? L'app tratta dati sensibili (segnalazioni di persone scomparse, posizioni, foto). La trasparenza del codice permette ad autorità, ricercatori di sicurezza, associazioni anti-tratta e contributori indipendenti di verificare che il trattamento dei dati sia corretto, sicuro e rispettoso del GDPR. È lo stesso modello di Signal, Bitwarden e altri progetti che gestiscono dati sensibili.

Contributi

Bug, suggerimenti, traduzioni e PR sono benvenuti. Vedi CONTRIBUTING.md per il workflow di sviluppo.

Per vulnerabilità di sicurezza vedi SECURITY.mdnon aprire issue pubbliche per problemi di sicurezza.

📱 Requisiti

  • iOS 16.0+
  • Xcode 15.0+
  • Swift 5.9+

🔧 Setup

  1. Apri Humans.xcodeproj con Xcode
  2. Configura il tuo Team in Signing & Capabilities
  3. Verifica che GoogleService-Info.plist sia presente
  4. Build e Run

Configurazione Firebase

  1. Crea un progetto su Firebase Console
  2. Abilita i seguenti servizi:
    • Firestore Database
    • Firebase Storage
    • Cloud Messaging
    • Crashlytics
    • Analytics
  3. Scarica GoogleService-Info.plist e aggiungilo al progetto

Configurazione Push Notifications

  1. Crea un certificato APNs su Apple Developer
  2. Carica il certificato su Firebase Console > Cloud Messaging
  3. Abilita "Push Notifications" nelle Capabilities del progetto

🏗️ Architettura

L'app segue il pattern MVVM con i seguenti componenti:

Humans/
├── App/                    # Entry point e AppDelegate
├── Models/                 # Data models
├── Views/                  # SwiftUI Views
│   ├── Main/              # Tab principale
│   ├── Map/               # Mappa interattiva
│   ├── List/              # Lista persone
│   ├── Detail/            # Dettaglio persona
│   ├── Report/            # Segnalazioni
│   ├── Alerts/            # Notifiche e alert
│   ├── Settings/          # Impostazioni
│   ├── Onboarding/        # Primo avvio
│   └── Shared/            # Componenti condivisi
├── Services/              # Business logic
│   ├── Firebase/          # Firestore & Storage
│   ├── Location/          # CoreLocation
│   ├── Notifications/     # Push notifications
│   ├── Geocoding/         # Address <-> Coordinates
│   ├── Analytics/         # Event tracking
│   ├── Crashlytics/       # Error reporting
│   ├── AppReview/         # StoreKit review
│   ├── Alerts/            # Alert management
│   ├── Sightings/         # Sightings management
│   ├── Network/           # Error handling & retry
│   ├── Offline/           # Offline cache
│   ├── Geofencing/        # Location-based alerts
│   └── Sharing/           # Social sharing
├── Utilities/             # Helper utilities
│   ├── Accessibility/     # VoiceOver support
│   ├── Appearance/        # Theme management
│   └── PDF/               # Poster generation
└── CoreData/              # Local persistence

✨ Funzionalità

Core

  • Mappa interattiva con pin per ogni persona scomparsa
  • Lista filtrata per data, nome, località
  • Segnalazioni avvistamenti con foto e posizione
  • Report nuove persone scomparse (con moderazione)
  • Notifiche push per nuovi casi e aggiornamenti
  • Generazione poster PDF per condivisione

Robustezza

  • Modalità offline con cache locale e sync automatico
  • Retry automatico per errori di rete con exponential backoff
  • Geofencing notifiche basate sulla posizione geografica
  • Queue offline per segnalazioni senza connessione

Social

  • Condivisione avanzata su WhatsApp, Telegram, Twitter, Facebook
  • Deep links per condivisione persona specifica
  • Generazione hashtag automatici per piattaforme social

Utente

  • Dashboard statistiche con punteggi e badge
  • Cronologia segnalazioni con filtri e ricerca
  • Sistema livelli da Nuovo Utente a Eroe

UI/UX

  • Dark mode supportata
  • Accessibilità completa (VoiceOver)
  • GDPR compliant con export/delete dati
  • Onboarding guidato per nuovi utenti

📦 Dipendenze

Gestite tramite Swift Package Manager:

  • Firebase iOS SDK
  • Firebase Analytics
  • Firebase Messaging
  • Firebase Firestore
  • Firebase Storage
  • Firebase Crashlytics

📋 Documentazione

Nella cartella Docs/ trovi:

  • FIREBASE_SECURITY_RULES.md - Regole di sicurezza per Firestore e Storage
  • PRIVACY_POLICY.md - Privacy Policy GDPR compliant
  • TERMS_OF_SERVICE.md - Termini e Condizioni d'uso
  • PRE_LAUNCH_CHECKLIST.md - Checklist completa pre-pubblicazione

🧪 Testing

Il progetto include unit tests per i servizi critici:

# Run tests
xcodebuild test -project Humans.xcodeproj -scheme Humans -destination 'platform=iOS Simulator,name=iPhone 15'

🚀 Build per Produzione

Pre-lancio Checklist

  • Rimuovi/verifica codice debug (già wrappato in #if DEBUG)
  • Verifica URLs: Privacy Policy, Terms, Support
  • Aggiungi App Store ID in AppReviewService.swift
  • Testa su device fisico (APNs richiede device reale)
  • Verifica tutti i permessi in Info.plist

Build Archive

  1. Seleziona schema: Humans
  2. Seleziona destinazione: Any iOS Device (arm64)
  3. Product > Archive
  4. Distribuisci tramite App Store Connect

App Store Assets Necessari

  • App Icon 1024x1024 (già inclusa)
  • Screenshots per tutti i device sizes
  • Video preview (opzionale)
  • Descrizione app
  • Keywords per ASO

🔒 Privacy & GDPR

L'app è progettata per essere conforme al GDPR:

  • Privacy Policy linkata nelle impostazioni
  • Export dati utente in formato JSON
  • Cancellazione completa dati utente
  • Permessi richiesti con spiegazioni chiare
  • Crash reporting opt-out disponibile

📄 Licenza

Distribuito sotto MIT License. Vedi LICENSE per il testo completo.

Copyright © 2026 Gianbattista Bifulco. Puoi liberamente usare, modificare e distribuire il codice, anche commercialmente, a patto di mantenere la nota di copyright e la licenza nel codice derivato.

Il marchio "Humans" della Rai è proprietà dei rispettivi titolari e non è incluso nella licenza MIT.

About

Humans — App iOS open source per la segnalazione e ricerca di persone scomparse in Italia

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages