{"id":24782420,"url":"https://github.com/mahmovdsayed/movies-cafe","last_synced_at":"2026-01-29T16:31:45.415Z","repository":{"id":313217890,"uuid":"1050518521","full_name":"Mahmovdsayed/movies-cafe","owner":"Mahmovdsayed","description":"Movies Cafe is a hub for movies and TV shows, offering detailed information, AI interaction, and social features. Users can create accounts to personalize their experience and connect with others.","archived":false,"fork":false,"pushed_at":"2025-11-27T01:24:08.000Z","size":692,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-29T19:16:39.034Z","etag":null,"topics":["formik","heroui","mongodb","nextjs","nodejs","tailwindcss","yup"],"latest_commit_sha":null,"homepage":"https://moviescafe.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mahmovdsayed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-04T14:42:41.000Z","updated_at":"2025-11-27T01:24:12.000Z","dependencies_parsed_at":"2025-10-12T05:31:59.208Z","dependency_job_id":"0fb038e2-bf93-4447-ad92-2cd7c1aa3442","html_url":"https://github.com/Mahmovdsayed/movies-cafe","commit_stats":null,"previous_names":["mahmovdsayed/movies-cafe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mahmovdsayed/movies-cafe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmovdsayed%2Fmovies-cafe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmovdsayed%2Fmovies-cafe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmovdsayed%2Fmovies-cafe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmovdsayed%2Fmovies-cafe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mahmovdsayed","download_url":"https://codeload.github.com/Mahmovdsayed/movies-cafe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmovdsayed%2Fmovies-cafe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28880980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formik","heroui","mongodb","nextjs","nodejs","tailwindcss","yup"],"created_at":"2025-01-29T11:17:13.400Z","updated_at":"2026-01-29T16:31:45.410Z","avatar_url":"https://github.com/Mahmovdsayed.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Movies Cafe 🎬\n\n![Next.js](https://img.shields.io/badge/Next.js-16.0-black?style=for-the-badge\u0026logo=next.js)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue?style=for-the-badge\u0026logo=typescript)\n![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.0-38B2AC?style=for-the-badge\u0026logo=tailwind-css)\n![MongoDB](https://img.shields.io/badge/MongoDB-6.0-green?style=for-the-badge\u0026logo=mongodb)\n![Redux](https://img.shields.io/badge/Redux-Toolkit-purple?style=for-the-badge\u0026logo=redux)\n\n**Movies Cafe** is a cutting-edge web application designed for movie enthusiasts. It combines a rich database of movies and TV shows with social features and AI-powered insights, delivering a modern, immersive experience.\n\n---\n\n## 🌟 Key Features\n\n### 🎥 Discovery Engine\n\n- **Comprehensive Database**: Powered by **TMDB API**, access millions of movies, TV shows, and people.\n- **Smart Lists**: Explore curated lists like _Trending_, _Top Rated_, _Upcoming_, and _Now Playing_.\n- **Advanced Search**: Find exactly what you're looking for with filters for movies, TV shows, companies, and keywords.\n- **Deep Dive**: View detailed cast \u0026 crew info, production companies, and similar recommendations.\n\n### � AI-Powered Insights\n\n- **Gemini Integration**: Get AI-generated summaries, recommendations, and trivia about your favorite content.\n- **Smart Content**: AI-enhanced descriptions and analysis for a deeper understanding of films.\n\n### 🤝 Social Ecosystem\n\n- **User Profiles**: Customize your presence with avatars and banners.\n- **Activity Feed**: Follow friends and see what they are watching, liking, and reviewing.\n- **Interactive Posts**: Create posts, repost content, and engage with the community through likes and comments.\n- **Collections**: curate your personal **Favorites** and **Watchlist**.\n\n### ⚡ Performance \u0026 Tech\n\n- **Next.js 16**: Leveraging the latest App Router, Server Actions, and Turbopack for blazing fast performance.\n- **PWA Support**: Installable as a Progressive Web App for a native-like experience on mobile.\n- **Responsive Design**: Beautifully crafted UI with **Tailwind CSS** and **HeroUI**, optimized for all devices.\n- **Secure Auth**: Custom JWT-based authentication system with secure cookie handling.\n\n---\n\n## � Project Structure\n\n```bash\nmovies-cafe/\n├── app/                  # Next.js App Router (Pages \u0026 API Routes)\n│   ├── actions/          # Server Actions (Data mutations)\n│   ├── api/              # Internal API endpoints\n│   ├── (routes)/         # Application routes (movies, tv-shows, etc.)\n│   └── layout.tsx        # Root layout\n├── components/           # Reusable UI Components\n│   ├── layout/           # Layout components (Navbar, Sidebar)\n│   ├── ui/               # Atomic UI elements (Buttons, Cards)\n│   └── ...\n├── lib/                  # Core libraries \u0026 configurations\n│   ├── connectToDatabase.ts # MongoDB connection\n│   └── tmdbAPI.ts        # TMDB API wrapper\n├── models/               # Mongoose Data Models (User, Post, Movie, etc.)\n├── redux/                # Global State Management (Redux Toolkit)\n├── helpers/              # Utility functions \u0026 helpers\n├── public/               # Static assets\n└── styles/               # Global styles \u0026 Tailwind config\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- **Node.js** (v18+)\n- **MongoDB** (Local or Atlas)\n- **TMDB API Key** (Get one [here](https://www.themoviedb.org/documentation/api))\n- **Cloudinary Account** (For image hosting)\n- **Google Gemini API Key** (For AI features)\n\n### Installation\n\n1.  **Clone the repository**\n\n    ```bash\n    git clone https://github.com/Mahmovdsayed/movies-cafe.git\n    cd movies-cafe\n    ```\n\n2.  **Install dependencies**\n\n    Using npm:\n\n    ```bash\n    npm install\n    ```\n\n    Or using Bun (faster):\n\n    ```bash\n    bun install\n    ```\n\n3.  **Environment Setup**\n    Create a `.env.local` file in the root directory and populate it with the following variables:\n\n    | Variable                            | Description                                      |\n    | :---------------------------------- | :----------------------------------------------- |\n    | `MONGODB_URI`                       | Connection string for your MongoDB database      |\n    | `API_KEY`                           | Internal API key for securing your API routes    |\n    | `TMDB_API_KEY`                      | Your API Key from The Movie Database (TMDB)      |\n    | `GEMINI_API_KEY`                    | Google Gemini API Key for AI features            |\n    | `NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME` | Cloudinary Cloud Name                            |\n    | `CLOUDINARY_API_KEY`                | Cloudinary API Key                               |\n    | `CLOUDINARY_API_SECRET`             | Cloudinary API Secret                            |\n    | `JWT_SECRET`                        | Secret key for signing JWT tokens                |\n    | `LOGIN_SIG`                         | Secret signature for login verification          |\n    | `EMAIL`                             | Email address for sending notifications/OTP      |\n    | `EMAIL_PASSWORD`                    | App password for the email account               |\n    | `NODE_ENV`                          | Environment mode (`development` or `production`) |\n\n4.  **Run Development Server**\n\n    Using npm:\n\n    ```bash\n    npm run dev\n    ```\n\n    Or using Bun (faster):\n\n    ```bash\n    bun run bun:dev\n    ```\n\n    Open [http://localhost:3000](http://localhost:3000) to view the app.\n\n---\n\n## 📜 Scripts\n\n### npm Scripts\n\n| Command         | Description                                  |\n| :-------------- | :------------------------------------------- |\n| `npm run dev`   | Starts the development server with Turbopack |\n| `npm run build` | Builds the application for production        |\n| `npm run start` | Starts the production server                 |\n| `npm run lint`  | Runs ESLint to check for code quality issues |\n\n### Bun Scripts (Faster Alternative)\n\n| Command             | Description                            |\n| :------------------ | :------------------------------------- |\n| `bun run bun:dev`   | Starts the development server with Bun |\n| `bun run bun:build` | Builds the application for production  |\n| `bun run bun:start` | Starts the production server with Bun  |\n\n---\n\n## 🚀 Deployment\n\n### Vercel (Recommended)\n\nThis project is configured to use **Bun** by default on Vercel for faster builds and deployments.\n\n1. **Push to GitHub/GitLab/Bitbucket**\n2. **Import to Vercel**: [vercel.com/new](https://vercel.com/new)\n3. **Configure Environment Variables**: Add all required variables from the table above\n4. **Deploy**: Vercel will automatically use Bun (configured in `vercel.json`)\n\n**Build Configuration** (automatically applied):\n\n- Install Command: `bun install`\n- Build Command: `bun run bun:build`\n- Output Directory: `.next`\n\nThe `vercel.json` file ensures Bun is used by default, providing 3-5x faster builds compared to npm.\n\n---\n\n## 📡 API Overview\n\nThe application exposes several internal API endpoints for data management:\n\n- **`/api/auth/*`**: Handles user authentication (signup, signin, verify).\n- **`/api/users/[username]`**: Fetches user profile data.\n- **`/api/users/[username]/posts`**: Retrieves user posts.\n- **`/api/users/[username]/favorites`**: Manages user favorites.\n- **`/api/users/[username]/watchlist`**: Manages user watchlist.\n- **`/api/users/[username]/aiContent`**: Fetches AI-generated content for the user.\n- **`/api/generate`**: Endpoint to trigger AI content generation.\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! If you'd like to improve Movies Cafe, please follow these steps:\n\n1.  Fork the repository.\n2.  Create a new branch (`git checkout -b feature/AmazingFeature`).\n3.  Commit your changes (`git commit -m 'Add some AmazingFeature'`).\n4.  Push to the branch (`git push origin feature/AmazingFeature`).\n5.  Open a Pull Request.\n\n---\n\n## 📄 License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n---\n\n## 📞 Contact\n\nFor any inquiries or support, please contact:\n**Mahmoud Sayed** - [mahmoudsayed3576@gmail.com](mailto:mahmoudsayed3576@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmovdsayed%2Fmovies-cafe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahmovdsayed%2Fmovies-cafe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmovdsayed%2Fmovies-cafe/lists"}