Application pour faciliter l'organisation de déjeuners entre consultants travaillant sur le même site client.
- Partage de présence éphémère : Position expire après 6h
- Mode confidentialité : PRECISE ou BUBBLE (zone approximative)
- Recherche de proximité : Trouver des collègues dans un rayon de 1-5 km
- Recommandations de restaurants : Noter et partager les bonnes adresses
- Organisation de meetups : Créer des invitations déjeuner
- Authentification Microsoft : Intégration Entra ID (Azure AD)
- Backend : Python FastAPI + SQLAlchemy + SQLite
- Frontend : Vue.js 3 + Nuxt 3 + MSAL
- Auth : Microsoft Entra ID avec validation JWT
- Déploiement : Docker Compose
- API externe : Google Places API (optionnel)
git clone https://github.com/votre-org/proximeet.git
cd proximeetcp .env.example .env
# Éditer .env avec vos clés Microsoft Entra IDdocker compose up --build- Frontend : http://localhost:3000
- Backend API : http://localhost:8000
- API Docs : http://localhost:8000/docs
docker compose exec backend python init_data.pyENTRA_TENANT_ID: ID du tenant Microsoft (ou "common")ENTRA_CLIENT_ID: ID de l'application Azure ADENTRA_AUDIENCE: Audience du token (souvent = CLIENT_ID)GOOGLE_PLACES_API_KEY: Clé API Google Places (optionnel)ALLOW_ANONYMOUS: Autoriser le mode anonyme (dev only)
NUXT_PUBLIC_MSAL_CLIENT_ID: ID de l'application Azure ADNUXT_PUBLIC_MSAL_TENANT_ID: ID du tenant MicrosoftNUXT_PUBLIC_MSAL_REDIRECT_URI: URI de redirection (http://localhost:3000)NUXT_PUBLIC_MSAL_SCOPES: Scopes demandés (User.Read par défaut)
GET /me- Infos utilisateur connectéGET /health- Status de l'API
POST /presence- Partager sa positionGET /presence/me- Ma position activeGET /nearby?radius_km=2- Collègues à proximité
GET /restaurants- Liste des restaurantsGET /restaurants/search?query=pizza- Recherche Google PlacesPOST /restaurants- Ajouter un restaurantPOST /restaurants/{id}/recommendations- Noter un restaurantGET /restaurants/{id}/recommendations- Voir les avis
POST /meetups- Créer un déjeunerGET /meetups?status=PENDING- Liste des meetupsPATCH /meetups/{id}- Mettre à jour le statut
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reloadcd frontend
npm install
npm run dev→ Configurer NUXT_PUBLIC_MSAL_CLIENT_ID dans .env
→ Partager d'abord votre position dans le dashboard
→ Vérifier que l'URL frontend est dans les origines autorisées
MIT - Voir LICENSE
Les PRs sont bienvenues ! Voir CONTRIBUTING.md pour les guidelines.
Développé avec ❤️ pour faciliter les déjeuners entre collègues