PixelFlix is a video streaming web application inspired by Netflix, built with React, Firebase, and Firestore. The app provides users with a personalized streaming experience, allowing them to create multiple profiles, bookmark movies and shows, and view trending media. Key features include user authentication, profile management, trending recommendations, and media filtering by categories and genres.
Check out the live version of PixelFlix by visiting the link below:
Create an account, explore the main features, and test the multi-profile experience in real-time!
To run PixelFlix locally, you will need the following:
- Node.js (version 14 or later)
- npm (comes with Node.js)
To start using PixelFlix, follow these commands:
-
Clone the Repository:
git clone https://github.com/grammerjam/team-pixelflix.git
-
Change Directories into pixelflix-app:
cd /pixelflix-app
-
Install Dependencies:
npm i
-
Run the Server:
npm run dev
Frontend: React, HTML, SASS
Backend: Firebase (FireAuth, Firestore, Hosting) (serverless)
src/: Contains all the React component code, stylesheets, and assets for the application.
public/: Houses static files like favicon and any non-JavaScript assets.
Field | Data Type | Description |
---|---|---|
userId |
String |
Unique identifier for the user (auto-generated) |
email |
String |
User's email address |
createdAt |
Timestamp |
Date and time the user was created |
profiles |
Array |
Array of profile objects associated with the user |
Field | Data Type | Description |
---|---|---|
profileId |
Number |
Unique identifier for the profile |
avatar |
String |
Avatar image identifier for the profile |
avatarColor |
String |
Color code for the avatar |
name |
String |
Name for the profile |
bookmarks |
Array |
Array of bookmarked items for this profile |
Field | Data Type | Description |
---|---|---|
id |
String |
Unique identifier for the video item in the bookmarks array |
category |
String |
Type of media (e.g., "Movie" or "TV Show") |
genre |
String |
Genre of the media (e.g., "Documentary", "Action") |
isTrending |
Boolean |
Indicates if the media is currently trending |
rating |
String |
Content rating of the media (e.g., "PG", "R") |
thumbnail |
String |
URL to the thumbnail image for the media |
title |
String |
Title of the media |
views |
Number |
Number of views the media has received |
year |
Number |
Year the media was released |
Field | Data Type | Description |
---|---|---|
id |
String |
Unique identifier for the video item |
category |
String |
Type of media (e.g., "Movie" or "TV Show") |
genre |
String |
Genre of the media (e.g., "Documentary", "Action") |
isTrending |
Boolean |
Indicates if the media is currently trending |
rating |
String |
Content rating of the media (e.g., "PG", "R") |
thumbnail |
String |
URL to the thumbnail image for the media |
title |
String |
Title of the media |
views |
Number |
Number of views the media has received |
year |
Number |
Year the media was released |
- Figma Design: Preview the app’s design system in Figma.
- Project Management: View the project’s ClickUp board for task tracking and collaboration.
- Firebase Documentation: Refer to the Firebase documentation to understand how to configure your Firebase and Firestore settings.
Powered by Grammerhub