Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rachel-tanhao/raccoontv-movie-app

๐ŸŽฌโœจ A Netflix clone built by your neighbor raccoon ๐Ÿฆ
https://github.com/rachel-tanhao/raccoontv-movie-app

axios material-ui mui react redux redux-toolkit voice-assistant webapp webpack

Last synced: 6 days ago
JSON representation

๐ŸŽฌโœจ A Netflix clone built by your neighbor raccoon ๐Ÿฆ

Awesome Lists containing this project

README

        

# RaccoonTV - The Movie App ๐ŸŽฌ๐Ÿฟ


Logo

**Hey there, movie lovers!** Itโ€™s me, your sneaky but oh-so-friendly neighborhood raccoon! ๐Ÿฆ Iโ€™ve built **RaccoonTV**, a Netflix-inspired full-stack movie app that does pretty much everything Netflix doesโ€”except, you know, stream full-length movies (ah, copyrights! ๐Ÿ’ธ). What can I say? Iโ€™m just a humble raccoon with empty pockets. ๐Ÿ‘‰๐Ÿ‘ˆ But hey, you can still check out trailers!

On the tech side, RaccoonTV comes fully equipped with user authentication, profile management (build your own watchlist and favorites!), and even an AI Voice Assistant to navigate the app hands-freeโ€”how cool is that? ๐ŸŽฌโœจ

## ๐Ÿ“ Why Did I Build This?

Well, let me tell youโ€”I'm a raccoon with a huge love for Netflix and an even bigger dream of seeing myself on the big screen. But, surprise, surprise, no casting director wanted a raccoon. Like, excuse me? Who wouldnโ€™t want this fluff on their screen?! So one day, I had a brilliant idea: if I canโ€™t be an actor, Iโ€™ll just be the **logo**! ๐Ÿ’ฅ And boomโ€”RaccoonTV was born. I built my own Netflix (!) and slapped my face right on the logo. Woo-hoo! ๐Ÿ˜Ž

![Desktop Demo](demo/desktop-demo.png)

## ๐ŸŒ Live Demo

Hey! Check out my app in action ๐Ÿฟ: [**RaccoonTV - Live Demo**](https://rachel-tanhao.github.io/RaccoonTV-Movie-App/)

![Phone Demo - Dark](demo/mobile-demo-dark.png)

### โœจ Key Features

- **Real-time Data**: Efficient caching and data fetching with **Redux Toolkit Query**, ensuring up-to-date movie information ๐Ÿ”„
- **Optimized Search**: Fast search powered by **React** and **Redux Toolkit** for smooth performance ๐Ÿ”
- **Comprehensive Movie Profiles**: Detailed movie info, including cast, ratings, and trailers, fetched via **Axios** and managed with **Redux** ๐ŸŽฅ
- **Personalized User Experience**: Manage your watchlist and favorites with **user authentication** and **profile management** using **TMDB's API** ๐Ÿ”
- **Voice-Controlled Navigation**: Hands-free browsing and search powered by **Alan AI** ๐Ÿ—ฃ๏ธ

## ๐Ÿ“– Table of Contents

- [RaccoonTV - The Movie App ๐ŸŽฌ๐Ÿฟ](#raccoontv---the-movie-app-)
- [๐Ÿ“ Why Did I Build This?](#-why-did-i-build-this)
- [๐ŸŒ Live Demo](#-live-demo)
- [โœจ Key Features](#-key-features)
- [๐Ÿ“– Table of Contents](#-table-of-contents)
- [๐Ÿ› ๏ธ The Tech Behind RaccoonTV](#๏ธ-the-tech-behind-raccoontv)
- [๐Ÿ”Œ API Calls](#-api-calls)
- [๐Ÿ› ๏ธ Setup Project](#๏ธ-setup-project)
- [๐Ÿด Prerequisites](#-prerequisites)
- [๐Ÿš€ Installation](#-installation)
- [๐Ÿ” Usage](#-usage)
- [๐Ÿ”’ Environment Variables](#-environment-variables)
- [๐Ÿค Contributing](#-contributing)
- [๐Ÿ“ซ Contact Me](#-contact-me)
- [๐Ÿ“„ License](#-license)

## ๐Ÿ› ๏ธ The Tech Behind RaccoonTV

- **Framework**: Built with **React** โš›๏ธ
- **State Management**: Powered by **Redux Toolkit** โš™๏ธ
- **Styling**: Material-UI for that sleek look ๐Ÿ’…
- **API Integration**: **Redux Toolkit Query** for seamless data fetching ๐Ÿ”„
- **HTTP Client**: **Axios** for flexible API requests ๐ŸŒ
- **Data**: TMDB API for comprehensive movie information ๐Ÿฟ
- **Voice Control**: Integrated with **Alan AI** for hands-free navigationโ€”just speak and explore! ๐Ÿ—ฃ๏ธ

## ๐Ÿ”Œ API Calls

I may be a raccoon, but when it comes to fetching data, Iโ€™ve got some serious connections! Using the **TMDB API**, Iโ€™ve integrated all the essential calls to keep your movie experience top-notch. Hereโ€™s what you can expect:

- **Get Genres** โ€“ Because, duh, who doesnโ€™t want to filter by genre? ๐ŸŽญ
- **Get Movies** (by type, search, category, or genre) โ€“ Whether youโ€™re feeling adventurous or already know what you want, Iโ€™ve got you covered.
- **Get Movie Details** (including videos and credits) โ€“ Everything you need to know about a movie, from cast to trailers. ๐ŸŽฅ
- **Get Movie Recommendations** โ€“ Oh yeah, Iโ€™m all about serving up those โ€œyou might also likeโ€ suggestions.
- **Get Actor Details** โ€“ Want to stalkโ€”I mean, followโ€”your favorite actors? Iโ€™ve got the deets. ๐Ÿ•ต๏ธโ€โ™€๏ธ
- **Get Movies by Actor ID** โ€“ Find every movie your favorite star has graced.
- **Get User-Specific Lists** (favorites and watchlist) โ€“ Keep track of all your must-watch films!
- **Authentication Token Request** โ€“ I like to keep things secure, so we start with this. ๐Ÿ”’
- **Create Session ID** โ€“ You need access, I give you access. Simple as that. ๐Ÿ”‘

These API calls are primarily defined in the **TMDB service file** (src/services/TMDB.js)โ€”because even raccoons like to keep things organized. ๐Ÿ—„๏ธ

## ๐Ÿ› ๏ธ Setup Project

### ๐Ÿด Prerequisites

Before you dive into RaccoonTV, make sure you have the following:

- **Node.js** ๐ŸŒณ
- **npm** ๐Ÿ› ๏ธ
- **TMDB API Key** ๐Ÿ”‘
- **Alan AI API Key** ๐Ÿ—ฃ๏ธ

### ๐Ÿš€ Installation

Ready to roll? Follow these steps:

1. **Clone the repository**:
```bash
git clone https://github.com/rachel-tanhaow/RaccoonTV-Movie-App.git
cd RaccoonTV-Movie-App
```

2. **Install dependencies**:
```bash
cd client
npm install
```

3. **Set up environment variables** (details below).

4. **Start the application**:
```bash
npm start
```

## ๐Ÿ” Usage

Once youโ€™ve got the app running, head over to **http://localhost:3000** (or a similar address - check your terminal). You can start browsing movies, searching for titles, and using voice commands to explore the app. ๐ŸŽ™๏ธ

## ๐Ÿ”’ Environment Variables

To get this up and running, you'll need to add your API keys. In the `client` directory, create a `.env` file and include the following:

```
REACT_APP_TMDB_KEY=your_tmdb_api_key
REACT_APP_ALAN_SDK_KEY=your_alan_ai_sdk_key
```

- For TMDB API key: [Grab it here](https://developer.themoviedb.org/docs/getting-started)
- For Alan AI API key: [Grab it here](https://alan.app/)

- ๐Ÿ“ฃ Iโ€™ve temporarily disabled Alan AI voice control because their API key is a bit pricey for this raccoonโ€”$100 to start! ๐Ÿ’ธ But the feature is fully implemented, so if youโ€™re ready to splurge, you can set it up as above.

## ๐Ÿค Contributing

Contributions from fellow movie-loving raccoons are welcome! ๐Ÿฆ If youโ€™ve got an idea or feature to add, feel free to:

1. **Fork the repo** ๐ŸŒ€
2. **Create your feature branch**:
```bash
git checkout -b feature/AmazingFeature
```
3. **Commit your changes**:
```bash
git commit -m 'Add some AmazingFeature'
```
4. **Push to the branch**:
```bash
git push origin feature/AmazingFeature
```
5. **Open a Pull Request**!

## ๐Ÿ“ซ Contact Me

Got questions or feedback? Letโ€™s chat! ๐Ÿ“ง

Hit me up at: **[email protected]**.

## ๐Ÿ“„ License

This project is licensed under the **MIT License**. Check out the [LICENSE](LICENSE) file for more details.