Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
Mobile & (progressive) web app for sharing and planning short stays or travels among friend. Regroups al functionnalities usually scattered among different apps. Travel plans and ideas, shared budget (groceries, travels fees, cars managements, etc.), meals planifications and so on.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Planerz - App mobile voyage entre amis Application Flutter multiplateforme (Android, iOS, Web) pour centraliser la gestion d'un voyage entre amis: • covoiturage • courses • planification des repas • partage des depenses • suggestion et planification d'activtés • informations pratiques • messagerie Offrir un seul espace collaboratif pour preparer et suivre un voyage de groupe sans jongler entre plusieurs applis.README 전문 보기 ↗
Application Flutter multiplateforme (Android, iOS, Web) pour centraliser la gestion d'un voyage entre amis:
Offrir un seul espace collaboratif pour preparer et suivre un voyage de groupe sans jongler entre plusieurs applis.
<flutter>/bin au PATH.jbr).npm), puis la Firebase CLI:
npm install -g firebase-tools...\Android Studio\jbr).JAVA_HOME -> chemin du JDK sans \bin (ex: C:\Program Files\Android\Android Studio\jbr)%JAVA_HOME%\bin au PathC:\Users\<ton-user>\AppData\Local\Pub\Cache\bin au Path (pour flutterfire)flutter --version
dart --version
java -version
firebase --version
Verification complementaire recommandee sous Windows (utile si Gradle ne trouve pas Java):
echo $env:JAVA_HOME
where.exe java
java -version
Si where.exe java ne retourne rien:
JAVA_HOME pointe bien vers le dossier JDK (pas ...\jbr\bin)%JAVA_HOME%\bin est present dans Pathgit clone <url-du-repo> Planerz
cd Planerz
flutter pub get
firebase login
dart pub global activate flutterfire_cli
Si flutterfire n'est pas reconnu, utiliser:
dart pub global run flutterfire_cli:flutterfire --version
Dans la console Firebase:
planerz)google-services.jsonDepuis android/:
./gradlew signingReport
.\gradlew signingReport
debug..jks) (release), utiliser keytool:keytool -list -v -keystore ".\planerz-keystore.jks" -alias "planerz"
Si tu ne connais pas l'alias du keystore:
keytool -list -keystore ".\planerz-keystore.jks"
google-services.json apres ajout des fingerprints, puis le placer selon le flavor:
android/app/src/preview/google-services.json pour --flavor previewandroid/app/src/prod/google-services.json pour --flavor prodGoogleService-Info.plistGoogleService-Info.plist depuis l'app iOS Firebase.ios/Runner/GoogleService-Info.plist.ios/Runner/Info.plist contient CFBundleURLTypes avec le REVERSED_CLIENT_ID.Ne pas utiliser une config unique (lib/firebase_options.dart) pour ce projet:
on maintient explicitement deux fichiers:
lib/firebase_options_preview.dartlib/firebase_options_prod.dartDepuis la racine du projet, lancer les deux commandes suivantes:
dart pub global run flutterfire_cli:flutterfire configure --project=planerz-preview --out=lib/firebase_options_preview.dart --android-package-name=fr.centuryspine.planerz.preview --ios-bundle-id=fr.centuryspine.planerz.preview --yes
dart pub global run flutterfire_cli:flutterfire configure --project=planerz --out=lib/firebase_options_prod.dart --android-package-name=fr.centuryspine.planerz --ios-bundle-id=fr.centuryspine.planerz --yes
Notes importantes:
planerz-preview vs planerz) et regenerer les options pour recuperer les bons appId/apiKey.android/app/src/preview/google-services.jsonandroid/app/src/prod/google-services.jsonflutter clean
flutter pub get
flutter run -d windows
Flux de test minimal:
trips)users/{uid})Le depot est configure pour parler aux emulateurs Auth, Firestore, Cloud Functions et Storage sur ta machine, uniquement quand tu compiles la cible preview avec le flag Dart USE_FIREBASE_EMULATOR=true (voir lib/core/firebase/firebase_emulator_wiring.dart). Les ports correspondent a firebase.json :
| Service | Port |
|---|---|
| Auth | 9099 |
| Firestore | 8080 |
| Functions | 5001 |
| Storage | 9199 |
| Emulator UI | 4000 |
Depuis la racine du repo, apres cd functions + npm install :
firebase emulators:start
Avec sauvegarde de l’etat entre deux sessions (dossier local, a ne pas commiter tel quel si tu y mets des donnees sensibles) :
firebase emulators:start --import=.\emulator-data --export-on-exit=.\emulator-data
--import / --export-on-exit : au prochain arret des emulateurs, les donnees Firestore / Auth / Storage locales sont en general perdues (comportement par defaut en memoire).emulator-data a la fermeture et recharge au demarrage suivant (creer le dossier ou faire un premier run avec export si besoin). Le depot ignore emulator-data/ et firestore-debug.log dans .gitignore pour eviter des commits accidentels.L’Emulator UI : http://127.0.0.1:4000/.
Exemple (Web) :
flutter run -d chrome -t lib/main_preview.dart --dart-define=USE_FIREBASE_EMULATOR=true --web-port=47432
10.0.2.2 pour joindre la machine (voir FirebaseEmulatorWiring).--dart-define=FIREBASE_EMULATOR_HOST=192.168.1.10.Si tu demarres seulement une partie des services, la CLI peut avertir que les appels vers les services non demarres (ex. Pub/Sub, Hosting, Realtime Database, etc.) peuvent encore partir vers la vraie infrastructure du projet configure dans firebase.json / FIREBASE_CONFIG. Verifie toujours le bandeau de demarrage et ne melange pas comptes / donnees prod par megarde.
Les extensions et le Pub/Sub emulateur ne sont pas dans la config courante : certaines fonctions planifiees (ex. cleanup dependant de Pub/Sub) peuvent etre ignorees en local tant que l’emulateur correspondant n’est pas lance.
firebase-debug.log (racine) : log CLI Firebase.firestore-debug.log : log de l’emulateur Firestore (souvent cree au demarrage Firestore).Le runtime de l’emulateur Functions remplace admin.firestore par une fonction liee avec .bind(), ce qui fait disparaitre les proprietes statiques comme FieldValue sur admin.firestore. En consequence, le code des fonctions doit utiliser FieldValue via require('firebase-admin/firestore') (comme dans functions/index.js), sinon certains appels (ex. arrayUnion) echouent uniquement en emulateur alors que le deploy preview / prod fonctionne. Contexte detaille : conversation agent Cursor e687cf9b-cf83-417b-8ace-c912944da8d8.
Cette app utilise une Cloud Function pour generer les metadonnees de preview (linkPreview) a partir de trips/{tripId}.linkUrl.
firebase login
cd functions
npm install
cd ..
Depuis la racine du repo:
firebase deploy --only functions --project planerz
Au premier deploy, Firebase peut demander une politique de retention des images de conteneur (Artifact Registry). Recommandation: 30 jours.
linkUrl.trips/{tripId}), verifier le champ linkPreview:
status: "loading" puis status: "ok" (ou empty / error)title, description, siteName, imageUrl, fetchedAtSi tu modifies functions/index.js:
firebase deploy --only functions --project planerz
Voir le dossier docs/:
docs/product_scope.mddocs/firebase_data_model.mddocs/roadmap.mdCe projet est distribue sous licence GNU AGPL v3 (ou version ulterieure).
Voir le fichier LICENSE.