Student Registration System (SRS -Anwendung)
Allgemeine Informationen:
Hochrangige Architektur:
- Wir folgten der MVC -Architektur (Model View Controller), um die SRS -Anwendung zu implementieren.
- Sicht
- Verwenden von JSP (Java -Serverseiten), um Frontend -GUI für die Interaktion mit Benutzern zu erstellen.
- Regler
- Verwenden von Java -Servlets, um DB -Operatorklassen aufzurufen und das Ergebnis zu entsprechenden JSP -Seiten umzuleiten.
- Modell
- Verwenden von JDBC -Verbindungen und den Aufruf der jeweiligen DB -Prozeduren, um die Anfrage des Benutzers durchzuführen.
- JSPs sind dynamische Webseiten, auf denen wir sowohl HTML als auch Java -Codes schreiben können.
- Verwenden der HTTP -Methode "Post", um Formularelemente von Frontend zu Backend zu übertragen.
- Jede Funktionalität wird in separaten Dateien (JSP, Servlet, DB Operation Class) für die Modularität implementiert.
- Handhabte Nachrichten, die über dbms_output aus dem Backend im Java -Code angezeigt werden.
- Grundlegende Validierungen wie leere Feldereinträge finden Sie vor Frontend -Seite.
- Die Mehrheit der Funktionen zur Manipulation von DB -Daten und damit verbundenen Validierungen werden auf der Backend -Seite implementiert.
Entwicklungsphaseplan und Aktivitäten:
- Wir folgten den folgenden Schritten während der Projektplanungsphase der SRS -Anwendung:
- Besprochen und beschloss, JSP als Frontend, JDBC -Konnektivität und Oracle PL/SQL -Backend zu verwenden.
- Erörtert und beschlossen, "Bitbucket" -Versionsteuerungswerkzeug zu verwenden, um den Projektquellcode sowohl für Backend- als auch für Frontend -Komponenten zu verwalten.
- Erörtert und beschlossen, PL/SQL -Entwickler IDE zu verwenden, um Datenbankobjekte wie Paket, Prozeduren, Funktionen, Sequenz, Auslöser und Testfälle (SQL -Skripte) zu entwickeln.
- Erörtert und beschloss, Eclipse IDE zu verwenden, um Webanwendungsprojekte zu entwickeln, einschließlich JSPs, Java Servlets und Java JDBC Connectivity -bezogenen Modellklassen.
| Besprechungsdatum | Besprechungsort | Aktivitäten |
|---|
| 6. November 2018 | Bibliotheksversammlungsraum | Erstellte Bitbucket -Repositories und Basispaket für SRS [NM]. Zu den enthaltenen Verfahren zur Anzeige von Tabellen -Tupeln [VM]. Implementierung des Verfahrens, um TA -Details mit ClassID [DP] zu erhalten. |
| 10. November 2018 | Bibliotheksversammlungsraum | Testfall für "Class_ta" und Code -Formatierung [VM]. Enthalten Ref Cursor in show_tables + es würde Testfall [DP]. Datenpopulation für Testfall und Java Web Project Setup [NM]. |
| 11. November 2018 | Bibliotheksversammlungsraum | Beinhaltete die Implementierung des Voraussetzungsverfahrens [NM]. Eingeschlossene Teilimplementierung - Verfahren „Student“ [VM]. Implementierte Display -Tabellenfelder in Java- und DB -Konnektivität [DP]. |
| 12. November 2018 | Bibliotheksversammlungsraum | Partielle Implementierung von „Drop -Anmeldungen“ ohne Auslöser [DP]. "Show_students" -Funktionalitätstests am vorderen Endseite [VM]. Behebung von DB -Defekten und Testfällen von "show_studentents" [NM]. |
| 13. November 2018 | Bibliotheksversammlungsraum | Implementierung und Prüfung von „Drop -Studenten -Einschreibung“ von Backend und Frontend Side [DP] [VM] [NM]. |
| 14. November 2018 | Bibliotheksversammlungsraum | Implementierung der Validierung 8 für die Registrierung der Verfahrensanlage [DP]. Testfall + verwandtes SQL -Skript, um die Einschreibungen der Schüler zu überprüfen [NM]. Implementierung von TA -Details Funktionen bei Frontend [VM]. |
| 15. November 2018 | Bibliotheksversammlungsraum | Testen auf Trigger während der Einschreibung von Studenten bei Backend [VM]. Implementierung der Voraussetzung der Anzeigeklasse bei Frontend [DP]. Teilcode und Testen von Löschen von Studenten an Frontend [NM]. |
| 19. November 2018 | Bibliotheksversammlungsraum | Kombinierte Implementierung der Einschreibung und Löschen der Schüler mit vollständigen Tests von Frontend and Backend [DP] [VM] [NM]. |
| 26. November 2018 | Bibliotheksversammlungsraum | Kombinierte Implementierung von Löschstudenten mit vollständigen Tests von Frontend and Backend [DP] [VM] [NM]. |
| 28. November 2018 | Bibliotheksversammlungsraum | Gründliche Tests aller Verfahren, Auslöser und festen Defekte von Frontend- und Backend -Seite [NM] [VM] [DP]. |
| 29. November 2018 | Bibliotheksversammlungsraum | Projektbericht und endgültiges DB -Setup für Demo [VM] [NM] [DP]. |
- Rollen und Verantwortlichkeiten der Teammitglieder:
- Alle Teammitglieder arbeiteten im selben Besprechungsraum zusammen, um die SRS -Anwendung von Frontend und Backend Side zu entwickeln und zu testen.
- Aktivitäten von Teammitgliedern werden in der obigen Tabelle mit jeweiligen Initialen erwähnt.
- Nitesh Mishra [NM]
- Dipika Suresh Patil [DP]
- Vidhi Mewada [VM]
Umriss des Backend PL-SQL-Code
DB -Paketname - Student_registration_System
Verfahren zum Anzeigen der Tupel aus jedem der sieben Tabellen. Diese Verfahren geben den Ref Cursor als Out-Parameter zurück, der bei Front-End verwendet wird, um Tupel von sieben dB-Tabellen anzuzeigen.
- Procedure show_students (ref_cursor_students out ref_cursor);
- Procedure show_tas (ref_cursor_tas out ref_cursor);
- Procedure show_course (ref_cursor_courses out ref_cursor);
- Procedure show_classes (ref_cursor_classes out ref_cursor);
- Procedure show_enrollmentments (ref_cursor_enrollments out ref_cursor);
- Procedure show_prreequisites (ref_cursor_Preequisites out ref_cursor);
- Procedure show_logs (ref_cursor_logs out ref_cursor);
Globale Typen -
- Typ Ref_Cursor ist Ref Cursor;
- Dieser Ref Cursor wird aus dem individuellen Prozedur als Auswahlabfrage zurückgegeben.
Vorgehensweise zur Anzeige von B#, Vorname und Nachname des TA für die Eingabe -Klassifizierung.
- Procedure class_ta (classId_in in classes.classid%Typ, ta_b#_out out classes.ta_b#%Typ, First_Name_Out Out Students.First_Name%Typ, last_name_out students.last_name%Typ);
- Validierungen:
- Wenn die Klasse keinen TA hat, melden Sie "Die Klasse hat kein TA".
- Wenn die bereitgestellte Klassifizierung ungültig ist (dh nicht in der Tabelle der Klassen), melden Sie "Die Klassifizierung ist ungültig".
Das Verfahren gibt alle direkten und indirekten Voraussetzungen zurück.
- Procedure class_prereq (Dept_code_in in Voraussetzungen.dept_code%Typ, Kurs#_in in den Voraussetzungen
- Validierung:
- Wenn die bereitgestellte (Dept_code, Kurs#) ungültig ist, melden Sie "Dept_code || Kurs# nicht existiert."
Das Verfahren behandelt die Einschreibung eines Schülers in eine Klasse.
- PROCEDURE einschreiben_Student (B#_in in den Schülern.b#%Typ, classId_in in klassen.classid%Typ);
- Validierungen:
- Wenn sich der Schüler nicht in der Tabelle der Schüler befindet, melden Sie "Das B# ist ungültig."
- Wenn sich die Klassiker nicht in der Klassentabelle befindet, melden Sie "Die Klassifizierung ist ungültig".
- Wenn die Klasse im laufenden Semester nicht angeboten wird (dh Herbst 2018), lehnen Sie die Registrierung ab und berichten Sie nicht in einer Klasse aus einem früheren Semester.
- Wenn die Klasse vor der Anfrage bereits voll ist, lehnen Sie die Anmeldungsanfrage ab und melden Sie "Die Klasse ist bereits voll".
- Wenn der Schüler bereits in der Klasse ist, melden Sie "Der Schüler ist bereits in der Klasse".
- Wenn der Schüler im selben Semester und im selben Jahr bereits in vier weiteren Klassen eingeschrieben ist, berichten Sie: "Der Schüler wird mit der neuen Einschreibung überladen." aber lassen Sie den Schüler immer noch eingeschrieben sein.
- Wenn der Student im selben Semester und im selben Jahr bereits in fünf weitere Klassen eingeschrieben ist, müssen die Schüler im selben Semester nicht in mehr als fünf Klassen eingeschrieben werden. " und die Registrierung ablehnen.
- Wenn der Schüler die erforderlichen Voraussetzungen mit mindestens einer Klasse C nicht abgeschlossen hat, lehnen Sie die Einschreibung ab und melden Sie "Voraussetzung nicht zufrieden".
Das Verfahren behandelt die Löschung eines Schülers aus der Einschreibungstabelle.
- Prozedur delete_student_enrollment (b#_in in students.b#%Typ, classId_in in classes.classid%Typ);
- Validierungen:
- Wenn sich der Schüler nicht in der Tabelle der Schüler befindet, melden Sie "Das B# ist ungültig."
- Wenn sich die Klassiker nicht in der Klassentabelle befindet, melden Sie "Die Klassifizierung ist ungültig".
- Wenn der Schüler nicht in die Klasse eingeschrieben ist, berichten Sie "Der Schüler ist nicht in die Klasse eingeschrieben."
- Wenn die Klasse im Herbst 2018 nicht angeboten wird, lehnen Sie den Tropfenversuch ab und melden Sie "Nur die Einschreibung im laufenden Semester kann fallen gelassen werden."
- Wenn der Schüler aus der Klasse einen Verstoß gegen die Voraussetzung für eine andere Klasse verursachen würde, lehnen Sie den Tropfenversuch ab und melden Sie "Der Tropfen ist nicht zulässig, da eine andere Klasse, die der Schüler registriert hat, ihn als Voraussetzung verwendet." In allen anderen Fällen wird der Schüler aus der Klasse fallen.
- Wenn die Klasse die letzte Klasse für den Schüler ist, berichten Sie "Dieser Schüler ist in keiner Klassen eingeschrieben."
- Wenn der Schüler der letzte Schüler in der Klasse ist, melden Sie "Die Klasse hat jetzt keine Schüler."
Das Verfahren behandelt die Löschung eines Schülers aus der Schülertabelle basierend auf einem gegebenen B#.
- Prozedur delete_student (B#_in in den Schülern.b#%Typ);
- Validierung:
- Wenn sich der Schüler nicht in der Tabelle der Schüler befindet, melden Sie "Das B# ist ungültig."
Verwandte DB -Objekte - Diese Objekte sind nicht Teil des Pakets und werden in der Anwendung verwendet.
- Sequenz zum automatischen Generieren von Protokoll# Wenn neue Protokolldatensätze in die Protokolltabelle eingefügt werden.
- Auslöser für die Eingabe der Protokolltabelle zum Löschen des Eintrags der Registrierungstabelle.
- Trig_on_del_enroll_ins_logs
- Auslöser zur Verringerung der Klassengröße in der Klassentabelle zum Löschen des Eintrittseintritts der Registrierung.
- Trig_on_del_enroll_upd_classes
- Auslöser zum Löschen von TA -Tabelleneintrag zum Löschen des Eintrags von Schülertisch.
- Trig_on_del_students_del_ta
- Auslöser für die Eingabe der Protokolltabelle zum Löschen des TA -Tabelleneintrags.
- Auslöser, um die TA -Spalteneintrag in den Klassen Tabelle zum Löschen des TA -Tabelleneintrags zu erstellen.
- Trig_on_del_tas_upd_classes
- Auslöser für den Eintritt in die Protokolltabelle zum Insertion des Eintrittseintrags für die Einschreibungstabelle.
- Trig_on_ins_enroll_ins_logs
- Auslöser zur Erhöhung der Klassengröße in der Klassentabelle zum Insertion der Einschreibungstabelle.
- Trig_on_ins_enroll_upd_classes
- Auslöser für die Eintragung in Protokolltabelle zum Update der Tabelleneingabe der Klassen.
- Trig_on_upd_classes_ins_logs
- Auslöser zum Löschen der Einschreibung zum Löschen des Studenteneintrags.
- Trig_on_del_stud_del_enroll
Umriss von Frontend und Java -Code
- Im Folgenden finden Sie das Verzeichnisstruktur -Snippet für Java Dynamic Web Project unter Verwendung des Modells der Model View Controller Architecture: Modell:
