Système d'inscription des étudiants (application SRS)
Informations générales:
Architecture de haut niveau:
- Nous avons suivi l'architecture du contrôleur de vue du modèle (MVC) afin d'implémenter l'application SRS.
- Voir
- Utilisation de JSP (pages de serveur Java) pour créer une interface graphique frontale pour interagir avec les utilisateurs.
- Contrôleur
- Utilisation des servlets Java pour appeler les classes d'opérateur DB et rediriger le résultat vers des pages JSP appropriées.
- Modèle
- Utilisation des connexions JDBC et appelant les procédures DB respectives afin d'effectuer la demande de l'utilisateur.
- Les JSP sont des pages Web dynamiques où nous pouvons écrire des codes HTML ainsi que Java.
- Utilisation de la méthode HTTP "Post" pour transférer des éléments de formulaire de frontend au backend.
- Chaque fonctionnalité est implémentée dans des fichiers séparés (JSP, servlet, classe d'opération DB) pour la modularité.
- Messages gérés affichés via DBMS_Output à partir du backend dans Java Code DBMS_Output Get_line Procedure Call.
- Les validations de base comme les entrées de champs vides sont effectuées du côté frontal.
- La majorité des fonctionnalités pour manipuler les données DB et les validations connexes sont mises en œuvre du côté backend.
Plan de phase de développement et activités:
- Nous avons suivi les étapes ci-dessous pendant la phase de planification du projet de l'application SRS:
- Discuté et décidé d'utiliser JSP comme frontend, JDBC Connectivity et Oracle PL / SQL Backend.
- Discuté et décidé d'utiliser l'outil de contrôle de version "Bitbucket" pour maintenir le code source de projet à la fois pour les composants backend et frontal.
- Discuté et décidé d'utiliser IDE PL / SQL pour développer des objets de base de données comme le package, les procédures, les fonctions, la séquence, les déclencheurs et les cas de test (scripts SQL).
- Discuté et décidé d'utiliser Eclipse IDE pour développer un projet d'application Web, notamment JSPS, Java Servlets et Java JDBC Connectivity Model Classes.
| Date de réunion | Lieu de réunion | Activités |
|---|
| 6 novembre 2018 | Salle de réunion de la bibliothèque | Création des référentiels BitBucket et du package de base pour SRS [NM]. Procédures incluses pour afficher les tuples de la table [VM]. Implémentation de la procédure pour obtenir des détails TA en utilisant Classid [DP]. |
| 10 novembre 2018 | Salle de réunion de la bibliothèque | Cas de test pour «class_ta» et formatage de code [VM]. Inclus REF Cursor dans Show_Tables + It'd Test Case [DP]. Population de données pour le cas de test et la configuration du projet Web Java [NM]. |
| 11 novembre 2018 | Salle de réunion de la bibliothèque | Implémentation incluse de la procédure de «cours préalable» [nm]. Inclus Implémentation partielle - Procédure «inscrivez l'étudiant» [VM]. Implémentation des champs de table d'affichage dans Java et DB Connectivité [DP]. |
| 12 novembre 2018 | Salle de réunion de la bibliothèque | Mise en œuvre partielle des «inscriptions de dépôt» sans déclencheur [DP]. Testants de la fonctionnalité «Show_Studants» au côté frontal [VM]. Fixation des défauts de base de données «show_students» et des cas de test [nm]. |
| 13 novembre 2018 | Salle de réunion de la bibliothèque | Mise en œuvre et tests de «Drop Student Inscription» à partir du backend et du côté frontal [DP] [VM] [NM]. |
| 14 novembre 2018 | Salle de réunion de la bibliothèque | Implémentation de la validation 8 pour la procédure inscrit_student [DP]. Cas de test + script SQL associé pour consulter les inscriptions des étudiants [NM]. Implémentation de la fonctionnalité TA Détails sur Frontend [VM]. |
| 15 novembre 2018 | Salle de réunion de la bibliothèque | Test des déclencheurs lors de l'inscription des étudiants au backend [VM]. Implémentation de la classe d'affichage Préalable à Frontend [DP]. Code partiel et test de Supprimer l'élève à Frontend [NM]. |
| 19 novembre 2018 | Salle de réunion de la bibliothèque | Mise en œuvre combinée de l'inscription et supprimez l'inscription des étudiants avec des tests complets de Frontend et Backend [DP] [VM] [NM]. |
| 26 novembre 2018 | Salle de réunion de la bibliothèque | Mise en œuvre combinée de Supprimer Student avec des tests complets de Frontend et Backend [DP] [VM] [NM]. |
| 28 novembre 2018 | Salle de réunion de la bibliothèque | Test approfondi de toutes les procédures, déclencheurs et défauts fixes ensemble à partir du frontend et du côté backend [nm] [VM] [DP]. |
| 29 novembre 2018 | Salle de réunion de la bibliothèque | Rapport de projet et configuration DB finale pour démo [VM] [NM] [DP]. |
- Rôles et responsabilités des membres de l'équipe:
- Tous les membres de l'équipe ont travaillé ensemble dans la même salle de réunion pour développer et tester l'application SRS depuis Frontend et Backend.
- Les activités effectuées par les membres de l'équipe sont mentionnées dans le tableau ci-dessus avec les initiales respectives.
- Nitesh Mishra [nm]
- Dipika Suresh Patil [DP]
- Vidhi Mewada [VM]
Aperçu du code PL-SQL backend
Nom du package DB - Student_Registration_System
Procédures pour afficher les tuples de chacune des sept tables. Ces procédures renvoient le curseur REF en tant que paramètre OUT qui est utilisé à côté frontal pour afficher des tuples de sept tables DB.
- Procédure show_students (ref_cursor_students out ref_cursor);
- Procédure show_tas (Ref_cursor_tas out Ref_cursor);
- Procédure Show_Courses (Ref_Cursor_Courses Out Ref_Cursor);
- Procédure show_classes (ref_cursor_classes out ref_cursor);
- Procédure show_enrollments (ref_cursor_enrollments out ref_cursor);
- Procédure show_prerequisites (ref_cursor_prerequis out ref_cursor);
- Procédure show_logs (Ref_cursor_logs out Ref_cursor);
Types mondiaux -
- Type Ref_cursor est Ref Cursor;
- Ce curseur REF est renvoyé de la procédure individuelle en tant que requête sélectionnée.
Procédure pour afficher B #, prénom et nom de famille de la TA pour la classide d'entrée.
- Procédure class_ta (classid_in dans classes.classid% type, ta_b # _out out lass.ta_b #% type, first_name_out out students.first_name% type, last_name_out out students.last_name% type);
- Validations:
- Si la classe n'a pas de TA, signalez "la classe n'a pas de TA".
- Si le classide fourni n'est pas valide (c'est-à-dire pas dans le tableau des classes), le rapport "Le classique n'est pas valide".
La procédure renvoie tous les cours préalables directs et indirects.
- Procédure class_prereq (dept_code_in dans prérequis.dept_code% type, cours # _in dans prérequis.ccours #% type, pre_req_out out varchar2);
- Validation:
- Si le fourni (dept_code, cours #) n'est pas valide, le rapport "Dept_code || Le cours # n'existe pas."
La procédure gère l'inscription d'un élève dans une classe.
- Procédure inscrit_student (b # _in dans les étudiants.b #% type, classid_in dans classes.classid% type);
- Validations:
- Si l'étudiant n'est pas dans le tableau des étudiants, signalez "le B # n'est pas valide".
- Si le classique n'est pas dans le tableau des classes, rapportez "le classid n'est pas valide".
- Si la classe n'est pas offerte au semestre en cours (c.-à-d. Automne 2018), rejetez l'inscription et le rapport "ne peut pas s'inscrire à une classe d'un semestre précédent".
- Si la classe est déjà pleine avant la demande d'inscription, rejetez la demande d'inscription et signalez "la classe est déjà pleine".
- Si l'élève est déjà dans la classe, signalez "L'élève est déjà dans la classe."
- Si l'étudiant est déjà inscrit dans quatre autres classes au même semestre et la même année, signalez "L'étudiant sera surchargé de la nouvelle inscription". mais permettez toujours à l'étudiant d'être inscrit.
- Si l'étudiant est déjà inscrit dans cinq autres classes au même semestre et la même année, le rapport "Les étudiants ne peuvent pas être inscrits dans plus de cinq classes au même semestre". et rejeter l'inscription.
- Si l'étudiant n'a pas terminé les cours de préalable requis avec au moins une grade C, rejetez l'inscription et rapportez «la condition préalable non satisfaite».
La procédure gère la suppression d'un étudiant de la table d'inscription.
- Procédure delete_student_enrollment (b # _in dans les étudiants.b #% type, classid_in dans classes.classid% type);
- Validations:
- Si l'étudiant n'est pas dans le tableau des étudiants, signalez "le B # n'est pas valide".
- Si le classique n'est pas dans le tableau des classes, rapportez "le classid n'est pas valide".
- Si l'élève n'est pas inscrit à la classe, signalez "L'élève n'est pas inscrit à la classe."
- Si la classe n'est pas offerte à l'automne 2018, rejetez la tentative de dépôt et le rapport «uniquement l'inscription au semestre en cours peut être supprimée».
- Si la suppression de l'élève de la classe entraînerait une violation de l'exigence préalable à une autre classe, rejettez la tentative de dépôt et signalez "la goutte n'est pas autorisée car une autre classe enregistrée par l'élève l'utilise comme condition préalable". Dans tous les autres cas, l'élève sera abandonné de la classe.
- Si la classe est la dernière classe pour l'élève, signalez "Cet étudiant n'est inscrit à aucune classe."
- Si l'élève est le dernier élève de la classe, signalez "la classe n'a plus d'élèves".
La procédure gère la suppression d'un étudiant du tableau des étudiants en fonction d'un b # donné.
- Procédure delete_student (b # _in dans les étudiants.b #% type);
- Validation:
- Si l'étudiant n'est pas dans le tableau des étudiants, signalez "le B # n'est pas valide".
Objets DB associés - Ces objets ne font pas partie du package et utilisés dans l'application.
- Séquence pour générer le journal # automatiquement lorsque les nouveaux enregistrements de journal sont insérés dans la table de journal.
- Déclencher pour faire l'entrée dans la table de journal sur la suppression de l'entrée de la table d'inscription.
- Trig_on_del_enroll_ins_logs
- Déclencher pour diminuer la taille de la classe dans le tableau des classes sur la suppression de l'entrée de la table d'inscription.
- Trig_on_del_enroll_upd_classes
- Déclencher pour supprimer l'entrée de la table TA sur la suppression de l'entrée de la table étudiante.
- TRIG_ON_DEL_STUDENTS_DEL_TA
- Déclencher pour faire l'entrée dans la table de journal sur la suppression de l'entrée de la table TA.
- Déclencheur pour créer une entrée de colonne TA null dans les classes Tableau sur la suppression de l'entrée de la table TA.
- Trig_on_del_tas_upd_classes
- Déclencher pour faire l'entrée dans la table de journal sur l'insertion de l'entrée de la table d'inscription.
- Trig_on_ins_enroll_ins_logs
- Déclencher pour augmenter la taille de la classe dans le tableau des classes sur l'insertion de la table d'inscription.
- Trig_on_ins_enroll_upd_classes
- Déclencher pour faire l'entrée dans la table de journal sur la mise à jour de l'entrée de la table de classes.
- Trig_on_upd_classes_ins_logs
- Déclencher pour supprimer l'inscription à la suppression de l'entrée des étudiants.
- Trig_on_del_stud_del_enroll
Aperçu du code Frontend et Java
- Vous trouverez ci-dessous l'extrait de structure du répertoire pour Java Dynamic Web Project à l'aide du modèle d'architecture de contrôleur de vue du modèle:
