Application pour les groupes de partage Essentiel.
Cette application est développée et maintenue bénévolement pour la paroisse Sainte Madeleine des Charpennes de Villeurbanne.
Cette application est basée sur le kit de développement Flutter, dans le but de faciliter le développement et d'être multi-plateforme.
Les listes de questions et de catégories affichées dans le jeu proviennent de la feuille de calcul disponible ici.
L'application est également disponible en version web, accessible directement depuis votre navigateur sans installation :
Plateformes supportées:
- Mobile : iOS Safari 17.2+, Chrome Mobile, Firefox Mobile
- Desktop : Chrome 120+, Firefox 121+, Safari 17.2+, Edge 120+
- Tablette : Optimisé pour les tailles d'écran intermédiaires
Fonctionnalités:
- ✅ Toutes les fonctionnalités de l'application mobile
- ✅ Responsive design adapté aux mobiles, tablettes et ordinateurs
- ✅ Support des gestes tactiles sur mobile (swipe, tap, pull-to-refresh)
- ✅ Support de la souris et du clavier sur desktop
- ✅ Mode hors ligne avec mise en cache des cartes
- ✅ Installation en tant que PWA (Progressive Web App)
Déploiement local:
Pour tester l'application web en local avec le backend API :
# 1. Démarrer les services backend et frontend avec Docker Compose
docker compose -f compose.yaml -f compose-dev.yaml up --build
# L'application web sera accessible sur http://localhost:8080Configuration:
- Frontend : Nginx servant l'application Flutter web compilée
- Backend API : Serveur Go sur port interne, proxyfié par Nginx
- Redis : Cache pour les données Google Sheets
Pour les développeurs:
- Guide de test web : docs/testing-web.md
- Documentation backend API : backend-api/README.md
- Configuration environnement : Voir
.env.examplepour les variables requises
Le projet inclut désormais une API backend qui sert de proxy sécurisé pour accéder aux données Google Sheets depuis l'application web.
# Copier le fichier de configuration d'environnement
cp .env.example .env
# Éditer .env avec vos identifiants Google Service Account
# - BACKEND_API_IMAGE: Image Docker à utiliser (optionnel, par défaut: ghcr.io/lemra-org/essentiel-backend-api:latest)
# - GOOGLE_SERVICE_ACCOUNT_JSON: JSON complet du compte de service
# - GOOGLE_SPREADSHEET_ID: ID de la feuille de calcul
# Démarrer tous les services (télécharge l'image depuis ghcr.io)
docker-compose up -d
# Voir les logs
docker-compose logs -f backend-api
# Arrêter les services
docker-compose downNote: Docker Compose utilise l'image pré-construite depuis GitHub Container Registry (ghcr.io), publiée automatiquement par la CI/CD. Aucune construction locale n'est nécessaire.
L'API backend sera accessible sur http://localhost:8080 avec les endpoints:
GET /api/categories- Liste des catégoriesGET /api/questions- Liste des questionsGET /healthz- Vérification de santé
Voir backend-api/README.md pour plus de détails sur l'API backend.
- Installer Flutter:
- soit conformément aux instructions officielles disponibles sur cette page
- soit, si vous utilisez le gestionnaire de versions
asdf, à l'aide de cette commande:asdf install
- Installer les outils nécessaires pour Flutter (comme le SDK Android)
- Créer un project Google Cloud ainsi qu'un compte de service (utiles pour accéder aux APIs de Google pour lire la feuille de calcul qui sert de base de données). Plus de détails dans cet article "How to Get credentials for Google Sheets" (en anglais). Les identifiants de ce compte de service serviront ensuite à créer un "environnement" de build dédié, comme indiqué ci-après.
- Préparer l'environnement (ignorer pour utiliser le mode de développement par défaut - cf. fichier
lib/environments/dev.dart). Pour utiliser d'autres identifiants de compte de service, il suffit de créer un "environnement" dédié dans un nouveau fichier à placer dans le dossierlib/environments; par exemple:lib/environments/staging.dart:
import 'package:essentiel/env.dart';
void main() => Staging().init();
class Staging extends Env {
final String saEmail = "Service Account Email Address";
final String saId = "Service Account ID";
final String saPK = "Fill Service Account Private Key";
}- Connecter un périphérique (virtuel ou physique) à l'ordinateur, puis lancer la commande
flutter run [-t lib/environments/<mon_environnement.dart>]
flutter run [-t lib/environments/<mon_environnement.dart>]Le Play Store Google recommande la publication d'App Bundles pour optimiser le téléchargement des apps par les utilisateurs. Pour créer un App Bundle, lancer la commande ci-après:
flutter build appbundle [-t lib/environments/<mon_environnement.dart>]À la fin de cette opération qui ne dure que quelques minutes, un fichier build/app/outputs/bundle/release/app-release.aab devrait être créé.
Ce fichier devra ensuite être publié via l'interface Web du Google Play Store.
Instructions à venir...
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

