Skip to content

A ML Augmented Modern Rust desktop application that automatically analyzes video-based courses, creates logical learning structures, and generates personalized study schedules. Built with performance, accessibility, and user experience at its core.

Notifications You must be signed in to change notification settings

k5602/course_pilot

Repository files navigation

Course Pilot 🎓

Rust CI Clippy

Transform YouTube playlists into structured, intelligent study plans

A modern Rust desktop application that automatically analyzes video-based courses, creates logical learning structures, and generates personalized study schedules.

Rust Dioxus License Development Status

✨ Features

Core Functionality

  • Playlist Import - Import YouTube playlists with automatic metadata extraction
  • Smart Modules - Automatic grouping of videos into logical modules
  • Progress Tracking - Track video completion with visual progress bars
  • Video Navigation - Previous/next video links for seamless learning flow

Learning Tools

  • Session Planning - Plan study sessions based on your cognitive limit (15-120 min/day)
  • AI Companion - Ask questions about video content (requires Gemini API)
  • Quiz Generation - Auto-generated MCQ quizzes from video context
  • Per-Video Notes - Take and persist notes for each video

User Experience

  • Dark Theme - Eye-friendly DaisyUI dark theme
  • Settings Persistence - Preferences saved to database
  • Course Management - Delete courses with confirmation dialog
  • Loading States - Skeleton loaders and spinners throughout

🚀 Quick Start

Prerequisites

Linux Dependencies

Building and running on Linux requires several system libraries (WebKit2GTK, GTK3, SQLite3).

Automatic Setup (Recommended):

chmod +x scripts/setup-linux.sh
./scripts/setup-linux.sh

Manual Installation:

Distribution Command
Ubuntu/Debian sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libsqlite3-dev
Fedora sudo dnf install webkit2gtk4.1-devel gtk3-devel sqlite-devel
Arch Linux sudo pacman -S webkit2gtk-4.1 gtk3 sqlite

1. Clone & Configure

git clone https://github.com/k5602/course_pilot.git
cd course_pilot
cp .env.example .env

Edit .env:

DATABASE_URL=course_pilot.db
YOUTUBE_API_KEY=your_youtube_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here  # optional

2. Setup Database

diesel migration run

3. Run

dx serve
# or with logging:
RUST_LOG=info dx serve

4. Build Release

dx build --release

On Linux, you can also use dx bundle --release to create a .deb package.

📦 Distribution

Linux

We provide two formats for Linux:

  1. Debian Package (.deb): Recommended for Ubuntu, Mint, Pop!_OS. Install via sudo apt install ./course-pilot-linux-x64.deb.
  2. Generic Tarball (.tar.gz): Recommended for Arch or other distros. Extract and run course-pilot-launcher. This script will automatically check for missing dependencies and offer to install them for you.

Windows

Download the .zip, extract, and run course_pilot.exe.

⚙️ Configuration

Variable Required Default Description
DATABASE_URL No course_pilot.db SQLite database path
YOUTUBE_API_KEY No - Optional YouTube Data API v3 key (unused)
GEMINI_API_KEY No - Gemini API key for AI features

🔑 API Keys

YouTube API Key (Optional)

Course Pilot uses API-free playlist import by default. A YouTube API key is not required for normal use.

Gemini API Key (Optional)

  1. Visit Google AI Studio
  2. Create an API key

API keys can also be configured in Settings page within the app.

🛠️ Development

# Run development server
dx serve

# Run tests
cargo test --lib

# Lint
cargo clippy --all-targets -- -D warnings

# Format
cargo fmt

# Rebuild database
rm course_pilot.db && diesel migration run

📁 Project Structure

src/
├── application/      # Use cases and DI container
├── domain/           # Entities, ports, value objects
├── infrastructure/   # SQLite, YouTube, LLM adapters
└── ui/
    ├── pages/        # Dashboard, CourseView, VideoPlayer, etc.
    ├── custom/       # Reusable components
    └── hooks.rs      # Data loading hooks

📄 License

MIT License - see LICENSE for details.

About

A ML Augmented Modern Rust desktop application that automatically analyzes video-based courses, creates logical learning structures, and generates personalized study schedules. Built with performance, accessibility, and user experience at its core.

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •