- Add advanced filtering for events (price, attendance) - Add advanced filtering for halls (capacity, equipment) - Improve city extraction logic for better location parsing - Create comprehensive test suites for new features - Fix TypeScript errors in test files - Maintain responsive mobile-first design - All 107 unit tests + 24 E2E tests passing - Code formatting compliant with Prettier High Priority tasks completed: - Responsive Mobile Search UI - Advanced Search & Filter - Halls - Advanced Search & Filter - Events |
||
|---|---|---|
| .agent | ||
| .forgejo | ||
| .github/workflows | ||
| .husky | ||
| __tests__ | ||
| app | ||
| components | ||
| contexts | ||
| docs | ||
| hooks | ||
| lib | ||
| messages | ||
| prisma | ||
| public | ||
| scripts | ||
| tests | ||
| types | ||
| .commitlintrc.json | ||
| .dockerignore | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| calendar-page-debug.png | ||
| CHANGELOG.md | ||
| CI_CD_ANALYSIS.md | ||
| CI_CD_FIXED.md | ||
| eslint.config.mjs | ||
| events-page-debug.png | ||
| halls-page-debug.png | ||
| jest.config.js | ||
| jest.config.ts | ||
| jest.setup.ts | ||
| next.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.mjs | ||
| pre-commit | ||
| prisma.config.ts | ||
| README.md | ||
| signin-after-submit.png | ||
| signin-before-submit.png | ||
| signin-page-test.png | ||
| singleton.ts | ||
| tasks_analysis.txt | ||
| test-all-checks.js | ||
| test-format-2.js | ||
| test-format-3.js | ||
| test-format-4.js | ||
| test-format-5.js | ||
| test-format-6.js | ||
| test-format-7.js | ||
| test-format-husky.js | ||
| test-format.js | ||
| test_debug.txt | ||
| test_debug_2.txt | ||
| test_debug_coorg.txt | ||
| test_debug_coorg_utf8.txt | ||
| test_output.txt | ||
| test_output_2.txt | ||
| test_output_3.txt | ||
| test_output_4.txt | ||
| test_output_5.txt | ||
| test_output_6.txt | ||
| test_output_utf8.txt | ||
| tsconfig.json | ||
| UPDATE_SUMMARY.md | ||
Event Calendar
Plateforme web connectant les salles de concert et les amateurs de musique pour faciliter la découverte et la participation à des événements.
🚀 Quick Start
# Installation
npm install
# Setup base de données
npx prisma generate
npx prisma db push
# Lancer le serveur de développement
npm run dev
Ouvrir http://localhost:3000
📚 Documentation
- Backlog & Features Futures - Roadmap et features planifiées
- Workflows de Développement - Process et checklists
- Documentation Complète - Architecture, API, Features, Tests
✨ Fonctionnalités Principales
Pour les Utilisateurs
- 🎵 Découverte : Parcourir les salles de concert et événements
- 🔍 Recherche Avancée : Recherche textuelle, filtres par genre/date/ville, tri intelligent
- 👥 Social : Suivre les salles, participer aux événements, calendrier personnel
- 📅 Calendrier Personnel : Voir tous les événements avec 3 filtres
- Tous les événements disponibles
- Événements des salles suivies
- Événements auxquels vous participez
- ❤️ Suivi : Suivre ses salles préférées
- ✓ Participation : Confirmer sa présence aux événements
- 🌍 i18n : Interface en Français et Anglais
Pour les Organisateurs
- 🏛️ Gestion de Salles : Créer et gérer des salles de concert
- 👥 Multi-Managers : Ajouter des co-gestionnaires
- 🎭 Événements : Créer, éditer et supprimer des événements
- 📊 Dashboard : Vue d'ensemble des salles et événements gérés
Pour les Admins
- 👤 Gestion Utilisateurs : Voir, modifier rôles, supprimer utilisateurs
- 🔐 Contrôle d'Accès : Gestion des permissions
🛠️ Stack Technique
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Database: SQLite avec Prisma ORM
- Auth: NextAuth.js v4
- Styling: Tailwind CSS
- Testing: Jest + Playwright
- Validation: Zod
- i18n: Custom context avec messages FR/EN
📁 Structure du Projet
event-calendar/
├── app/ # Pages Next.js (App Router)
│ ├── api/ # API Routes
│ ├── calendar/ # Page calendrier personnel
│ ├── events/ # Gestion événements
│ ├── halls/ # Gestion salles
│ └── admin/ # Administration
├── components/ # Composants React réutilisables
│ ├── events/ # Composants événements (EventsSearchFilter)
│ ├── halls/ # Composants salles (HallsSearchFilter)
│ └── ui/ # Composants UI réutilisables
├── contexts/ # React Contexts (Language, etc.)
├── lib/ # Utilitaires, schemas Zod, middleware
├── messages/ # Traductions i18n (fr.json, en.json)
├── prisma/ # Schema DB et migrations
├── tests/ # Tests E2E Playwright
├── __tests__/ # Tests unitaires Jest
├── docs/ # Documentation complète
├── .agent/workflows/ # Workflows de développement
├── scripts/ # Scripts utilitaires
├── BACKLOG.md # Roadmap et features futures
└── travaux à effectuer # Tâches en cours
🧪 Tests
# Tests unitaires (88 tests passent)
npm test
# Tests unitaires avec couverture
npm test -- --coverage
# Tests E2E (18 tests E2E pour la recherche et filtrage)
npm run test:e2e
# Tests E2E spécifiques recherche/filtrage
npm run test:e2e -- search-and-filter-e2e.spec.ts
npm run test:e2e -- search-user-journeys.spec.ts
# Tests E2E avec interface
npm run test:e2e:headed
# Tous les tests
npm run test:all
# Nettoyage données de test
npm run cleanup:tests
📊 Couverture des Tests
- ✅ 88 tests unitaires passent
- 🎭 18 tests E2E pour la recherche et filtrage
- 🔍 Tests complets pour EventsSearchFilter et HallsSearchFilter
- 📱 Tests responsive et accessibilité
🔧 Commandes Utiles
# Développement
npm run dev # Serveur de dev
npm run build # Build production
npm run start # Démarrer production
# Database
npx prisma studio # Interface DB graphique
npx prisma migrate dev # Créer migration
npx prisma generate # Générer client Prisma
# Code Quality
npm run lint # Vérifier linting
npx tsc --noEmit # Vérifier TypeScript
# Tests
npm run cleanup:tests # Nettoyer données de test
🔄 Workflow de Développement
- Planification : Consulter
BACKLOG.mdet suivre/before-feature - Implémentation : Coder la feature
- Validation : Suivre
/after-feature(tests, i18n, docs) - Commit : Suivre
/pre-commit - Bugs : Suivre
/bug-fixsi besoin
Voir .agent/workflows/README.md pour plus de détails.
🔍 Feature : Recherche et Filtrage Avancé
Overview
Système complet de recherche et filtrage pour les événements et salles de concert avec interface moderne et performante.
Fonctionnalités
- Recherche textuelle : Titre, description, organisateur, lieu
- Filtres multi-critères : Date, genre, ville
- Tri intelligent : Pertinence, date, popularité, nom
- Interface responsive : Mobile, tablet, desktop
- Accessibilité complète : Navigation clavier, ARIA labels
Composants
EventsSearchFilter.tsx: Filtrage des événementsHallsSearchFilter.tsx: Filtrage des salles
Tests
- Unitaires : 17 tests complets
- E2E : 18 scénarios utilisateur
- Performance : < 300ms pour la recherche
Documentation
🌍 Internationalisation
L'application supporte le Français et l'Anglais.
- Fichiers de traduction :
messages/fr.jsonetmessages/en.json - Context :
LanguageContextdanscontexts/ - Hook :
useLanguage()pour les composants - Hook :
useTranslation()pour les pages
🔐 Authentification
- Mock Credentials en développement (NextAuth.js)
- Rôles :
USER,ORGANIZER,ADMIN - Session Management : Server-side avec cookies
📖 Documentation Détaillée
- Architecture - Design et structure
- API - Documentation des endpoints
- Features - Guides fonctionnels
- Tests - Stratégie et couverture
🤝 Contributing
- Consulter
BACKLOG.mdpour les features planifiées - Créer une branche
feature/nom-feature - Suivre les workflows dans
.agent/workflows/ - Créer une PR avec description claire
📝 License
Ce projet est privé et à usage éducatif.
🆘 Support
- Bugs : Suivre workflow
/bug-fix - Questions : Consulter
docs/ - Features : Ajouter dans
BACKLOG.md
Dernière mise à jour : 2024-11-24
EventCalendar
Projet de calendrier d'événements
Description
Ce projet permet de gérer et afficher des événements dans un calendrier.
Installation
npm install
npm start
Fonctionnalités
- Affichage calendrier mensuel
- Ajout/suppression d'événements
- Catégories d'événements
- Export vers iCal
Auteur
admin001
Configuration vérifiée
Test Forgejo Actions - mar. 25 nov. 2025 14:27:21 CET
Test runners - mar. 25 nov. 2025 14:30:45 CET
Test CI/CD EventCalendar - mar. 25 nov. 2025 16:23:44 CET
#<23> <20>P<EFBFBD>r<EFBFBD>e<EFBFBD>-<2D>c<EFBFBD>o<EFBFBD>m<EFBFBD>m<EFBFBD>i<EFBFBD>t<EFBFBD> <20>h<EFBFBD>o<EFBFBD>o<EFBFBD>k<EFBFBD> <20>t<EFBFBD>e<EFBFBD>s<EFBFBD>t<EFBFBD> <0A> <0A> /<2F>/<2F> <20>T<EFBFBD>e<EFBFBD>s<EFBFBD>t<EFBFBD> <20>p<EFBFBD>r<EFBFBD>e<EFBFBD>-<2D>c<EFBFBD>o<EFBFBD>m<EFBFBD>m<EFBFBD>i<EFBFBD>t<EFBFBD> <20>h<EFBFBD>o<EFBFBD>o<EFBFBD>k<EFBFBD> <0A> <0A>/<2F>/<2F> <20>@<40>t<EFBFBD>s<EFBFBD>-<2D>e<EFBFBD>x<EFBFBD>p<EFBFBD>e<EFBFBD>c<EFBFBD>t<EFBFBD>-<2D>e<EFBFBD>r<EFBFBD>r<EFBFBD>o<EFBFBD>r<EFBFBD> <20>-<2D> <20>T<EFBFBD>e<EFBFBD>s<EFBFBD>t<EFBFBD> <20>e<EFBFBD>r<EFBFBD>r<EFBFBD>o<EFBFBD>r<EFBFBD> <20>d<EFBFBD>e<EFBFBD>t<EFBFBD>e<EFBFBD>c<EFBFBD>t<EFBFBD>i<EFBFBD>o<EFBFBD>n<EFBFBD> <0A> <0A>