Skip to content

akashvarun10/LearnLab

Β 
Β 

Repository files navigation

LearnLab πŸŽ“

Python FastAPI Next.js Docker License Code style: black Documentation

Enhancing Learning with Fun, Interactive Journeys for Better Comprehension, Revision, and Evaluation.

Project URLs

πŸ‘₯ Team

  • Sai Surya Madhav Rebbapragada
  • Uday Kiran Dasari (Project Manager)
  • Venkat Akash Varun Pemmaraju

User Interaction with LearnLab

  1. Upload/Select a PDF.
  2. Query and summarize the document.
  3. Generate audio podcasts for convenient learning.
  4. Create interactive flashcards for revision.
  5. Take quizzes to test understanding.
  6. Generate and share blogs summarizing key points.

Core Features

1. Podcast Generation

  • Automated script generation from PDFs.
  • Dramatized and engaging podcasts for enhanced comprehension.

2. Interactive Flashcards

  • AI-powered extraction of key concepts.
  • Categorized by difficulty levels for personalized learning.

3. Content Transformation

  • Platform-specific article generation.
  • Efficient citation and reference management.

4. Interactive Quizzes

  • AI-driven question generation.
  • Instant feedback with detailed explanations.

Project Overview

Scope

  • PDF processing and storage.
  • Multimodal content generation (audio, textual).
  • Cloud-based architecture with user authentication.

Stakeholders

  • Students, educators, researchers, professionals, and content creators.

Problem Statement

  • Inefficient comprehension and retention of dense academic content.
  • LearnLab resolves this with multimodal, engaging learning experiences.

Accomplishments

  • Reduced podcast generation time by ~50%.
  • Robust quiz and flashcard generation.
  • Time and resource optimization for content creation.

Methodology

Podcast Generation

  1. Content Cleaning: Extract key text using LLMs.
  2. Transcript Creation: Generate coherent summaries.
  3. Dramatization: Enhance engagement with LLM dramatization.
  4. Audio Generation: Convert to audio using TTS tools.

Flashcard Generation

  1. Extract key concepts from PDF.
  2. Organize into structured flashcards by difficulty.

Quiz Generation

  • Create interactive MCQs using PDF context and LLMs.

Blog Generation

  • Summarize PDF insights into blogs.
  • Share directly on Blogger or social media.

Workflow Overview

  1. Audio Podcasts: Learn on the go.
  2. Flashcards: Facilitate structured revision.
  3. Quizzes: Assess retention and comprehension.
  4. Blogs/Social Media: Share insights and collaborate.

πŸ› οΈ Technology Stack

Backend

  • Python
  • FastAPI
  • JWT
  • PostgreSQL

Frontend

  • Next.js
  • Tailwind CSS
  • Vercel AI SDK

AI/ML

  • OpenAI
  • LangGraph
  • Gemini Learn LM 1.5
  • PyPDF
  • 11 Labs
  • Pinecone

Cloud & DevOps

  • GCP
  • AWS
  • Docker
  • GitHub Actions
  • Apache Airflow

πŸ—οΈ Architecture

User Flow

flowchart TD
  A[Start] --> B[Login Screen]
  B --> C{Authentication}
  C -->|Success| D[Dashboard]
  C -->|Failure| B
  
  D --> E{New or Existing Resource}
  
  E -->|Upload New| F[Upload PDF Resource]
  F --> G[Processing Document]
  G --> H{Select Learning Mode}
  
  E -->|Pick Existing| H
  
  H -->|Option 1| I[Podcast Generation]
  I --> I1[Generate Audio]
  I1 --> I2[Listen & Learn]
  I2 --> M[Learning Metrics]
  
  H -->|Option 2| J[Flashcard Mode]
  J --> J1[View Cards]
  J1 --> J2[Practice Cards]
  J2 --> M
  
  H -->|Option 3| K[Quiz Mode]
  K --> K1[Take Quiz]
  K1 --> K2[Review Answers]
  K2 --> M
  
  M --> N{Continue Learning?}
  N -->|Yes| H
  N -->|No| O{Share Progress?}
  
  O -->|Yes| P[Generate Content]
  P --> P1[Blog Post]
  P --> P2[Social Media Post]
  O -->|No| Q[Exit]
  P1 --> Q
  P2 --> Q
Loading

Agentic architecture

Learn Lab Agent Architecture Agent Architecture

πŸš€ Getting Started

Prerequisites

  • Python 3.9+
  • Node.js 16+
  • Docker
  • GCP Account
  • AWS Account
  1. Setup Environment:
# Clone repository
git clone https://github.com/DAMG7245-Big-Data-Sys-SEC-02-Fall24/LearnLab
cd LearnLab

# Initialize environments and configurations
# Add all relavent .env files
  1. Start Services:
# Start all services
docker-compose up -d

# Or start specific services
docker-compose up -d frontend backend

Service Ports

Service Port URL
Frontend 3000 http://localhost:3000
Backend 8000 http://localhost:8000
Airflow 8080 http://localhost:8080
Database 5432 postgres://localhost:5432

Essential Commands

Development

# Build specific service
docker-compose build <service-name>

# View logs
docker-compose logs -f <service-name>

# Restart service
docker-compose restart <service-name>

Database

# Access PostgreSQL CLI
docker-compose exec db psql -U postgres

# Backup database
docker-compose exec db pg_dump -U postgres learnlab > backup.sql

Cleanup

# Stop all services
docker-compose down

# Remove volumes
docker-compose down -v

Project Structure

LearnLab/
β”œβ”€β”€ frontend/          # Next.js frontend
β”œβ”€β”€ backend/          # FastAPI backend
β”œβ”€β”€ airflow/          # Airflow DAGs
β”œβ”€β”€ docker/           # Docker configurations
└── docker-compose.yml

Environment Setup

Each service requires its own .env file. Copy from .env.example:

cd <service-directory>
cp .env.example .env

πŸ“œ License

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

πŸ”— References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 85.5%
  • Python 9.4%
  • TypeScript 4.7%
  • PLpgSQL 0.2%
  • CSS 0.1%
  • Dockerfile 0.1%