DEV Community

Sidali Assoul
Sidali Assoul

Posted on

My 3rd Year school project PFE(Projects Management System).

I'm sharing a demo video about our 3rd year school project 'PFE' at ( ECOLE SUPERIEURE EN INFORMATIQUE 08 MAI 1945, SIDI BEL ABBES).

So what is 'PFE' anyway ? it's an abriviation for 'Projet de fin d'etudes' in french which means the projects given to students at the second semestre after going thgough a lot of courses during the year to apply thoses knowledges on a real world project which tackles a specific set of problems caming from a persistent need.

The main goals of our project can be summarized in a chronological order as follow:

1- to launch the plateform the university should set its own configuration variables (rooms, level, type of documents for each level ,admins...) using our desktop application.
2- then the admins inject the entities (teachers,students,enterprises) to the platform either one by one or using an excel file.
3- students can find or construct teams using our invitation system.
4-when the team gets created the members can collaborate togother in real time by exchanging documents in what we call 'the team playground' , the team leader can create an announcement to notify the team about important updates or a survey with multiple options to ask the team for their opinions before making a critical decision , beside of the previous options team members can choose to use the real time team chat .
5- teachers and entreprises can suggest a theme for a specific level then after a lot of studies the admins can decide to approve it which result in making it an officiel theme or in other temes an option for teams of that choosen level.
6- one of the most important features of our plateforme is team completion which solves the problem of : respecting the promtion configuration ( min_students_in_team , max_students_in_team) and getting ride of the problem of the students which couldn't find a team by automating this process . with a few number of clicks the admin can equilibrate&validate the teams of a specific level.
7- after equilibrating & validating the teams of a specific level the admin sends whish lists (a wish list :ordering the themes according to the team wishes exp: 1- theme_a , 2- theme_b , 3- theme_c)
8- another important feature is assigning the themes to the teams according to their whish list . so in order to simplify the process for admins we made 3 algorithms (FIFO , random ,moy ) to do the job.
9-teams can commit docs from the 'team playground' to the supervisor ,then the supervisor choose the most important documents and validate them to make them visible to the juries and the admins then the supervisor can mark his teams as ready for graduation.
10- admins can create a graduation session (title,description,date,room,related_team,juries) if the team is marked as ready by the the supervisor(s)

Frontend: NextJs( a React freamwork) , Redux , tailwind css .
Backend: NestJs freamwork , Typeorm (with mysql database) ,websocket ,w've choosen session auth instead of jwt for security reasons.
the video link:
social links:

Discussion (0)