Présentation aux tutrices et tuteurs
Objectifs
- Développer une application en python
- Découvrir l’architecture logicielle
- Communiquer avec une base de données PostreSQL
- Utiliser des webservices
- Concevoir et Modéliser
Compétences visées
- Travailler en groupe (organisation, suivi, git)
- Modéliser une application complexe (UML)
- Appliquer les principes de la POO
- Valoriser son travail à l’écrit et à l’oral
Cours
Les cours de Compléments d’informatique vise à fournir aux élèves les outils pour mener à bien le projet informatique.
- 6h des cours
- 4 TP de 3h
- dispensés par les tutrices / tuteurs
- le sujet est fourni
Notions abordées en cours
- Utilisation basique de Git
- Rappels de POO
- Décomposer une application en couches
- Communiquer avec une base de données / une API
- Tests unitaires
- Documentation
Cadre général du projet
- 1er semestre de 2A
- Groupes imposés de 4 ou 5 élèves
- Les groupes votent pour leurs sujets préférés
- 4 groupes par tutrice / tuteur
2 phases
- Analyse / Conception générale (sept)
- 4 séances de 3h de suivi
- la séance de mi-octobre permet de faire un retour aux équipes sur le dossier d’analyse
- Implémentation (oct-nov)
- 3 séances de 3h de suivi
Livrables
- 5 octobre : Dossier d’analyse
- 23 novembre : Rapport final + code
- 12 décembre : Soutenance
Dossier d’analyse
Document d’une dizaine de pages contenant :
- la compréhension du besoin
- un planning (diagramme de Gantt)
- des diagrammes UML (cas d’utilisation, classe…)
Soutenance
Les soutenances ont lieu début décembre.
Les élèves présentent leur projet à un jury composé de 3 personnes :
- un président de jury
- un enseignant de l’ENSAI
- la tutrice / le tuteur
Notes
Livrable | Correcteur | Coef projet | Coef cours |
---|---|---|---|
Dossier d’analyse | Tutrice / Tuteur | 1/3 | |
Code | Tutrice / Tuteur | 1/3 | |
Rapport final | Jury | 1/3 | |
Soutenance | Jury | 1/3 | |
Devoir sur table | Enseignant | 2/3 |
Le code du projet comptera pour un tiers de la note du cours de Compléments d’informatique.
Planning
Dates
Date | Topic |
---|---|
vendredi 6 septembre | TP1 et Suivi 1 |
vendredi 13 septembre | TP2 et Suivi 2 |
vendredi 20 septembre | TP3 |
vendredi 27 septembre | TP4 et Suivi 3 |
vendredi 11 octobre | Suivi 4 (retour sur les dossiers d’analyse) |
lun-mer 21-23 octobre | 3 jours d’immersion (Suivi 5 et 6) |
vendredi 15 novembre | Suivi 7 |
jeudi 12 décembre | Soutenance |
Sujet
À vous de jouer pour trouver une bonne idée !
Éléments requis
- Utilisation de la POO
- Stockage en BDD (sans utiliser d’ORM type SQLAlchemy)
- Utilisation et / ou Création d’un webservice
- Pas d’interface graphique
- pour les sujets n’impliquant pas de création de WS, InquirerPy sera utilisé comme IHM en mode console
Exemples de sujets
- Application utile
- données SNCF pour optimiser ses réductions
- réduire l’impact carbone de la VOD
- recherche de stage, de velib, de carburant moins cher, de bières
- recommandation de produits meilleurs pour la santé
- Autour des jeux ou de la musique
- stats de jeux videos
- Jeux de mots (Wordle)
- convention de JDR
- RAP analytics
Il est tout à fait possible de proposer un sujet plus exotique (⚠️ à ne pas trop faire peur aux élèves).
Anciens sujets
Liste des anciens sujets.
Template
### Titre
Tuteur / Tutrice :
#### Présentation
contexte, objectifs, API utilisée, création d'une API et/ou d'un menu interactif ?
#### Fonctionnalités de base
- F1 :
- F2 :
#### Fonctionnalités optionnelles
- FO1 :
- FO2 :
#### Conseils / Outils ...
Résumé du travail de tutrice / tuteur
- 4 x 3h de TP de compléments d’informatique
- 7 x 3h de suivi de projet
- Lire et noter les 4 dossiers d’analyse
- Noter le code
- Lire du rapport final, participer à la notation
- Participer aux 4 soutenances
Votre rôle
- Guider les élèves
- Suivi des équipes (avancement, participation, bonne entente)
- Maîtrise d’Ouvrage
- Aide au débogage
Stack VM
- Python 3.10
- PostgreSQL (chaque élève a une BDD)
- Git Bash
- Visual Studio Code
Principaux Packages Python
Nom du package | Très courte description |
---|---|
inquirerPy | Créer des interfaces en ligne de commande interactives |
fastapi | Créer des webservices |
psycopg2-binary | Communiquer avec PostgreSQL |
pytest | Tests unitaires |
python-dotenv | Variables d’environnement à partir d’un fichier .env |
requests | Requêtes HTTP |
uvicorn | Serveur ASGI |