8000 GitHub - herberthk/wetube: WeTube is a modern movie discovery platform built with Next.js, featuring real-time recommendations, vector search, and an interactive user interface powered by KendoUI components.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

WeTube is a modern movie discovery platform built with Next.js, featuring real-time recommendations, vector search, and an interactive user interface powered by KendoUI components.

Notifications You must be signed in to change notification settings

herberthk/wetube

Repository files navigation

WeTube - Movie Discovery Platform

WeTube Logo

WeTube is a modern movie discovery platform built with Next.js, featuring real-time recommendations, vector search, and an interactive user interface powered by KendoUI components.

📺 Movie list

Movie List

Movie Details with AI powered recommendations

Movie Details

AI powered comments analysis

AI powered comments

Mobile responsive

Mobile

🌟 Features

  • Advanced Search Capabilities

    • Vector-based similarity search
    • Real-time movie recommendations
    • Full-text search with MongoDB
  • Modern UI Components

    • Responsive design with KendoUI React components
    • Infinite scroll for movie listings
    • Skeleton loading states
    • Mobile-first approach
  • Performance Optimized

    • Server-side rendering with Next.js
    • Image optimization
    • Caching strategies
    • MongoDB vector search integration
  • Accessibility

    • WCAG 2.1 compliant
    • Keyboard navigation support
    • Screen reader friendly
    • Semantic HTML structure

🚀 Tech Stack

  • Frontend

    • Next.js 15.2
    • React 19
    • KendoUI React Components
    • TailwindCSS
  • Backend

    • MongoDB with Vector Search
    • Google Gemini AI
    • Langchain
    • Upstash Redis
  • Testing

    • Playwright for E2E testing
    • Axe for accessibility testing

📋 Prerequisites

  • Node.js 18.x or higher
  • MongoDB Atlas account with Vector Search enabled
  • Google AI API key
  • Upstash Redis account

🛠️ Installation

  1. Clone the repository

    git clone https://github.com/herberthk/wetube.git
    cd wetube
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    bun install
  3. Environment Setup Create a .env file in the root directory:

    MONGODB_URI=your_mongodb_uri
    GOOGLE_API_KEY=your_google_ai_api_key
    UPSTASH_REDIS_TOKEN=your_redis_token
  4. Start the development server

    npm run dev
    # or
    yarn dev
    # or
    bun run dev

🧪 Testing

The project includes comprehensive testing setup:

# Run all tests
bun run test

# Run tests with UI
bun run test:ui

# Debug tests
bun run test:debug

# View test reports
bun run test:report

Test Coverage

  • Integration tests for all pages
  • Accessibility compliance testing
  • Cross-browser compatibility
  • Mobile responsiveness
  • API integration tests

📁 Project Structure

wetube/
├── app/                    # Next.js app directory
│   ├── movie/             # Movie details pages
│   ├── search/            # Search results pages
│   └── page.tsx           # Home page
├── components/            # React components
├── lib/                   # Utility functions and actions
│   ├── actions/           # Server actions
│   └── mongodb.ts         # Database configuration
├── public/                # Static assets
├── tests/                # Test files
│   ├── home.spec.ts
│   ├── movie-details.spec.ts
│   ├── search.spec.ts
│   └── accessibility.spec.ts
└── types/                # TypeScript type definitions

🔄 API Routes

  • GET /api/movies - Fetch paginated movie listings
  • GET /api/movies/search - Search movies
  • GET /api/movies/:id - Get movie details
  • POST /api/movies/:id/comments - Add movie comments

🚀 Deployment

The application is optimized for deployment on Vercel:

  1. Connect your GitHub repository to Vercel
  2. Configure environment variables
  3. Deploy with vercel deploy

📈 Performance Optimization

  • Implemented caching strategies
  • Optimized images with Next.js Image component
  • MongoDB indexing for faster queries
  • Client-side caching for recommendations

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📜 License

This project is licensed under the MIT License - see the LICENSE.md file for details

👏 Acknowledgments

📞 Support

For support, email herberthk100@gmail.com or Linkedin.


Built with ❤️ by Herbert

About

WeTube is a modern movie discovery platform built with Next.js, featuring real-time recommendations, vector search, and an interactive user interface powered by KendoUI components.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0