Skip to content

MaxGsprd/quizz-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Quizz API — REST API Symfony / API Platform

Symfony PHP MySQL JWT Swagger

🎓 Projet noté — Titre RNCP niveau 6 Concepteur Développeur d'Applications (Bac+3/4)
Aston École Informatique — 2021


📋 Contexte

API REST conçue et développée de A à Z dans le cadre de l'obtention du Titre RNCP niveau 6 à Aston École Informatique.

L'API alimente une application mobile Android (voir quizz-android) qui consomme les endpoints via authentification JWT.


✨ Fonctionnalités

  • 🔐 Authentification utilisateur par JWT (inscription / connexion / token)
  • 📚 Gestion des catégories de quiz
  • ❓ Gestion des questions et réponses associées
  • 🏆 Calcul et enregistrement des scores par utilisateur
  • 👤 Gestion des profils utilisateurs
  • 📖 Documentation automatique Swagger / OpenAPI via API Platform

🛠️ Stack technique

Élément Technologie
Framework Symfony
API API Platform
Langage PHP
Base de données MySQL
Authentification JWT (LexikJWTAuthenticationBundle)
Architecture REST, DTO pattern
Documentation Swagger / OpenAPI

🏗️ Architecture

  • DTO (Data Transfer Objects) — séparation entre les entités Doctrine et les données exposées par l'API
  • API Platform — génération automatique des endpoints CRUD et documentation Swagger
  • JWT — sécurisation des routes privées via token Bearer
  • Doctrine ORM — gestion de la base de données relationnelle

📐 Modèle de données

User
 └── Score (1 user → N scores)

Category
 └── Question (1 category → N questions)
      └── Answer (1 question → N answers)

Score
 ├── User
 └── Category

🚀 Installation

# Cloner le repo
git clone https://github.com/MaxGsprd/quizz-api.git
cd quizz-api

# Installer les dépendances
composer install

# Configurer l'environnement
cp .env .env.local
# Renseigner DATABASE_URL et JWT_SECRET dans .env.local

# Créer la base de données
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate

# Générer les clés JWT
php bin/console lexik:jwt:generate-keypair

# Lancer le serveur
symfony server:start

📖 Documentation API

Une fois le serveur lancé, la documentation Swagger est accessible sur :

http://localhost:8000/api/docs

📌 Notes

Projet réalisé dans un contexte de formation — le code reflète le niveau acquis en 2021.
Ce repo illustre la conception d'une API REST complète avec Symfony et API Platform : authentification JWT, pattern DTO, documentation automatique Swagger.


Voir aussi : quizz-android — application mobile Android consommant cette API

About

API REST Symfony/API Platform — authentification JWT, DTO, documentation Swagger. Projet noté RNCP Bac+3 — Aston 2022

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages