Application de tracking de films et séries avec fonctionnalités sociales.
- Frontend : React, TypeScript, Vite
- Backend : Symfony, PHP 8.3, Doctrine ORM
- Base de données : MySQL 8.0
- Authentification : JWT (LexikJWT) via cookies httpOnly
- API externe : The Movie Database (TMDB)
- Infrastructure : Docker Compose (PHP-FPM, Nginx, MySQL, phpMyAdmin)
- Docker et Docker Compose installés
- Un compte TMDB pour obtenir une clé API (https://www.themoviedb.org/settings/api)
git clone https://github.com/thomasr10/TimeLapse.git
cd TimeLapseCréer un fichier .env à la racine du projet avec les variables suivantes :
MYSQL_ROOT_PASSWORD=your_root_password
MYSQL_DATABASE=timelapse
MYSQL_USER=timelapse_user
MYSQL_PASSWORD=your_passwordCréer un fichier server/.env.local (ou adapter server/.env) avec a minima :
DATABASE_URL="mysql://timelapse_user:your_password@database:3306/timelapse?serverVersion=8.0"
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=your_jwt_passphraseCréer un fichier client/.env avec :
VITE_API_BASE_URL=http://localhost:8080/api
VITE_TMDB_BASE_URL=https://api.themoviedb.org/3
VITE_TMDB_TOKEN=your_tmdb_bearer_token
VITE_API_IMAGE_BASE_URL=https://image.tmdb.org/t/p/docker exec -it timelapse-php-1 bash
cd /var/www/server
composer install
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migratedocker compose run --rm php php bin/console lexik:jwt:generate-keypairdocker compose up -d --build| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Backend (API) | http://localhost:8080 |
| phpMyAdmin | http://localhost:8081 |
Backend (PHPUnit)
docker exec -it timelapse-php-1 php bin/phpunitFrontend (Vitest)
cd client
npx vitest runTimelapse/
├── client/ # Application React
├── server/ # Application Symfony
├── docker/ # Dockerfiles (PHP, Nginx)
├── .github/ # CI
├── docker-compose.yml
└── README.md