Skip to content

SebastienDestannes/ArcheoQuest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪨 ArchéoQuest

ArchéoQuest est une application mobile participative permettant d’identifier et de documenter des artefacts lithiques (silex, roches) à partir de photos et de données GPS. Les contributions des utilisateurs sont ensuite validées par des archéologues (ou reviewers), ce qui permet d’améliorer progressivement la qualité de la base de données et de gamifier la participation. Dans un deuxième temps du projet, une reconnaissance d'images sera implémentée à partir de la base de données créée pour faciliter le travail des archéologues en triant en amont les soumissions.


✨ Fonctionnalités principales

👤 Utilisateur

  • 📸 Capture de photos depuis l’appareil photo

  • 📍 Géolocalisation automatique de la découverte

  • 📴 Mode hors-ligne (stockage local + synchronisation automatique)

  • 📤 Téléversement des artefacts vers Supabase

  • 🏷️ Suivi du statut : pending, validated, rejected

  • ⭐ Système de points de contribution

  • 🔐 Authentification :

    • Email / mot de passe
    • Google OAuth (non fonctionnel - en cours)

🔬 Mode archéologue (Reviewer)

  • Bouton “Mode archéologue” visible uniquement aux reviewers

  • Liste des artefacts en attente de validation

  • Consultation des images en haute qualité

  • Validation ou rejet avec :

    • commentaires
    • attribution de points (5, 10, 15 ou 20)
  • Mise à jour atomique (artefact + points utilisateur)


🏗️ Architecture technique

📱 Frontend

  • Flutter (Android en priorité)
  • Gestion d’état : provider
  • Accès caméra : image_picker
  • GPS : geolocator
  • Détection réseau : connectivity_plus
  • Stockage hors-ligne : Hive

☁️ Backend

  • Supabase

    • Auth (email + Google OAuth)
    • PostgreSQL (RLS activé)
    • Storage (bucket artifacts, public pour le MVP)
    • Fonctions SQL (RPC) pour la validation archéologue

🗄️ Modèle de données (simplifié)

artifacts

Champ Type Description
id uuid Identifiant
user_id uuid Auteur
image_url text URL de l’image
latitude / longitude float Localisation
status text pending / validated / rejected
reviewer_id uuid Reviewer
review_comment text Commentaire
points int Points attribués
created_at timestamptz Date

profiles

Champ Type
id uuid
points int
role user / reviewer / admin

🔐 Sécurité & RLS (Supabase)

  • Storage

    • Bucket artifacts public (MVP)
    • Upload autorisé uniquement dans auth.uid()/
  • Database

    • Les utilisateurs ne voient que leurs artefacts
    • Les reviewers peuvent lire et mettre à jour les artefacts pending
  • Validation réalisée via une fonction SQL sécurisée (security definer)


🚀 Lancer le projet

Prérequis

  • Flutter SDK (stable)
  • Un projet Supabase configuré
  • Android Studio / device Android

Variables d’environnement

Lancer l’app avec :

flutter run \
  --dart-define=SUPABASE_URL=https://XXXX.supabase.co \
  --dart-define=SUPABASE_ANON_KEY=YOUR_ANON_KEY

🔑 Authentification Google

  • Google OAuth configuré côté Supabase (pas encore sur notre projet)
  • Redirect URI :
https://<project>.supabase.co/auth/v1/callback
  • Deep link Flutter :
archeoquest://login

📦 Structure du projet

lib/
├── main.dart
├── pages/
│   ├── auth_page.dart
│   ├── home_page.dart
│   └── review_page.dart
├── services/
│   ├── supabase_service.dart
│   └── offline_queue.dart
├── models/
│   └── artifact.dart

🧠 Vision & évolutions prévues

  • 🧠 Reconnaissance assistée (ML / IA)
  • 🗺️ Carte interactive des découvertes
  • 🏛️ Récompenses (musées, institutions)
  • 🧑‍🏫 Hiérarchie des reviewers
  • 📊 Statistiques et historique des validations
  • 🔒 Buckets privés + URLs signées
  • 📱 Version web (Flutter Web)

👥 Contributeurs

  • Conception & développement : Louna WARNIER, Élodie CULLIER, Virginie FUSTER et Sébastien DESTANNES
  • Projet réalisé dans une démarche éducative, scientifique et citoyenne pour le Hackathon de Tautavel 2025

📜 Licence

Projet en cours de développement — licence à définir.

About

Projet d'app pour le hackathon de Tautavel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors