Skip to content
Snippets Groups Projects
user avatar
Nicholas Liem authored
04d1d486

Tugas Besar 2 - Pengembangan Aplikasi Berbasis Web

Perubahan dari v1

  • Penambahan page activate subscription (ada di dashboard)
  • Penambahan page premium content (ada di dashboard)

Deksripsi Web App - Web App Description

Bondflix adalah sebuah web app klon dari Netflix. Pada web ini, user dapat melakukan pendaftaran dan jika statusnya subscribed maka dapat melihat video-video yang diinginkan. Selain itu, web ini juga menyediakan fitur-fitur manajemen bagi admin untuk melakukan perubahan terhadap user maupun konten yang ditayangkan pada website ini.

Daftar Kebutuhan - Requirements List

  1. Pengguna dapat melihat, menyimpan, dan mencari konten/film yang diinginkan.
  2. Admin dapat mengubah, menghapus, menambahkan pengguna, konten, dan atribut-atribut lain seperti genre.

Cara Menginstall dan Menjalankan Program - How to Install and Run The Program

  1. Clone this repository
git@gitlab.informatika.org:if3110-2023-k01-01-24/tugas-besar-1-wbd.git
  1. Change the current directory to tugas-besar-1-wbd folder
cd tugas-besar-1-wbd
  1. Make a new .env file based on .env.example (you can just remove .example from the file's name)
mv .env.example .env
  1. Build and run your docker containers or run the bat file
docker-compose up -d --build
./scripts/build-image.bat
  1. Run the server in your localhost with port 8080
http://localhost:8080/
  1. [Optional] How to get admin access (1)
Register a new user in the web
  1. [Optional] How to get admin access (1): Access the postgres container.
docker exec -it postgres-db sh
  1. [Optional] How to get admin access (2): Access the postgres db
psql -U wbdasik -d wbd_data
  1. [Optional] How to get admin access (2): Run this SQL
UPDATE users SET is_admin = true WHERE username = your_username;
  1. Congrats, now you can run the program normally!

Screenshot of Application

Screenshot of Google Lighthouse

Bonus yang dikerjakan

  1. Dockerize
  2. Google Lighthouse

Pembagian Kerja - Workload Breakdown

Anggota Kelompok

Nama NIM Panggilan
Cetta Reswara Parahita 13521133 Cetta
Nicholas Liem 13521135 Nicholas
Haziq Abiyyu Mahdy 13521170 Haziq

Server Side:

NIM Nama Fungsionalitas
13521135, 13521170 Nicholas, Haziq Database Design,
API Development
13521135 Nicholas Architecture Design
(Docker, Setup,
Folder Structuring, etc)
13521135 Nicholas Routing,
AutoLoader,
EnvLoader,
Containers,
Logging,
Middlewares
13521135 Nicholas Handlers, Services, Repositories, and Entities:
AdminService,
AuthService,
MyListService,
UploadService
13521170 Haziq Handlers, Services, Repositories, and Entities:
CategoryService,
ContentService,
GenreService,
ContentRelationHandler and Repo (5 pcs each)
13521135 Nicholas Filtering and Paging Mechanism

Client Side:

NIM Nama Fungsionalitas
13521135, 13521170 Nicholas, Haziq Database Design,
API Development
13521135 Nicholas Pages (HTML, CSS, JS):
AdminUsers,
AdminContent,
UserDashboard,
MyList,
Search Functionality (Debounce),
Modals,
Filtering,
HTTP Client / XMLHTTPRequest,
404,
Login,
Logout,
Index,
Subscribe
13521170 Haziq Pages (HTML, CSS, JS):
AdminMediaManagement,
AdminContent,
Watch,
MyList,
HTTP Client (File Upload),
Account (User account settings page),
UserDashboard + responsive page,
AdminSidebar