Application de Gestion

Gestion de stages

Aperçu du projet

Cette application permet de gérer les stages au sein du département informatique de l'IUT de Clermont-Ferrand. Elle facilite le suivi des étudiants, des entreprises partenaires et des offres de stage.

Fonctionnalités principales

👥

Gestion des étudiants

Suivi des profils, compétences et préférences de stage.

📝

Suivi des candidatures

Traçabilité complète du processus de candidature.

Processus de développement

1. Analyse des besoins

J'ai commencé par une analyse approfondie des besoins du département informatique concernant la gestion des stages, en identifiant les points de friction dans le processus existant.

Diagramme d'analyse des besoins pour l'application de gestion de stages

2. Conception des structures de données

J'ai conçu des structures de données optimisées pour stocker et manipuler efficacement les informations relatives aux étudiants, entreprises et stages.

Schéma de conception des structures de données en C pour l'application de gestion

Défis rencontrés et solutions

🔍 Gestion de la mémoire

Défi : Éviter les fuites mémoire avec les structures dynamiques. Solution : J'ai implémenté des fonctions de libération systématiques et testé rigoureusement chaque allocation/désallocation.

📊 Conception des structures de données

Défi : Concevoir des structures efficaces pour gérer étudiants, entreprises et stages. Solution : Analyse approfondie des besoins, création de schémas, puis implémentation de structures optimisées avec listes chaînées.

💾 Persistance des données

Défi : Sauvegarder et charger les données depuis des fichiers. Solution : Implémentation d'un système de sérialisation/désérialisation avec gestion d'erreurs robuste.

Ce que j'ai appris

🎯 Fondamentaux du langage C

Ce projet m'a permis de maîtriser les concepts essentiels du C : pointeurs, allocation dynamique, structures, et gestion des fichiers.

📐 Conception de structures de données

J'ai appris à concevoir et implémenter des structures de données adaptées aux besoins réels d'une application, en pensant à l'efficacité et à la maintenabilité.

🔧 Analyse de besoins

Avant de coder, j'ai dû analyser les besoins du département, identifier les points de friction, et proposer une solution adaptée. Une compétence essentielle en développement.

🐛 Debugging en C

J'ai développé mes compétences en debugging, notamment pour détecter les erreurs de pointeurs et les fuites mémoire, en utilisant Valgrind et GDB.

Conclusion

Ce projet m'a permis d'apprendre les bases du C et de manipuler différentes structures de données dans un contexte professionnel. Il m'a également enseigné l'importance de l'analyse de besoins avant le développement.