Tugas Besar IF3310 Web Based Development
Releases · Project Specifications
Awesome people behind this project
| NIM | Name | GitHub |
| 13523002 | Refki Alfarizi | |
| 13523062 | Aliya Husna Fayyaza | |
| 13523078 | Anella Utari Gunadi |
This repository is the capstone project for the IF3310 Web Based Development course (2025) at Institut Teknologi Bandung. It was developed in two milestones: Milestone 1 implemented the core marketplace using plain PHP on the server and vanilla JavaScript/HTML/CSS on the client (Docker-ready), while Milestone 2 extended the system with a modern React single-page application, real-time features via WebSocket/Node.js for auctions and chat, and an administration system. The React SPA, Node.js backend, and PHP are all orchestrated behind Nginx, so users can access the entire application through the Nginx entrypoint.
- Docker
- Docker Compose
- Git
- Make (optional)
-
Clone this repository
git clone https://github.com/Labpro-22/milestone-1-tugas-besar-if-3110-web-based-development-k02-03.git
-
.envCreate a
.envby copying from .env.example and fill it in project root. Example:APP_ENV=dev APP_PORT=8080 ADMINER_PORT=8081 POSTGRES_USER=postgres POSTGRES_PASSWORD=semoga_wbd_wbd_ini_selesai POSTGRES_DB=nimonspedia POSTGRES_PORT=5433 APP_URL=http://localhost:${APP_PORT} DB_DSN=pgsql:host=db;port=5432;dbname=${POSTGRES_DB} DB_USER=${POSTGRES_USER} DB_PASS=${POSTGRES_PASSWORD} JWT_SECRET=semoga_wbd_wbd_ini_selesai UPLOAD_MAX_MB=2 POST_MAX_MB=4 ADMIN_EMAIL=admin@nimon.local ADMIN_PASSWORD=admin123 ADMIN_NAME=Admin VAPID_PUBLIC_KEY:generate VAPID_PRIVATE_KEY:generate VAPID_EMAIL:mailto:admin@nimon.local
Note
Use npx web-push generate-vapid-keys to get VAPID keys
-
Build Docker container
docker-compose build
-
Run
# from project root make upOR
docker compose up -d --build
- App (Nginx) default:
http://localhost:8080(APP_PORTdefaults to8080) - Adminer default:
http://localhost:8081(ADMINER_PORTdefaults to8081) - Postgres on host: port
5433→ container5432(config:POSTGRES_PORT:-5433)
- App (Nginx) default:
-
Open the app and db panel
App: http://localhost:8080 Adminer: http://localhost:8081-
Adminer connection example:
- System / Server:
db(or leave as default) - Username:
postgres(or${POSTGRES_USER}) - Password:
secret(or${POSTGRES_PASSWORD}) - Database:
nimonspedia(or${POSTGRES_DB})
- System / Server:
-
See Makefile for list of useful commands to get started or developing.
Register Page
Register Page Lighthouse Result
Login Page
Login Page Lighthouse Result
Product Discovery Page For Guest
Product Discovery Page For Buyer
Product Discovery Page Lighthouse
Product Detail Page For Guest
Product Detail Page For Buyer (1)
Product Detail Page For Buyer (2)
Product Detail Page Lighthouse
Store Detail Page For Guest
Store Detail Page For Buyer
Store Detail Page Lighthouse
Shopping Cart Page 1
Shopping Cart Page 2
Shopping Cart Page 3
Shopping Cart Page Lighthouse
Checkout Page 1
Checkout Page 2
Checkout Page 3
Checkout Page 4
Checkout Page Lighthouse
Order History Page 1
Order History Page 2
Order History Page 3
Order History Page Lighthouse
Top Up Modal 1
Top Up Modal 2
Top Up Modal 3
Profile Page 1
Profile Page 2
Profile Page 3
Profile Page Lighthouse
Change Password Page 1
Change Password Page 2
Change Password Page 3
Change Password Page 4
Change Password Page Lighthouse
Seller Dashboard Page 1
Seller Dashboard Page 2 (edit store information)
Seller Dashboard Page 3 (data export)
Seller Dashboard Page Lighthouse Result
Product Management Page 1
Product Management Page 2 (delete product)
Product Management Page 3 (with auction)
Add Product Page 1 (basic information)
Add Product Page 2 (product detail)
Add Product Page 3 (selling information)
p align="center">Add Product Page Lighthouse Result
Edit Product Page
p align="center">Edit Product Page Lighthouse Result
Order Management Page 1
Order Management Page 2 (status selection)
Seller Chat Page 1 (chat list)
Seller Chat Page 2 (chat room)
Seller Chat Page Lighthouse Result
Seller Chat Page Lighthouse Result
Auction List
Auction List Lighthouse
Auction Detail
Auction Detail Lighthouse
Auction Detail Seller 1
Auction Detail Seller 2
Auction Seller Dashboard
Auction Seller Dashboard Lighthouse
Auction Form
Auction Form Lighthouse
Admin Login Page 1
Admin Login Page 3
Admin Login Page 3
Admin Login Page Lighthouse
Admin Dashboard Page 1
Admin Dashboard Page 3
Admin Dashboard Page 3
Admin Dashboard Page Lighthouse
Disable Chat Flag Global 1
Disable Chat Flag Global 2
Disable Chat Flag Global 3
Disable Chat Flag Global 4
Disable Chat Flag Global 5
Disable Checkout Flag 1
Disable Checkout Flag 2
Disable Checkout Flag 3
Disable Auction Flag 1
Disable Auction Flag 2
Disable Auction Flag 3
| Feature | Assigned To |
|---|---|
| Client-side | |
| Login | 13523062 |
| Register | 13523002, 13523062 |
| Product Discovery | 13523078 |
| Detail Product | 13523078 |
| Detail Store | 13523078 |
| Shopping Cart | 13523078 |
| Checkout | 13523078 |
| Order History | 13523078 |
| Profile | 13523078 |
| Product Management | 13523062 |
| Add Product | 13523062 |
| Edit Product | 13523062 |
| Seller Dashboard | 13523062 |
| Order Management | 13523062 |
| Server-side | |
| System Configuration | 13523002 |
| Routing and Abstraction | 13523002 |
| Login | 13523002 |
| Register | 13523002 |
| Product Discovery | 13523078 |
| Detail Product | 13523078 |
| Detail Store | 13523078 |
| Shopping Cart | 13523002 |
| Checkout | 13523002 |
| Order History | 13523002 |
| Profile | 13523002, 13523078 |
| Product Management | 13523062 |
| Add Product | 13523062 |
| Edit Product | 13523062 |
| Seller Dashboard | 13523062 |
| Order Management | 13523002 |
| BONUS | |
| All Responsive Web Design | 13523002, 13523062, 13523078 |
| Tokopedia-like UI | 13523002, 13523062, 13523078 |
| Data Export | 13523062 |
| Google Lighthouse | 13523002, 13523062, 13523078 |
| Feature | Assigned To |
|---|---|
| Client-side | |
| Buyer Chat Page | 13523062 |
| Seller Chat Page | 13523062 |
| Push Notification | 13523062 |
| Admin Login Page | 13523078 |
| Admin Dashboard Page | 13523078 |
| Auction List Page | 13523002 |
| Auction Detail Page | 13523002 |
| Auction Seller Dashboard Page | 13523002 |
| Server-side | |
| Setup | 13523002 |
| Buyer Chat Page | 13523062 |
| Seller Chat Page | 13523062 |
| Push Notification | 13523062 |
| Admin Login Page | 13523078 |
| Admin Dashboard Page | 13523078 |
| Feature Flags | 13523078 |
| Auction List Page | 13523002 |
| Auction Detail Page | 13523002 |
| Auction Seller Dashboard Page | 13523002 |
| BONUS | |
| All Responsive Web Design | 13523002, 13523062, 13523078 |
| Tokopedia-like UI | 13523002, 13523062, 13523078 |
| Google Lighthouse | 13523002, 13523062, 13523078 |
Grateful acknowledgment to:
- Our Course Assistants, for preparing a very detailed specification and providing really fast response in the QnA.
- Ir. Yudistira Dwi Wardhana Asnar, S.T, Ph.D., for approving deadline extensions.
- Team members, for always being available, working on assigned tasks, and not ngilang.
- Bukalapak, for providing a 24 hour available comfy room for me to work, sleep, and eat.






















































































