Skip to content

Make more out of regular boring youtube tutorials !

Notifications You must be signed in to change notification settings

deepraj02/Commitz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Commitz

Commitz Logo

Convert YouTube videos into smart GitHub issues with AI-powered analysis.

Overview

Commitz is a modern Flutter application that transforms educational YouTube videos into structured GitHub issues. By leveraging Google's Gemini AI technology, Commitz extracts knowledge from video content and creates well-formatted issues complete with learning objectives, implementation steps, and best practices.

Features

  • YouTube Video Processing: Extract and analyze transcripts from any YouTube video
  • AI-Powered Issue Generation: Convert video content into well-structured GitHub issues
  • Responsive Design: Works across mobile, tablet, and desktop platforms
  • Project Management: View and manage all your generated projects in one place
  • Secure Authentication: Firebase authentication for secure user management

Architecture

Commitz uses a modern architecture with:

  • Frontend: Flutter framework with Riverpod for state management
  • Backend: Python FastAPI service for API endpoints
  • AI Processing: Google Gemini API for natural language processing
  • Caching: Redis for performance optimization
  • Storage: Firebase Firestore for project data persistence
flowchart TB
    %% Main components with descriptive labels
    subgraph Client["Client"]
        Flutter["Flutter Web/Mobile App"]
        subgraph State["State Management"]
            Riverpod["Riverpod Providers"]
        end
        subgraph UI["UI Components"]
            Auth["Auth Pages"]
            Home["Home Pages"]
            Project["Project Pages"]
        end
        Router["Go Router"]
    end

    subgraph Backend["Python Backend"]
        FastAPI["FastAPI Service"]
        YTService["YouTube Transcript Service"]
        GeminiService["Gemini AI Service"]
        Redis["Redis Cache"]
    end

    subgraph Firebase["Firebase Services"]
        Auth_FB["Firebase Authentication"]
        Firestore["Firestore Database"]
    end

    subgraph External["External Services"]
        YT_API["YouTube API"]
        Gemini_API["Google Gemini API"]
    end

    %% Connections and data flow
    Flutter --> Router
    Router --> Auth
    Router --> Home
    Router --> Project
    
    Auth --> Auth_FB
    Home --> Riverpod
    Project --> Riverpod
    
    Riverpod --> FastAPI
    Riverpod <--> Firestore
    
    FastAPI --> YTService
    FastAPI --> GeminiService
    FastAPI <--> Redis
    
    YTService --> YT_API
    GeminiService --> Gemini_API
    
    FastAPI --> Firestore
    
    %% Authentication flow
    Auth_FB <--> Flutter
    
    %% Styling
    classDef flutter fill:#42A5F5,color:white
    classDef firebase fill:#FFCA28,color:black
    classDef backend fill:#26A69A,color:white
    classDef external fill:#78909C,color:white
    
    class Flutter,Router,Auth,Home,Project,Riverpod,UI,State flutter
    class Auth_FB,Firestore,Firebase firebase
    class FastAPI,YTService,GeminiService,Redis,Backend backend
    class YT_API,Gemini_API,External external
Loading

Getting Started

Prerequisites

  • Flutter 3.x (latest stable version)
  • Dart SDK
  • Firebase project setup
  • Python 3.8+ (for backend)
  • Docker
  • Gemini API Key

Setup

  1. Clone the repository:

    git clone https://github.com/deepraj02/commitz.git
    cd commitz
  2. Env Setup: In the backend/ directory create a .env file and add your Gemini API key

    GEMINI_API_KEY= XXXX
  3. Install Flutter dependencies:

    flutter pub get
  4. Set up Firebase:

    • Create a Firebase project
    • Configure Firebase for Flutter following the official guide
    • Enable Firebase Authentication and Firestore
  5. Set up and run backend:

     cd backend && docker compose up -d --build
  6. Run the Flutter app:

    flutter run -d chrome

Usage

  1. Log in to your account using Firebase authentication
  2. Create a new project by providing a project name
  3. Paste a YouTube URL of an educational/tutorial video
  4. Generate issues by clicking the "Generate" button
  5. View and manage your projects and generated issues

Tech Stack

  • Frontend:

    • Flutter
    • Riverpod (state management)
    • Freezed (immutable models)
    • Go Router (navigation)
    • Dio (API communication)
  • Backend:

    • Python
    • FastAPI
    • Google Gemini API
    • YouTube Transcript API
    • Redis
  • Storage/Authentication:

    • Firebase Authentication
    • Firestore

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  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

About

Make more out of regular boring youtube tutorials !

Resources

Stars

Watchers

Forks

Packages

No packages published