Projet de session du cours de Technologies Web Avancées - 8INF349 '''
- Mathis Audusseau
- Mathis Gauthier
- Zhakael Bondu
python -m venv .venvLinux:
source .venv/bin/activateWindows:
.venv\Scripts\activate.ps1pip install -r requirements.txtdocker-compose up -d --builddocker-compose exec app flask init-dbhttp://127.0.0.1:5000 pour la liste des produits
http://127.0.0.1:5000/index pour notre page HTML de test
docker-compose down python -m pytest -v| Status Code | Description |
|---|---|
| 200 | OK - Request succeeded |
| 201 | Created - Resource created successfully |
| 302 | Found - Resource found successfully |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Authentication required |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource not found |
| 422 | Unprocessable Entity - Entity cannot be processed |
| 500 | Internal Server Error - Server error |
- Mettre en place l'environnement Python 3.6+
- Installer les dépendances requises
- Flask 1.11+
- pytest
- pytest-flask
- peewee
- Créer la structure du projet Flask
- Configurer SQLite3 avec Peewee
- Implémenter la commande
flask init-db
- Implémenter la récupération des produits depuis l'API distante
- Connexion à
http://dimensweb.uqac.ca/~jgnault/shops/products/ - Persistance locale des produits dans SQLite
- Vérifier que la récupération se fait uniquement au lancement
- Connexion à
- Implémenter l'endpoint GET / pour lister les produits
- Assurer le format JSON correct de la réponse
- Inclure tous les champs requis (name, id, in_stock, description, price, weight, image)
- Implémenter la création de commande
- Valider les champs obligatoires (product_id, quantity)
- Gérer les erreurs
- Champs manquants
- Produit hors stock
- Quantité invalide
- Retourner la redirection 302 avec l'ID de commande
- Implémenter la consultation de commande
- Calculer les prix
- Prix total (total_price)
- Prix avec taxes selon la province
- Frais d'expédition selon le poids
- Retourner toutes les informations de la commande
- Implémenter la mise à jour des informations client
- Valider les champs obligatoires
- Informations d'expédition complètes
- Gérer les erreurs de validation
- Empêcher la modification des champs protégés
- Implémenter l'intégration avec le service de paiement distant
- Valider la carte de crédit
- Format du numéro
- Date d'expiration
- Gérer les réponses du service de paiement
- Mettre à jour le statut de la commande
- Empêcher le double paiement
- Tests unitaires
- Modèles de données
- Logique métier
- Tests fonctionnels
- Endpoints API
- Scénarios de commande
- Tests d'intégration
- Service de produits
- Service de paiement
- README.md
- Instructions d'installation
- Documentation API
- Exemples d'utilisation
- Commentaires dans le code
- Documentation des modèles de données
- Vérifier toutes les exigences techniques
- Tester tous les scénarios d'erreur
- Valider le format des réponses JSON
- Nettoyer et optimiser le code
- Vérifier la couverture des tests
Dates importantes :
- 📅 Première remise : 6 mars 2025 (20%)
- 📅 Remise finale : 17 avril 2025 (30%)