IT project presentation

Author

Ludovic Deneuville

automatic translation of the ‘Présentation élèves’ page

Objectives

  • Develop an application in Python
  • Discover software architecture
  • Communicate with a database and web services
  • Design and Model (UML)
  • Work as a team

A day in the life of a developer

  • Concepts covered in lectures and practical sessions
  • PostgreSQL OK, SQLite NO

An application

  • Database
  • Backend
  • Frontend
  • External API

Database:

  • shared or individual
  • init.sql and pop.sql files + reset_database

Backend: core of the application, to be carefully developed

Frontend: if needed, code not assessed

External API:

  • Static or dynamic data? When to query?
  • Beware of limitations

Working environment

Important

You can code on:

  • a datalab (recommended)
  • the ENSAI VM

You can also code on your own machine, but you will be entirely responsible for managing the required installations.

Save your code with Git

  • Use of AI

Schedule

  • 3-day immersion

    • essential for making good progress on the project
    • if used well -> 90% of the work completed
  • Weekly update: I’ll come back to this

💡 Get ahead in September

⚠️ Absences during project or practical sessions -> penalty

Let me know if there is a valid reason, otherwise I will use the attendance list

2 phases

  • Analysis / General Design (September)

    • 4 × 3-hour Mentoring sessions
    • end of September: feedback on the analysis document
  • Implementation (October - November)

    • 3 × 3-hour Mentoring sessions
  • You have 1 month as a team of 5. An STD student has 6 hours

If your analysis document is perfect but you have not started developing yet

💡 Advice:

  • the most comfortable student starts a POC around September 20
  • then presents the v0 application to the others

Proofread your reports!

Group work

  • Avoid combining the roles of Project Manager and Tech Lead
  • Team spirit
  • Discussion channel
  • Let me know as soon as possible if something is not going well
  • Behave professionally
  • Some teams will work better than others
  • In professional life, you do not always work with your friends
  • If you are skilled -> do not do everything yourself
  • Inform the tutor and then the professor if there is a problem

There is no point in saying once the project is finished:

  • I did everything
  • another team member did nothing

Day 1

  • Ask questions to the tutor
  • Discuss among yourselves (who knows how to do what)
  • Organize yourselves
  • Be proactive and take initiative
  • Take initiative
  • Stand out
  • Backend (and frontend?)
  • Essential features

Mentoring

  • Weekly update MANDATORY

  • To be completed every week

    • by Thursday evening at the latest
    • by each member
    • otherwise a penalty for the team
Note

More details in the student guide.

  • As in professional life
  • Mandatory, otherwise a penalty
  • Show the template
  • Nothing to report: if you have done nothing
  • Write down your questions (Think about the answers: Plan A, Plan B)

Make the most of each Mentoring session to prepare and ask questions

A meeting needs to be prepared.

Deliverables

Analysis Document

Your tutor has expressed a need:

  • Explain how to address it
  • Reformulate their request
  • Use the appropriate UML diagrams

UML: Be careful not to overload it (validate with the tutor)

Macro-level Gantt

Code

  • We expect quality code
  • Documentation mandatory for every class, every method
  • Unit tests required
  • README in English
  • Code in small increments

Follow Python development best practices:

  • Class names in CamelCase
  • Files in snake_case
  • Meaningful variable and method names
  • ⚠️ Methods that do not work because they call methods that do not work

Final Report

  • Focus on interesting features
  • Refer to your figures
  • Proofread your work!
  • 💡 Use Typst with Quarto

It is not necessarily a good idea to write more than 25 pages.

Individual grade

20-minute presentation:

  • friendly but different jury members
  • give your demo some personality
  • Test beforehand, Introduce yourselves, Number your slides, Readable slides, introduction, conclusion
  • No user management

To discuss with the tutor

  • Methods to test (service, DAO?)
  • Public / private visibility
  • Use of mypy

Template

Almost…

  • data, doc, src
  • config files: logs, cov, pyproject, gitignore
  • README: instructions for installing and running
  • .vscode: VS Code setup
  • CI: explain the principle
  • Docker

Tools

Git is mandatory -> penalties if there are no commits