Brief: Develop a working online shop for a business of the student's choice (or one assigned by the lecturer), using HTML, CSS, JavaScript, PHP and MySQL.
Required features and marking guide
| Feature | Details | Marks |
|---|---|---|
| Front-end design | Semantic HTML, external CSS, responsive (mobile and desktop), consistent branding | 10 |
| Product catalogue | Categories, product listing, detail page, search, pagination | 10 |
| Shopping cart | Add, update, remove, totals from database, stock check, AJAX badge update | 10 |
| Registration and login | Server and client validation, password_hash, sessions | 10 |
| Checkout and orders | Transaction-based order saving, order history, order statuses | 10 |
| Privileges management | At least customer and admin roles; protected admin pages; ownership checks; CSRF tokens | 10 |
| Admin panel | CRUD for products and categories (with image upload), order management | 10 |
| Password reminder and stay signed-in | Secure reset flow by email; remember-me token | 5 |
| Likes (cached counter) using AJAX | Toggle like, cached count | 5 |
| Service integration | Payment gateway sandbox and email notification (a documented mock is acceptable if live services are unavailable) | 5 |
| Security and code quality | Prepared statements, output escaping, config separate, comments, folder structure | 10 |
| Hosting and documentation | Deployed (or complete go-live checklist), README, ER diagram, user manual | 5 |
| Total | 100 |
Suggested milestones
| Week | Milestone |
|---|---|
| 1 | Proposal, wireframes, ER diagram, database created |
| 2 | Product listing, details, search, pagination, layout complete |
| 3 | Registration, login, roles, cart, checkout |
| 4 | Admin panel, password reset, remember-me, likes |
| 5 | Payment and email integration, security review, testing |
| 6 | Hosting, documentation, presentation and viva |
Deliverables: source code, SQL export, documentation (ER diagram, screenshots, test cases and results, security measures), live link or go-live checklist, and a 10-minute demonstration followed by questions.