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



























Screenshot of Google Lighthouse










Bonus yang dikerjakan
- Dockerize
- 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 |