PWEB A - KUIS 2

PWEB A - KUIS 2

Nama : Azhar Abiyu Rasendriya H
Kelas : PWEB A
NRP   : 5025211177

1. Tuliskan Spesifikasi kebutuhan perangkat lunak dan struktur menu yang cocok untuk aplikasi yang akan dibuat.

a. Manajemen Database:

  • Database Management System (DBMS): MySQL, PostgreSQL, MongoDB, atau SQLite.
  • ORM (Object-Relational Mapping): Sequelize (Node.js), Hibernate (Java), atau SQLAlchemy (Python).
  • Backup dan Restore Data: Fitur untuk melakukan pencadangan dan pemulihan data.

b. Media Database:

  • Tipe Media yang Didukung: Gambar, audio, video.
  • Metadata Management: Penanganan metadata untuk media.
  • Optimasi Penyimpanan: Kompresi gambar, caching, atau penyimpanan awan (cloud storage).

c. Chat System:

  • Real-time Communication: WebSocket atau teknologi real-time lainnya.
  • Message Encryption: Pengamanan pesan dengan enkripsi end-to-end.
  • Grup Chat: Kemampuan untuk membuat dan mengelola obrolan grup.

d. Statistik:

  • Pemantauan Kinerja Aplikasi: Pengukuran dan pelacakan kinerja aplikasi.
  • Analisis Penggunaan: Statistik penggunaan aplikasi.
  • Reporting Tools: Alat pelaporan untuk menganalisis data statistik.

e. Keamanan:

  • Autentikasi dan Otorisasi: Sistem autentikasi yang kuat (misalnya OAuth) dan kontrol akses yang tepat.
  • Enkripsi Data: Enkripsi data dalam perpindahan dan penyimpanan.
  • Firewall dan Monitoring: Proteksi terhadap serangan dengan firewall dan pemantauan keamanan.
    • Backend: Node.js (Express), Django (Python), Spring Boot (Java).
    • Frontend: React, Angular, atau Vue.js.
    • Real-time Communication: Socket.io atau WebSocket.
    • UI Framework: Bootstrap, Material UI, atau Ant Design.
    • Keamanan: JSON Web Tokens (JWT), HTTPS.
    • Statistik dan Analisis: Google Analytics atau alat pelacakan kustom.
    2. buatlah desain database struktur tabel yang akan menampung data yang dikelola Tabel data siswa CREATE TABLE Users ( UserID INT PRIMARY KEY, Username VARCHAR(50) UNIQUE NOT NULL, PasswordHash VARCHAR(100) NOT NULL, Email VARCHAR(100) UNIQUE NOT NULL, Name VARCHAR(100) NOT NULL, Age INT, Address VARCHAR(255), ContactInfo VARCHAR(50), EducationHistory TEXT, CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); Tabel jadwal bimbingan CREATE TABLE BimbinganSchedule ( ScheduleID INT PRIMARY KEY, AdvisorID INT, StudentID INT, ScheduleDateTime DATETIME NOT NULL, Location VARCHAR(100), Description TEXT, FOREIGN KEY (AdvisorID) REFERENCES Users(UserID) ON DELETE CASCADE, FOREIGN KEY (StudentID) REFERENCES Users(UserID) ON DELETE CASCADE ); Tabel materi pembelajaran CREATE TABLE LearningMaterials ( MaterialID INT PRIMARY KEY, Title VARCHAR(100) NOT NULL, Description TEXT, UploadTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UploadedBy INT, FilePath VARCHAR(255) NOT NULL, FOREIGN KEY (UploadedBy) REFERENCES Users(UserID) ON DELETE CASCADE );
  • Tabel media (gambar dan video bimbingan) CREATE TABLE Media ( MediaID INT PRIMARY KEY, UserID INT, MediaType ENUM('Image', 'Audio', 'Video') NOT NULL, FileName VARCHAR(255) NOT NULL, FilePath VARCHAR(255) NOT NULL, UploadTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE );
  • Tabel komunikasi (chat)
  • CREATE TABLE Chats ( ChatID INT PRIMARY KEY, SenderID INT, ReceiverID INT, MessageType ENUM('Text', 'Image', 'Audio', 'Video') NOT NULL, MessageContent TEXT, SendTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (SenderID) REFERENCES Users(UserID) ON DELETE CASCADE, FOREIGN KEY (ReceiverID) REFERENCES Users(UserID) ON DELETE CASCADE ); Tabel statistik
  • CREATE TABLE AppStatistics ( StatisticID INT PRIMARY KEY, UserID INT, PageVisited VARCHAR(50) NOT NULL, VisitedTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE ); Tabel keamanan dan log aktivitas
  • CREATE TABLE SecurityLogs ( LogID INT PRIMARY KEY, UserID INT, ActivityType VARCHAR(50) NOT NULL, LogTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE ); 3. Desain front end dan page yang akan dibuat untuk aplikasi
4. sebutkan daftar action untuk backend yang akan dibutuhkan, jelaskan gunakan apa saja.
  1. - User Authentication:

    • Register User: Membuat akun pengguna baru dengan informasi seperti username, email, password, dan informasi profil lainnya.
    • Login: Memverifikasi dan mengotorisasi pengguna untuk mengakses aplikasi.
    • Logout: Menangani permintaan keluar dari sesi pengguna.
  2. - Media Management:

    • Upload Media: Menerima dan menyimpan file media (gambar, audio, video) yang diunggah oleh pengguna.
    • Delete Media: Menghapus file media yang tidak diperlukan.
    • Get Media: Mengambil informasi atau file media berdasarkan kebutuhan.
  3. - Chat System:

    • Send Message: Mengirim pesan ke pengguna atau grup.
    • Receive Message: Menangani penerimaan pesan real-time.
    • Get Chat History: Mendapatkan riwayat percakapan.
  4. - Database Management:

    • CRUD Operations: Melakukan operasi Create, Read, Update, dan Delete pada entitas seperti Users, BimbinganSchedule, LearningMaterials, dll.
    • Search and Filter: Memberikan dukungan untuk pencarian dan penyaringan data.
  5. - Statistik:

    • Collect Usage Data: Mengumpulkan data penggunaan untuk keperluan statistik.
    • Generate Reports: Menyiapkan laporan atau analisis berdasarkan data yang dikumpulkan.
    • Monitoring: Memantau kinerja aplikasi dan menyimpan log aktivitas.
  6. - Security:

    • Token Management: Menghasilkan dan mengelola token keamanan (misalnya, JWT).
    • Encryption: Mengenkripsi data sensitif selama penyimpanan dan transmisi.
    • Access Control: Menangani kontrol akses ke sumber daya.
  7. - UI Integration:

    • Provide APIs: Menyediakan antarmuka pemrograman aplikasi (API) untuk digunakan oleh frontend.
    • Handle UI-related Data: Memberikan data yang diperlukan untuk membangun antarmuka pengguna.
  8. - Bimbingan Schedule:

    • Create Schedule: Membuat jadwal bimbingan baru antara pembimbing dan mahasiswa.
    • Get Schedules: Mendapatkan daftar jadwal bimbingan untuk seorang pengguna tertentu.
  9. - Learning Materials:

    • Upload Material: Mengunggah materi pembelajaran seperti dokumen atau presentasi.
    • Get Materials: Memberikan informasi atau file materi pembelajaran berdasarkan kebutuhan.
  10. - User Profile:

    • View Profile: Memberikan informasi profil pengguna.
    • Update Profile: Mengizinkan pengguna untuk memperbarui informasi profil mereka.

Komentar

Postingan populer dari blog ini

TUGAS 02 - Analisis dan Perancangan Sistem Informasi E

EAS - Analisis dan Perancangan Sistem Informasi E

PWEB A - ETS