Convert YouTube videos into smart GitHub issues with AI-powered analysis.
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.
- 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
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 - Flutter 3.x (latest stable version)
- Dart SDK
- Firebase project setup
- Python 3.8+ (for backend)
- Docker
- Gemini API Key
-
Clone the repository:
git clone https://github.com/deepraj02/commitz.git cd commitz -
Env Setup: In the
backend/directory create a.envfile and add your Gemini API keyGEMINI_API_KEY= XXXX
-
Install Flutter dependencies:
flutter pub get
-
Set up Firebase:
- Create a Firebase project
- Configure Firebase for Flutter following the official guide
- Enable Firebase Authentication and Firestore
-
Set up and run backend:
cd backend && docker compose up -d --build
-
Run the Flutter app:
flutter run -d chrome
- Log in to your account using Firebase authentication
- Create a new project by providing a project name
- Paste a YouTube URL of an educational/tutorial video
- Generate issues by clicking the "Generate" button
- View and manage your projects and generated issues
-
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
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request