AI-powered educational platform built with modern web technologies.
Realearn is a monorepo using Turborepo with a React-based web application. The architecture emphasizes:
- File-based routing with TanStack Router
- Component-driven development with reusable UI components
- Static data management for learning content
- AI integration for content generation
- React 19 with TypeScript for type safety
- TanStack Router for file-based routing and full type safety
- Vite for fast development and optimized builds
- Tailwind CSS for utility-first styling
- shadcn/ui for consistent, accessible components
- Framer Motion for smooth animations
- Milkdown rich text editor for journal functionality
- Reveal.js for slide presentations
- D3.js for interactive mindmaps and visualizations
- Bun package manager for fast installs and scripts
- Turborepo for monorepo management and build optimization
realearn/
├── apps/
│ └── web/ # Main React application
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── ui/ # Base shadcn/ui components
│ │ │ ├── spaces/ # Learning space components
│ │ │ ├── courses/ # Course-related components
│ │ │ └── journals/ # Note-taking components
│ │ ├── routes/ # File-based routes (TanStack Router)
│ │ ├── data/ # Static JSON data for spaces/courses
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utilities and configurations
│ │ └── main.tsx # Application entry point
│ ├── package.json # Dependencies and scripts
│ ├── vite.config.ts # Vite configuration
│ └── tsconfig.json # TypeScript configuration
├── package.json # Root dependencies (Turbo, etc.)
└── turbo.json # Turborepo configuration
- Dynamic imports for space data (
@/data/spaces/${id}/metadata.json) - View switching with sidebar navigation (Content/Quiz/Mindmap/Slides/Video)
- Resizable panels using for layout flexibility
- Progress navigation with subsection tracking
- Prompt input component with model selection
- File upload support with drag-and-drop interface
- Streaming responses for real-time AI generation
- Modal-based creation flow with animated transitions
- Milkdown editor integration with markdown support
- Folder structure with collapsible navigation
- File management (create/edit/delete operations)
- Resizable split-view for sidebar and editor
- Static JSON files for learning content (spaces, quizzes, mindmaps)
- Dynamic loading based on route parameters
- Type-safe data structures with TypeScript interfaces
- Bun (recommended) or npm/yarn
# Install dependencies
bun install
# Start development server
bun dev
# Build for production
bun build
# Type checking
bun check-types- shadcn/ui components: Button, Dialog, Tabs, etc.
- Custom components: VideoPlayer, Mindmap, Slides, etc.
- Layout components: Resizable panels, navigation
- Spaces: ViewSwitcher, ContentView, QuizView, etc.
- Courses: CourseCard grid layout
- Journals: Folder structure, rich text editor
- File-based routing with TanStack Router
- Dynamic routes for spaces (
/spaces/$id) - Nested layouts and component composition