Skip to content

stonecharioteer/interactive-rfc-tutorials

Repository files navigation

Interactive RFC Learning Tutorial

A mobile-friendly web application for learning important RFCs that shaped the evolution of the internet. Journey through internet history from the first RFC in 1969 to modern HTTP standards, with interactive content and visual learning aids.

๐ŸŽฏ Project Overview

This project provides an interactive timeline-based learning experience covering 21 critical RFCs across 5 historical eras:

  • Foundation Era (1969-1982): Birth of the Internet
  • Protocol Expansion (1983-1990): Building Infrastructure
  • Web Era (1990s-2000s): World Wide Web Revolution
  • Modern Networking (2000s-2010s): Security and Performance
  • Current Standards (2020s): Modern Internet

โœจ Features

  • ๐Ÿ“ฑ Mobile-First Design: Responsive web app that works perfectly on phones, tablets, and desktop
  • ๐ŸŽฎ Interactive Content: Rich educational content with visual aids and examples
  • ๐Ÿ“Š Visual Learning: Network diagrams, protocol demonstrations, and code examples
  • ๐Ÿ† Progress Tracking: Local progress tracking with browser storage
  • ๐Ÿ” Easy Navigation: Timeline-based RFC discovery and learning paths
  • ๐ŸŽจ Modern UI: Clean design built with React and Tailwind CSS
  • ๐Ÿ Code Examples: Python implementations and practical demonstrations

๐Ÿš€ Quick Start

Prerequisites

Setup

# Clone the repository
git clone https://github.com/learnwithcarter-ai/interactive-tutorials.git
cd interactive-tutorials

# Complete project setup
just setup

# Start development server
just dev

This will:

  • Install all dependencies
  • Set up Playwright browsers for testing
  • Launch the development server at http://localhost:5173

Access the Application

๐Ÿ—๏ธ Architecture

Frontend

  • React + TypeScript: Modern web development with type safety
  • Vite: Fast development server and build tool
  • Tailwind CSS: Utility-first CSS framework for responsive design
  • File-Based Content: Individual RFC components for maximum flexibility

Content Structure

Each RFC tutorial is implemented as its own React component:

frontend/src/pages/rfcs/
โ”œโ”€โ”€ RFC1.tsx      # Host Software (1969)
โ”œโ”€โ”€ RFC791.tsx    # Internet Protocol (1981)
โ”œโ”€โ”€ RFC821.tsx    # Simple Mail Transfer Protocol (1982)
โ””โ”€โ”€ ...

Data Storage

  • Progress Tracking: Browser localStorage for offline capability
  • RFC Content: Static React components with rich educational content
  • No Database: Simplified architecture with file-based content

๐Ÿ“š Development

Common Commands

# Development
just dev                    # Start development server
just build                  # Build for production
just preview                # Preview production build

# Testing
just test                   # Run Playwright tests
just test-ui                # Run tests in UI mode

# Setup
just install                # Install dependencies
just install-browsers       # Install Playwright browsers
just setup                  # Complete setup

RFC Content Development

Each RFC tutorial includes:

  • Historical Context: Why the RFC was created and its impact
  • Technical Deep-Dive: Detailed protocol explanations
  • Visual Examples: Code snippets, protocol flows, and diagrams
  • Modern Relevance: How the RFC impacts today's internet

Adding New RFCs

  1. Create a new component in frontend/src/pages/rfcs/RFCxxx.tsx
  2. Add the RFC metadata to frontend/src/data/rfcs.ts
  3. The routing system will automatically pick up the new RFC

๐Ÿ“– RFC Tutorial Content

Currently Implemented RFCs

See GitHub Issues for implementation status of all 21 RFCs.

The tutorial covers essential protocols like:

  • RFC 1: Host Software (Foundation of the Internet)
  • RFC 791: Internet Protocol (IP addressing and routing)
  • RFC 821: SMTP (Email delivery system)
  • RFC 1945: HTTP/1.0 (World Wide Web protocol)
  • And many more...

๐Ÿค Contributing

We welcome contributions! Please see our GAMEPLAN.md for detailed project roadmap and CLAUDE.md for technical decisions.

Development Process

  1. Pick an RFC from our GitHub Issues
  2. Create a feature branch for the RFC implementation
  3. Add the RFC component following existing patterns
  4. Test the tutorial content on mobile and desktop
  5. Submit a pull request with your implementation

๐Ÿ“ Documentation

  • GAMEPLAN.md - Comprehensive project roadmap and feature planning
  • CLAUDE.md - Technical architecture decisions and tradeoffs

๐Ÿงช Testing Strategy

  • E2E Tests: Playwright tests covering mobile and desktop usage
  • Component Testing: Individual RFC page testing
  • Responsive Testing: Multi-viewport testing for mobile compatibility
  • Type Checking: Strict TypeScript validation
just test           # Run all Playwright tests
just test-ui        # Interactive test runner

๐Ÿ“ฑ Mobile Experience

The application is built mobile-first with:

  • Responsive Design: Optimized for phones, tablets, and desktop
  • Touch-Friendly: Easy navigation on mobile devices
  • Offline Progress: Local storage works without internet
  • Fast Loading: Static site with minimal JavaScript bundle

๐Ÿš€ Deployment

Development

just dev              # Local development server

Production

The application builds to static files that can be deployed anywhere:

just build            # Creates dist/ folder with static files
just preview          # Preview the production build locally

Deploy the dist/ folder to any static hosting service:

  • Vercel, Netlify, GitHub Pages
  • AWS S3, Google Cloud Storage
  • Any web server or CDN

GitHub Pages Deployment

This project includes automatic deployment to GitHub Pages via GitHub Actions:

  1. Automatic Deployment: Pushes to main branch automatically trigger deployment
  2. Build Process: Uses Node.js 18 and runs npm ci && npm run build
  3. Static Hosting: Serves the built site from frontend/dist/
  4. Custom Domain: Configure in repository settings if needed

The deployment workflow will:

  • Install dependencies with npm ci
  • Build the production bundle with npm run build
  • Deploy to GitHub Pages automatically

Setup Requirements:

  1. Enable GitHub Pages in repository Settings > Pages
  2. Set Source to "GitHub Actions"
  3. The workflow will handle the rest automatically

๐Ÿ“„ License

MIT License - see LICENSE for details.

๐Ÿ™ Acknowledgments

  • IETF: For maintaining the RFC series and internet standards
  • RFC Authors: The pioneers who documented internet protocols
  • Open Source Community: For the amazing tools that make this possible

๐Ÿ”— Links


Learn the protocols that power the internet! ๐ŸŒ

About

Interactive tutorials for RFCs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •