1f5a9105fa9404bec69ff89eb17b3e918f56faed
- Add setTimeout, globalThis, navigator, fetch, caches etc to ESLint globals - Use Number.parseFloat in event-map.js - Add for attribute to admin events search label - Add tests: events search, toggle/delete access denied for other user Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix ESLint globals, parseFloat to Number.parseFloat, label for, add AccountController coverage tests
Fix ESLint globals, parseFloat to Number.parseFloat, label for, add AccountController coverage tests
Fix ESLint globals, parseFloat to Number.parseFloat, label for, add AccountController coverage tests
Fix ESLint globals, parseFloat to Number.parseFloat, label for, add AccountController coverage tests
E-Ticket
Plateforme destinee aux associations pour la vente de tickets evenementiels, la reservation de tables, l'organisation de brocantes et le vote en ligne.
Stack technique
| Composant | Technologie |
|---|---|
| Backend | Symfony 8 / PHP 8.4 |
| Base de donnees | PostgreSQL 16 |
| Cache / Queue | Redis 7 |
| Async | Symfony Messenger |
| Frontend | Bun / Vite / Tailwind CSS |
| Serveur web | Caddy |
| Amazon SES | |
| DNS / CDN | Cloudflare |
| Deploiement | Ansible / Gitea Actions |
Architecture
Developpement
| Service | Port |
|---|---|
| Caddy (web) | localhost:8000 |
| Vite (HMR) | localhost:5173 |
| PostgreSQL | localhost:5432 |
| Redis | localhost:6379 |
| Mailpit (SMTP) | localhost:1025 |
| Mailpit (UI) | localhost:8025 |
| RedisInsight | localhost:5540 |
Production
- 2x PHP-FPM (load balancing via Caddy)
- PostgreSQL master / slave (replication)
- PgBouncer (connection pooling)
- 2x Messenger workers
- Redis
- Caddy installe sur la machine hote
Prerequis
- Docker & Docker Compose
- Make
Installation
# Build les images
make build_dev
# Lance les containers
make start_dev
# Install les dependances
make install_dev
Commandes disponibles
make help
| Commande | Description |
|---|---|
make build_dev |
Build les images Docker dev |
make build_prod |
Build les images Docker prod |
make start_dev |
Lance les containers dev |
make start_prod |
Lance les containers prod (background) |
make stop_dev |
Arrete les containers dev |
make stop_prod |
Arrete les containers prod |
make purge_dev |
Arrete et purge tout (volumes, images) |
make install_dev |
Install les dependances via Docker |
make install_prod |
Install les dependances et build les assets |
make migration_dev |
Genere une migration |
make migrate_dev |
Execute les migrations en dev |
make migrate_prod |
Execute les migrations en prod |
Base de donnees
Dev
| Param | Valeur |
|---|---|
| Host | localhost |
| Port | 5432 |
| Database | e-ticket |
| User | app |
| Password | secret |
Prod
PostgreSQL master/slave avec PgBouncer. Replication streaming asynchrone.
Deploiement
Le deploiement se fait via Gitea Actions (declenchement manuel) + Ansible.
# Deployer la config Caddy
ansible-playbook -i ansible/hosts.ini ansible/deploy-caddy.yml --ask-vault-pass
Mode maintenance
Pour activer la maintenance :
touch /var/www/e-ticket/public/.update
Pour desactiver :
rm /var/www/e-ticket/public/.update
Licence
Licence proprietaire. Voir LICENSE.md.
Description
Languages
PHP
59.3%
Twig
31.5%
JavaScript
6.3%
Shell
1%
SCSS
0.6%
Other
1.3%