Sistem Pendaftaran Siswa (Aplikasi SRS)
Informasi Umum:
Arsitektur tingkat tinggi:
- Kami mengikuti arsitektur Model View Controller (MVC) untuk mengimplementasikan aplikasi SRS.
- Melihat
- Menggunakan JSP (halaman server Java) untuk membuat Frontend GUI untuk berinteraksi dengan pengguna.
- Pengontrol
- Menggunakan Java Servlets untuk menelepon kelas operator DB dan mengarahkan hasil ke halaman JSP yang sesuai.
- Model
- Menggunakan koneksi JDBC dan memanggil prosedur DB masing -masing untuk melakukan permintaan pengguna.
- JSP adalah halaman web dinamis di mana kami dapat menulis HTML serta kode Java.
- Menggunakan metode HTTP "POST" untuk mentransfer elemen formulir dari frontend ke backend.
- Setiap fungsionalitas diimplementasikan dalam file terpisah (JSP, Servlet, kelas operasi DB) untuk modularitas.
- Pesan yang ditangani ditampilkan melalui dbms_output dari backend di java code dbms_output get_line prosedur panggilan.
- Validasi dasar seperti entri bidang kosong dilakukan di sisi depan.
- Mayoritas fungsi untuk memanipulasi data DB dan validasi terkait diimplementasikan di sisi backend.
Rencana dan kegiatan fase pengembangan:
- Kami mengikuti langkah -langkah di bawah ini selama fase perencanaan proyek aplikasi SRS:
- Dibahas dan memutuskan untuk menggunakan JSP sebagai frontend, konektivitas JDBC dan backend Oracle PL/SQL.
- Dibahas dan memutuskan untuk menggunakan alat kontrol versi "bitbucket" untuk mempertahankan kode sumber proyek baik untuk komponen backend dan frontend.
- Dibahas dan memutuskan untuk menggunakan IDE pengembang PL/SQL untuk mengembangkan objek basis data seperti paket, prosedur, fungsi, urutan, pemicu dan kasus uji (skrip SQL).
- Dibahas dan memutuskan untuk menggunakan Eclipse IDE untuk mengembangkan proyek aplikasi web termasuk JSP, Java Servlets dan kelas model terkait konektivitas JVA JDBC.
| Tanggal rapat | Lokasi pertemuan | Aktivitas |
|---|
| 6 Nov 2018 | Ruang pertemuan perpustakaan | Membuat repositori bitbucket dan paket dasar untuk SRS [NM]. Prosedur yang disertakan untuk menampilkan tupel tabel [VM]. Implementasi prosedur untuk mendapatkan detail TA menggunakan ClassID [DP]. |
| 10 Nov 2018 | Ruang pertemuan perpustakaan | Test case untuk "class_ta" dan format kode [VM]. Termasuk Kursor Ref di show_tables + case test [dp]. Populasi Data untuk Test Case dan Pengaturan Proyek Web Java [NM]. |
| 11 Nov 2018 | Ruang pertemuan perpustakaan | Termasuk implementasi prosedur “kursus prasyarat” [NM]. Termasuk implementasi parsial - Prosedur “Daftar Siswa” [VM]. Bidang tabel tampilan yang diimplementasikan di konektivitas Java dan DB [DP]. |
| 12 Nov 2018 | Ruang pertemuan perpustakaan | Implementasi parsial "pendaftaran drop" tanpa pemicu [DP]. Pengujian fungsionalitas "show_students" di sisi depan [VM]. Memperbaiki cacat DB "show_students" dan kasus uji [NM]. |
| 13 Nov 2018 | Ruang pertemuan perpustakaan | Implementasi dan pengujian “Pendaftaran Siswa Jatuhkan” dari Backend dan Frontend Side [DP] [VM] [NM]. |
| 14 Nov 2018 | Ruang pertemuan perpustakaan | Implementasi Validasi 8 untuk Prosedur Enrolan_student [DP]. Kasus Uji + Skrip SQL Terkait untuk memeriksa pendaftaran siswa [NM]. Implementasi Fungsi Detail TA di Frontend [VM]. |
| 15 Nov 2018 | Ruang pertemuan perpustakaan | Pengujian untuk pemicu saat mendaftarkan siswa di backend [VM]. Implementasi prasyarat kelas tampilan di Frontend [DP]. Kode parsial dan pengujian Hapus Siswa di Frontend [NM]. |
| 19 Nov 2018 | Ruang pertemuan perpustakaan | Gabungan implementasi mendaftar dan menghapus pendaftaran siswa dengan pengujian lengkap dari frontend dan backend [DP] [VM] [NM]. |
| 26 Nov 2018 | Ruang pertemuan perpustakaan | Gabungan implementasi siswa hapus dengan pengujian lengkap dari frontend dan backend [dp] [vm] [nm]. |
| 28 Nov 2018 | Ruang pertemuan perpustakaan | Pengujian menyeluruh dari semua prosedur, pemicu dan cacat tetap bersama -sama dari frontend dan sisi backend [NM] [VM] [DP]. |
| 29 Nov 2018 | Ruang pertemuan perpustakaan | Laporan Proyek dan Pengaturan DB Akhir untuk Demo [VM] [NM] [DP]. |
- Peran dan Tanggung Jawab Anggota Tim:
- Semua anggota tim bekerja bersama di ruang pertemuan yang sama untuk mengembangkan dan menguji aplikasi SRS dari Frontend dan Backend Side.
- Kegiatan yang dilakukan oleh anggota tim disebutkan dalam tabel di atas dengan inisial masing -masing.
- Nitesh Mishra [NM]
- Dipika Suresh Patil [DP]
- Vidhi Mewada [VM]
Garis Backend Kode PL-SQL Backend
Nama Paket DB - Student_Registration_system
Prosedur untuk menampilkan tupel dari masing -masing dari tujuh tabel. Prosedur ini mengembalikan kursor REF sebagai parameter yang digunakan di sisi depan untuk menampilkan tupel tujuh tabel dB.
- Prosedur show_students (ref_cursor_students out ref_cursor);
- Prosedur show_tas (ref_cursor_tas out ref_cursor);
- Prosedur show_courses (ref_cursor_courses out ref_cursor);
- Prosedur show_classes (ref_cursor_classes out ref_cursor);
- Prosedur show_enrollments (ref_cursor_enrolments out ref_cursor);
- Prosedur show_perequisites (ref_cursor_perequisites out ref_cursor);
- Prosedur show_logs (ref_cursor_logs out ref_cursor);
Tipe Global -
- Ketik ref_cursor adalah kursor ref;
- Kursor ref ini dikembalikan dari prosedur individual sebagai kueri pilih.
Prosedur untuk menampilkan B#, nama depan dan nama belakang TA untuk input ClassID.
- Prosedur class_ta (classid_in di class.classid%tipe, ta_b#_out out class.ta_b#%tipe, first_name_out out student.first_name%tipe, last_name_out out student.last_name%tipe);
- Validasi:
- Jika kelas tidak memiliki TA, laporkan "Kelas tidak memiliki TA."
- Jika classID yang disediakan tidak valid (yaitu, bukan di tabel kelas), laporkan "ClassID tidak valid."
Prosedur mengembalikan semua kursus prasyarat langsung dan tidak langsung.
- Prosedur class_prereq (dept_code_in di prasyarat.dept_code%tipe, kursus#_in dalam prasyarat.course#%tipe, pre_req_out out varchar2);
- Validasi:
- Jika yang disediakan (DEPT_CODE, Kursus#) tidak valid, laporkan "DEPT_CODE || Kursus# tidak ada."
Prosedur menangani pendaftaran siswa ke dalam kelas.
- Prosedur Enroll_student (b#_in dalam jenis siswa.
- Validasi:
- Jika siswa tidak berada di tabel siswa, laporkan "B# tidak valid."
- Jika ClassID tidak ada di tabel kelas, laporkan "ClassID tidak valid."
- Jika kelas tidak ditawarkan di semester saat ini (yaitu, musim gugur 2018), tolak pendaftaran dan laporan "tidak dapat mendaftar ke kelas dari semester sebelumnya."
- Jika kelas sudah penuh sebelum permintaan pendaftaran, tolak permintaan pendaftaran dan laporkan "Kelas sudah penuh."
- Jika siswa sudah ada di kelas, laporkan "Siswa sudah ada di kelas."
- Jika siswa sudah terdaftar di empat kelas lain di semester yang sama dan tahun yang sama, laporkan "siswa akan kelebihan beban dengan pendaftaran baru." tetapi masih membiarkan siswa terdaftar.
- Jika siswa sudah terdaftar di lima kelas lain di semester yang sama dan tahun yang sama, laporkan "Siswa tidak dapat terdaftar di lebih dari lima kelas di semester yang sama." dan tolak pendaftarannya.
- Jika siswa belum menyelesaikan kursus prasyarat yang diperlukan dengan setidaknya kelas C, tolak pendaftaran dan laporkan "prasyarat tidak puas."
Prosedur menangani penghapusan siswa dari tabel pendaftaran.
- Prosedur delete_student_enrollment (b#_in dalam jenis siswa.b#%, classid_in di class.classid%tipe);
- Validasi:
- Jika siswa tidak berada di tabel siswa, laporkan "B# tidak valid."
- Jika ClassID tidak ada di tabel kelas, laporkan "ClassID tidak valid."
- Jika siswa tidak terdaftar di kelas, laporkan "Siswa tidak terdaftar di kelas."
- Jika kelas tidak ditawarkan pada musim gugur 2018, tolak upaya drop dan laporkan "Hanya pendaftaran di semester saat ini yang dapat dibatalkan."
- Jika menjatuhkan siswa dari kelas akan menyebabkan pelanggaran terhadap persyaratan prasyarat untuk kelas lain, tolak upaya drop dan laporkan "Penurunan itu tidak diizinkan karena kelas lain yang didaftarkan siswa menggunakannya sebagai prasyarat." Dalam semua kasus lainnya, siswa akan dijatuhkan dari kelas.
- Jika kelas adalah kelas terakhir untuk siswa, laporkan "Siswa ini tidak terdaftar di kelas apa pun."
- Jika siswa adalah siswa terakhir di kelas, laporkan "Kelas sekarang tidak memiliki siswa."
Prosedur menangani penghapusan siswa dari tabel siswa berdasarkan B#.
- Prosedur Delete_student (b#_in dalam tipe siswa.b#%);
- Validasi:
- Jika siswa tidak berada di tabel siswa, laporkan "B# tidak valid."
Objek DB Terkait - Objek ini bukan bagian dari paket dan digunakan dalam aplikasi.
- Urutan untuk menghasilkan log# secara otomatis ketika catatan log baru dimasukkan dalam tabel log.
- Pemicu untuk membuat entri dalam tabel log pada penghapusan entri tabel pendaftaran.
- Trig_on_del_enroll_ins_logs
- Pemicu untuk mengurangi ukuran kelas di tabel kelas pada penghapusan entri tabel pendaftaran.
- Trig_on_del_enroll_upd_classses
- Pemicu untuk menghapus entri tabel TA pada penghapusan entri tabel siswa.
- Trig_on_del_students_del_ta
- Pemicu untuk membuat entri dalam tabel log pada penghapusan entri tabel TA.
- Pemicu untuk membuat entri kolom TA nol di kelas tabel pada penghapusan entri tabel TA.
- Trig_on_del_tas_upd_classes
- Pemicu untuk membuat entri dalam tabel log pada penyisipan entri tabel pendaftaran.
- Trig_on_ins_enroll_ins_logs
- Pemicu untuk meningkatkan ukuran kelas di tabel kelas pada penyisipan tabel pendaftaran.
- Trig_on_ins_enroll_upd_classes
- Pemicu untuk membuat entri dalam tabel log pada pembaruan entri tabel kelas.
- Trig_on_upd_classes_ins_logs
- Pemicu untuk menghapus pendaftaran pada penghapusan entri siswa.
- Trig_on_del_stud_del_enroll
Garis besar kode frontend dan java
- Di bawah ini adalah cuplikan struktur direktori untuk proyek web Java Dynamic menggunakan model arsitektur pengontrol tampilan model:
