Application de découverte d'événements en temps réel - Version Beta
- Node.js 18+
- npm ou yarn
# Installer les dépendances
npm install
# Backend
cd backend
npm install-
Backend : Créer
backend/.env(voirbackend/.env.example)GOOGLE_SERVICE_ACCOUNT_KEY=./service-account.json GOOGLE_SPREADSHEET_ID=your_spreadsheet_id PORT=3001 CORS_ORIGIN=http://localhost:5173 IMGBB_API_KEY=your_imgbb_api_key # MapTiler (utilisé pour tiles + géocodage) MAPLIBRE_ACCESS_TOKEN=your_maptiler_token # Note: Mapbox n'est plus utilisé (migré vers MapTiler)
-
Frontend : Créer
.env.local(optionnel, mais recommandé pour Pexels)VITE_PEXELS_API_KEY=your_pexels_key VITE_MAPLIBRE_ACCESS_TOKEN=your_maplibre_token
Note :
.env.localest ignoré par git (voir.gitignore). Pour obtenir une clé Pexels gratuite : https://www.pexels.com/api/
./fomo/start.sh# Terminal 1 - Backend
cd backend
npm start
# Terminal 2 - Frontend
npm run devnpm run build├── src/ # Code source frontend (React + TypeScript)
│ ├── components/ # Composants React réutilisables
│ ├── contexts/ # Contextes React (Auth, Data, etc.)
│ ├── pages/ # Pages principales
│ ├── map/ # Composants de carte
│ ├── hooks/ # Hooks personnalisés
│ ├── utils/ # Utilitaires
│ └── styles/ # CSS (base, layout, components)
├── backend/ # API Express + Google Sheets
│ ├── controllers/ # Contrôleurs
│ ├── routes/ # Routes API
│ └── services/ # Services (géocodage, etc.)
└── dist/ # Build de production
- Frontend: React 18, TypeScript, Vite, MapLibre GL
- Backend: Express, Google Sheets API
- Maps: MapLibre GL, Mapbox Geocoding
- Storage: Google Sheets (temporaire, migration Firebase prévue)
- Backend README - Documentation API
- Scripts - Scripts de gestion
- Styles - Guide de styles CSS
Le bookmarklet permet d'extraire des événements Facebook et de les ajouter directement à FOMO.
- Ouvrir le fichier
public/bookmarklet.js - Modifier l'URL de l'API : Remplacer
API_BASE_URLpar votre URL de production (ex:https://votre-domaine.vercel.app/api) - Minifier le code (optionnel, pour réduire la taille)
- Créer un nouveau bookmarklet dans votre navigateur :
- Chrome/Edge:
chrome://bookmarks/→ Organiser → Ajouter une page - Firefox: Clic droit sur la barre de favoris → Nouveau favori
- Safari: Clic droit sur la barre de favoris → Ajouter un favori
- Chrome/Edge:
- Coller le code minifié dans l'URL du bookmarklet
- Ouvrir une page d'événement Facebook (ex:
facebook.com/events/...) - Cliquer sur le bookmarklet FOMO
- Entrer le mot de passe FOMO (configuré dans
FOMO_KEYcôté serveur) - Vérifier/modifier les données extraites dans le formulaire
- Cliquer sur "Envoyer"
Ajouter dans backend/.env :
FOMO_KEY=votre_mot_de_passe_secret- Ne jamais commiter
backend/service-account.jsonou.env - Tous les secrets doivent être dans les variables d'environnement
- Consultez
.gitignorepour la liste complète des fichiers exclus
Voir les règles du projet dans .cursor/rules/ pour :
- Guidelines CSS/React/TypeScript
- Workflow de développement
- Règles de commit/PR
Configuration Vercel dans vercel.json.
MIT