A lightweight web project built in PHP (with HTML/CSS/JS) mimicking core features of Netflix. One of my early attempts at web app design and dynamic content, putting together server-side logic and frontend interaction.
When I started learning web development, I wanted a project that forces me to think about:
- User registration / login flows
- Dynamic pages (movies, shows, search)
- Session / authentication handling
- Page routing & templates
- Simple “watch” interface (just for structure, not streaming real video)
This was a sandbox to practice combining backend + frontend work.
| Layer | Tech / Components |
|---|---|
| Backend | PHP |
| Frontend | HTML, CSS, JavaScript |
| Routing / Views | PHP includes (header, footer, etc.) |
| Data / Entities | Basic PHP files (e.g. entities, includes, category.php) |
| Pages / Features | Login, Register, Movies, Shows, Search, Profile, Watch |
- User registration & login / logout
- Browsing “movies” and “shows”
- Search bar for filtering content
- Profile page
- Watch page (placeholder, not real streaming)
- Session management (so only logged-in users can access certain pages)
-
Clone the repo:
git clone https://github.com/MuhammadAbbasi/UniFlix.git cd UniFlix -
Ensure you have a PHP server available (e.g. via XAMPP, WAMP, or built-in PHP server).
-
Place the project folder in your server’s document root (e.g.
htdocs/UniFlixfor XAMPP). -
Navigate via browser:
http://localhost/UniFlix/index.php -
Register a user → Login → Explore pages.
Home / Movies / Shows / Search
Profile | Logout
When logged out: you see Login / Register
When logged in: you see content pages
(I didn’t build real video streaming — “Watch” page is mock or placeholder.)
- Combining PHP logic with HTML in a maintainable way is messy if you don’t plan structure
- Session and authentication logic is error-prone
- Sanitizing user input (search, forms) is crucial
- Organizing includes (header, footer, templates) helps avoid repetition
- It’s easy to let this kind of project become spaghetti code — structure matters early
- Move to MVC pattern (separate controllers, views, models)
- Use a database (MySQL / SQLite) instead of flat files / basic PHP entities
- Implement user roles (admin / standard user)
- Support features like “add to favorites,” “watchlist,” ratings
- Improve frontend with frameworks (React/Vue) or nicer UI
- Add API endpoints so frontend and backend are decoupled