Skip to content

rodrigodelascio/rodflix-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RodFlix

Table of contents


Overview

RodFlix is a full-stack, database-driven web application for browsing, exploring, and managing television series data. It allows users to discover TV series, navigate through seasons and episodes, and explore detailed cast and crew information, all powered by a relational MySQL database and server-side PHP logic.

The application was designed and developed from first principles as part of an advanced web application development module, and later refined into a portfolio-ready project, demonstrating practical client–server architecture, database design, secure authentication, and administrative workflows.

RodFlix integrates external data from the TVmaze API, allowing authorised administrators to import structured series data and persist it locally. Once imported, all content is served from the application’s own database and file system, ensuring performance, reliability, and independence from third-party services at runtime.

This project intentionally avoids front-end frameworks to showcase a strong understanding of core web technologies, layered architecture, and maintainable server-side design.


Key features

Public features

  • Browse a dynamically generated catalogue of TV series
  • Filter and search by title, status, and genre
  • Paginated catalogue for scalable data display
  • Dedicated pages for:
    • Series
    • Seasons
    • Episodes
    • People (cast and crew)
  • Fully server-rendered HTML for accessibility and SEO
  • Responsive, dark-themed UI with progressive enhancement

Administrative features

  • Secure admin authentication (session-based)
  • Import TV series from the TVmaze API
  • Full CRUD management for series data
  • Post-import workflow with contextual feedback
  • Safe deletion logic that prevents accidental removal of shared assets
  • Admin interface isolated from public navigation

Application structure

RodFlix follows a layered client–server architecture, separating concerns between presentation, application logic, and data persistence.

High-level flow

Browser

Public / Admin PHP pages

Shared application logic (includes/)

MySQL database

Directory structure

/admin → Protected administrative interface
/api → JSON endpoints for async operations
/includes → Shared configuration, DB access, auth, helpers
/assets → CSS, JS, images
/uploads → Locally stored media assets
/sql → Database schema and migrations

  • Public pages are responsible only for rendering data
  • Database access is strictly server-side
  • Shared logic is centralised to improve maintainability
  • API endpoints are decoupled from UI rendering

Admin functionality

Administrative features are not exposed in the public navigation and require authentication.

Admin users can:

  • Log in via a protected login interface
  • Import new series via the TVmaze API
  • Edit imported series data locally
  • Delete series safely without breaking shared references
  • Manage content without affecting public availability

Admin routes are protected using:

  • PHP session handling
  • Regenerated session IDs on login
  • Server-side access checks for all admin pages

Data management and imports

RodFlix integrates with the TVmaze API to retrieve structured data, including:

  • Series metadata
  • Genres, status, and premiere dates
  • Season and episode hierarchies
  • Cast and crew information
  • Associated imagery

Imported data is:

  • Stored locally in a MySQL database
  • Images are downloaded and stored on the server
  • Referenced safely to prevent orphaned files
  • Cleaned up selectively when records are deleted

This approach ensures that once data is imported, the application no longer depends on third-party availability at runtime.


Security considerations

While designed for a personal portfolio deployment, RodFlix implements several production-grade practices:

  • Server-side authentication and access control
  • Prepared statements for all database queries
  • No client-side database access
  • Centralised configuration
  • Session regeneration on login
  • Admin routes isolated from the public UI

The architecture allows for further hardening, such as:

  • IP-restricted admin access
  • Environment-based configuration
  • Role-based permissions
  • Rate limiting for admin actions

Screenshots

  • Series detail page

  • Season and episode navigation

  • Person (cast/crew) page

  • Admin import

  • Admin manage series


Live link


Built with

  • PHP 8
  • MySQL
  • HTML5
  • CSS3
  • Vanilla JavaScript
  • TVmaze API

No front-end or back-end frameworks were used.


Author

About

RodFlix is a full-stack, database-driven web application for browsing, exploring, and managing television series data. It allows users to discover TV series, navigate through seasons and episodes, and explore detailed cast and crew information, all powered by a relational MySQL database and server-side PHP logic.

Topics

Resources

Stars

Watchers

Forks

Contributors