Buzzwin is an open-source social platform that lets users track, review, and discuss movies and TV shows with friends and communities.
- 🎯 Track movies and TV shows you're watching
- ⭐ Share reviews and ratings
- 👥 Create and join watch clubs
- 📝 Curate personal watchlists
- 🤝 Follow friends and see their activity
- 🌙 Dark/Light mode support
- 🔐 Secure authentication with Google & Email
- 📱 Responsive design for all devices
- Frontend: Next.js, TypeScript, Tailwind CSS
- Backend: Firebase (Firestore, Auth)
- APIs: TMDB API for movie/TV show data
- Animation: Framer Motion
- State Management: React Context
- UI Components: Headless UI
- Clone the repository:
git clone https://github.com/yourusername/buzzwin.git
cd buzzwin- Install dependencies:
npm install
# or
yarn install- Create a
.env.localfile in the root directory with your API keys:
NEXT_PUBLIC_TMDB_API_KEY=your_tmdb_api_key
NEXT_PUBLIC_TMDB_ACCESS_TOKEN=your_tmdb_access_token
GEMINI_API_KEY=your_gemini_api_key- Start the development server:
npm run dev
# or
yarn devNEXT_PUBLIC_TMDB_API_KEY: TMDB API key for movie/TV show dataNEXT_PUBLIC_TMDB_ACCESS_TOKEN: TMDB access tokenGEMINI_API_KEY: Gemini API key for AI-powered features
-
Clone the repository
git clone https://github.com/yourusername/buzzwin.git cd buzzwin -
Install dependencies
npm install # or yarn install -
Create a Firebase project and select the web app
-
Add your Firebase config to
.env.development. Note thatNEXT_PUBLIC_MEASUREMENT_IDis optional -
Make sure you have enabled the following Firebase services:
- Authentication. Enable the Google sign-in method.
- Cloud Firestore. Create a database and set its location to your nearest region.
- Cloud Storage. Create a storage bucket.
-
Install Firebase CLI globally
npm i -g firebase-tools
-
Log in to Firebase
firebase login
-
Get your project ID
firebase projects:list
-
Select your project ID
firebase use your-project-id
-
Deploy Firestore rules, Firestore indexes, and Cloud Storage rules
firebase deploy --except functions
-
Run the project
npm run dev
Note: When you deploy Firestore indexes rules, it might take a few minutes to complete. So before the indexes are enabled, you will get an error when you fetch the data from Firestore.
You can check the status of your Firestore indexes with the link below, replaceyour-project-idwith your project ID: https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes
Optional:
- If you want to get trending data from Twitter API, you need to create a Twitter developer account and get your API keys. Then add your API keys to
.env.development. I hope Elon Musk doesn't make this API paid 😅. - If you want to make the user stats synced with the deleted tweets, you need to enable the Cloud Functions for Firebase. Then deploy the Cloud Functions.