NoteTube

Transform YouTube videos and audio files into clean notes, flashcards, quizzes, and summaries — in seconds.

About the Project

NoteTube is an AI-powered tool that transforms YouTube videos and MP3 audio files into structured study materials. Simply paste a YouTube URL or upload an MP3 file, and NoteTube's AI will analyze the content to generate comprehensive notes, flashcards, and summaries.

Features

  • 🎉 Upload YouTube links or MP3 files → instant notes
  • 📝 Generate clean, structured notes from video/audio
  • 📊 Generate summaries & key takeaways
  • 🎓 Built for students with flexible input options

Technical Stack

Backend

  • Python
  • Django
  • Gunicorn

Database & Caching

  • PostgreSQL
  • Redis
  • Session Management

AI/ML Services

  • OpenAI API
  • AssemblyAI API
  • Text Processing

Infrastructure

  • AWS EC2 (Linux)
  • Nginx (Reverse Proxy)
  • Docker

Architecture & Infrastructure

🚀 Production Deployment on AWS EC2

Deployed and Dockerized a Django application on AWS EC2 (Linux), running Gunicorn for stable production serving. This enables simpler, repeatable deployments with containerization.

🔀 Nginx Reverse Proxy Configuration

Configured Nginx as an HTTP(S) reverse proxy to route traffic to Gunicorn, serving static assets directly and enabling proxy caching to reduce application server load and improve request-handling reliability. Handles SSL termination and efficient request distribution.

🔒 HTTPS & Automatic TLS Renewal with Let's Encrypt

Implemented automatic TLS/SSL certificate management using Certbot and Let's Encrypt, ensuring the application runs on secure HTTPS with zero manual intervention. Certificates automatically renew 30 days before expiration, maintaining continuous encryption and trust for all user data in transit. This provides industry-standard security compliance and protects against man-in-the-middle attacks.

⚡ Redis Caching Performance Optimization

Achieved 85.9% latency reduction (from 313ms → 44ms) by implementing Redis caching for high-traffic user/session reads, significantly cutting repeated PostgreSQL database hits. This optimization dramatically improved API route response times and overall application performance.

🗄️ Database Architecture

Utilized PostgreSQL as the primary database with Redis for session management and high-frequency data caching. This hybrid approach optimizes both data persistence and read performance, reducing database load while maintaining data integrity.