https://github.com/mwan9ilwa/cueview-expo
CueView is a personalized TV show tracking app built with React Native and Expo. Track your watching progress, discover new shows, manage your library, and stay updated on releases.
https://github.com/mwan9ilwa/cueview-expo
expo firebase react-native tmdb-api tv
Last synced: 2 months ago
JSON representation
CueView is a personalized TV show tracking app built with React Native and Expo. Track your watching progress, discover new shows, manage your library, and stay updated on releases.
- Host: GitHub
- URL: https://github.com/mwan9ilwa/cueview-expo
- Owner: mwan9ilwa
- Created: 2025-06-21T19:24:53.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-22T21:17:08.000Z (about 1 year ago)
- Last Synced: 2025-06-22T22:24:53.868Z (about 1 year ago)
- Topics: expo, firebase, react-native, tmdb-api, tv
- Language: TypeScript
- Homepage:
- Size: 603 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CueView
CueView is a personalized TV show tracking app built with React Native and Expo. Track your watching progress, discover new shows, manage your library, and stay updated on releases.
## Features
### 🎬 Core Features
- **Personal Library Management**: Track shows as "Watching," "Want to Watch," or "Watched"
- **Episode-Level Progress Tracking**: Mark individual episodes as watched
- **Show Discovery**: Browse trending, popular, and top-rated shows
- **Search & Filters**: Find shows by title, genre, or network
- **Detailed Show Information**: View synopses, cast, trailers, and ratings
- **Personal Ratings & Notes**: Rate shows and add private notes
### 📱 Cross-Platform
- iOS and Android support through React Native
- Consistent user experience across devices
- Offline access with local data caching
### 🔔 Smart Notifications
- New episode alerts for tracked shows
- Season premiere reminders
- Custom episode reminders
### 📊 Insights (Coming Soon)
- Watch time statistics
- Genre preferences
- Monthly progress tracking
## Tech Stack
- **Frontend**: React Native with Expo
- **Language**: TypeScript
- **Navigation**: Expo Router
- **Authentication**: Firebase Auth
- **Database**: Firebase Firestore + SQLite (offline)
- **External API**: The Movie Database (TMDb)
- **Notifications**: Expo Notifications
## Getting Started
### Prerequisites
- Node.js 18+
- npm or yarn
- Expo CLI
- iOS Simulator (for iOS development)
- Android Studio & Emulator (for Android development)
### Installation
1. **Clone the repository**
```bash
git clone
cd CueView
```
2. **Install dependencies**
```bash
npm install
```
3. **Set up environment variables**
```bash
cp .env.example .env
```
Edit `.env` and add your API keys:
- Get Firebase config from [Firebase Console](https://console.firebase.google.com/)
- Get TMDb API key from [TMDb API](https://www.themoviedb.org/settings/api)
4. **Set up Firebase**
- Create a new Firebase project
- Enable Authentication (Email/Password, Google, Apple)
- Create a Firestore database
- Update `config/firebase.ts` with your Firebase config
5. **Start the development server**
```bash
npm start
```
6. **Run on device/simulator**
```bash
npm run ios # iOS
npm run android # Android
npm run web # Web
```
## Project Structure
```
CueView/
├── app/ # Expo Router screens
│ ├── (tabs)/ # Tab navigation screens
│ │ ├── index.tsx # Home screen
│ │ ├── library.tsx # My Shows library
│ │ ├── discover.tsx # Show discovery
│ │ ├── calendar.tsx # Episode calendar
│ │ └── profile.tsx # User profile
│ ├── _layout.tsx # Root layout
│ └── +not-found.tsx # 404 screen
├── components/ # Reusable UI components
├── config/ # Configuration files
│ └── firebase.ts # Firebase configuration
├── contexts/ # React contexts
│ └── AppContext.tsx # Global app state
├── services/ # API and database services
│ ├── auth.ts # Authentication service
│ ├── database.ts # Local SQLite database
│ └── tmdb.ts # TMDb API service
├── types/ # TypeScript type definitions
│ └── index.ts # App-wide types
├── constants/ # App constants
├── hooks/ # Custom React hooks
└── assets/ # Images, fonts, etc.
```
## Development Phases
### Phase 1: Core Infrastructure ✅
- [x] Project setup with Expo and TypeScript
- [x] Firebase configuration
- [x] TMDb API integration
- [x] Basic navigation structure
- [x] Database services (SQLite + Firestore)
- [x] Authentication service
- [x] Global state management
### Phase 2: Core Features (In Progress)
- [ ] Authentication screens (Sign In, Sign Up, etc.)
- [ ] Home screen with Continue Watching
- [ ] Show discovery and search
- [ ] Show details screen
- [ ] Library management
- [ ] Episode tracking
### Phase 3: Advanced Features
- [ ] Push notifications
- [ ] Offline support
- [ ] Personalized recommendations
- [ ] Calendar view
- [ ] Statistics and insights
### Phase 4: Polish & Launch
- [ ] Testing and bug fixes
- [ ] Performance optimization
- [ ] App store preparation
- [ ] Beta testing
## API Keys Setup
### Firebase
1. Go to [Firebase Console](https://console.firebase.google.com/)
2. Create a new project or select existing
3. Go to Project Settings > General > Your apps
4. Add your app and copy the config values to `.env`
### TMDb API
1. Create account at [TMDb](https://www.themoviedb.org/)
2. Go to Settings > API
3. Request an API key
4. Add to `.env` as `EXPO_PUBLIC_TMDB_API_KEY`
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- [The Movie Database (TMDb)](https://www.themoviedb.org/) for show data
- [Expo](https://expo.dev/) for the amazing development platform
- [Firebase](https://firebase.google.com/) for backend services