Présentation du projet info 2A

Author

Ludovic Deneuville

Objectifs

  • Développer une application en Python
  • Découvrir l’architecture logicielle
  • Communiquer avec une base de données, des webservices
  • Concevoir et Modéliser (UML)
  • Travailler en équipe

Vie ma vie de dév

  • Éléments vus en cours et en TP
  • PostgreSQL OK, SQLite NON

Une application

  • Base de données
  • Backend
  • Frontend
  • API externe

BDD :

  • commune ou individuelle
  • fichier init.sql et pop.sql + reset_database

Backend : coeur de l’appli à soigner

Frontend : si besoin, code non évalué

API externe :

  • Données statiques, dynamiques ? Quand requeter ?
  • Attention limitation

Environnement de travail

Important

Vous pouvez coder sur :

  • un datalab (recommandé)
  • la VM ENSAI

Vous pouvez également coder sur votre propre machine mais vous devrez gérer en totale autonomie les installations nécessaires.

Sauvez votre code avec Git

  • Usage de l’IAgen

Planning

  • 3j d’immersion
    • capital pour bien avancer le projet
    • si bien utilisé -> 90 % du travail fait
  • Point hebdo : j’y reviens

💡 Prendre de l’avance en septembre

⚠️ Absences en projet ou TP -> malus

prévenez-moi si justifié, sinon je prends la liste des absences

2 phases

  • Analyse / Conception générale (sept.)
    • 4 séances de 3h de suivi
    • fin-septembre : retours sur le dossier d’analyse
  • Implémentation (oct. - nov.)
    • 3 séances de 3h de suivi
  • Vous avez 1 mois à 5. Un élève de STD a 6h

Si votre dossier d’analyse est nickel mais vous n’avez pas encore dev

💡 Conseil :

  • l’élève le plus à l’aise fait un POC vers le 20 septembre
  • puis présente l’appli v0 aux autres

Relisez vos rapports !

Travail en groupe

  • Éviter de cumuler les rôles de Chef de projet et Tech Lead
  • Esprit d’équipe
  • Canal de discussion
  • Prévenir dès que possible si ça ne va pas
  • Avoir un bon comportement
  • Certaines équipes vont mieux fonctionner que d’autres
  • Dans la vie pro, on bosse pas toujours avec ses potes
  • Si vous êtes fort -> ne pas tout faire
  • Prévenir tuteur puis Prof en cas de souci

Pas la peine de dire une fois que le projet est fini :

  • c’est moi qui ait tout fait
  • un autre membre n’a rien fait

Le jour 1

  • Posez des questions au tuteur
  • Discutez entre vous (qui sait faire quoi)
  • Organisez-vous
  • Soyez proactifs, prenez des initiatives
  • Prenez des initiatives
  • Démarquez-vous
  • Back (et front ?)
  • Fonctionnalités indispensables

Suivi

  • Point hebdo OBLIGATOIRE
  • À remplir chaque semaine
    • au plus tard le jeudi soir
    • par chaque membre
    • sinon malus pour l’équipe
Note

Plus de détails dans la notice élèves.

  • Comme dans la vie pro
  • Obligatoire sinon malus
  • Montrer Modèle
  • ras : si vous n’avez rien fait
  • Notez vos questions (Réflechissez aux réponses : Plan A, plan B)

Profitez de chaque séance de suivi pour préparer et poser des questions

Une réunion ça se prépare.

Rendus

Dossier d’analyse

Votre tuteur a exprimé un besoin :

  • Expliquez comment y répondre
  • Reformulez sa demande
  • Utilisez les diagrammes UML adéquats

UML : Attention à ne pas trop surcharger (valider avec tuteur)

Gantt version macro

Code

  • Nous attendons du code de qualité
  • Documentation obligatoire pour chaque classe, chaque méthode
  • Tests Unitaires requis
  • README in English
  • Codez par petits bouts

Respectez les bonnes pratiques de dev Python :

  • Noms des classes en CamelCase
  • Fichiers en snake_case
  • noms de variables et de méthodes parlants
  • ⚠️ Methodes qui ne fonctionnent pas car elles appellent des méthodes qui ne fonctionnent pas

Rapport final

  • Focalisez-vous sur les fonctionnalités intéressantes
  • Citez-vos figures
  • Relisez-vous !
  • 💡 Utilisez Typst avec Quarto

Pas forcément bien de faire plus de 25 pages.

Note individuelle

Soutenance 20 min :

  • jury bienveillant mais différents
  • donnez de la personnalité à votre démo
  • Testez avant, Presentez-vous, Numérotez, Diapo lisibles, intro, conclusion
  • Pas gestion user

A voir avec le tuteur

  • Méthodes à tester (service, dao ?)
  • Visibilité public / privé
  • utilisation de mypy

Template

Enfin presque…

  • data, doc, src
  • fichiers config : logs, cov, pyproject, gitignore
  • README : modop pour installer et lancer
  • .vscode : setup vscode
  • CI : expliquer principe
  • Docker

Outils

Git obligatoire -> pénalités si pas de commit