Brain.js example with platform for discovering movies, books, and series, inspired by Spotify. Browse, save favorites, and explore personalized recommendations tailored to your tastes.
- 🎬 Browse movies, TV shows, and books in one place
- 🎯 Get personalized recommendations based on your preferences
- 📚 Track your watchlist and reading list
- ⭐ Rate and review content
- 📱 Responsive design for all devices
- 🎨 Beautiful, modern UI with dark mode
- 🔍 Advanced search and filtering
- 📊 View your watching/reading history and stats
- Frontend Framework: React with TypeScript
- Styling: Tailwind CSS
- State Management: React Context + Hooks
- Routing: React Router
- API Integration: Axios
- Machine Learning: brain.js for recommendations
- Build Tool: Vite
- Package Manager: yarn
- Typesafe API: tRPC
- Node.js (v14 or higher)
- npm (v7 or higher)
- Clone the repository:
git clone https://github.com/alexrosepizant/recomfy.git
cd recomfy
- Install dependencies:
yarn install
- Create a
.env
file in the root directory and add your API keys:
VITE_TMDB_API_KEY=your_tmdb_api_key_here
VITE_GOODREADS_API_KEY=your_goodreads_api_key_here
- Start the development server:
yarn run dev
Variable | Description |
---|---|
VITE_TMDB_API_KEY |
API key for The Movie Database (TMDB) |
VITE_GOODREADS_API_KEY |
API key for Goodreads |
src/
├── components/ # React components
│ ├── browse/ # Browse-related components
│ ├── filters/ # Filter components
│ ├── layout/ # Layout components
│ ├── media/ # Media-related components
│ ├── search/ # Search components
│ └── ui/ # Reusable UI components
├── contexts/ # React contexts
├── hooks/ # Custom React hooks
├── services/ # API and service integrations
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
- Component Organization: Components are organized by feature/domain
- Type Safety: TypeScript is used throughout the project
- Code Splitting: Components and utilities are modular
- State Management: Context API for global state
- Error Handling: Comprehensive error handling and user feedback
- Performance: Optimized with lazy loading and memoization
- Accessibility: ARIA labels and semantic HTML
- Testing: Unit tests for critical functionality
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- The Movie Database (TMDB) for movie and TV show data
- Google Books API for book data
- brain.js for machine learning capabilities
- Tailwind CSS for styling
- Lucide Icons for beautiful icons