Skip to content

Lawliet7129/HTN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

3D Virtual Classroom

A Three.js-based 3D classroom environment with AI-powered LaTeX conversion and collaborative learning features.

๐ŸŽฏ Project Overview

I'm building a 3D classroom in Three.js using .glb models. The classroom has three main interactive areas that create an immersive educational experience:

๐Ÿ“š Bookshelf - AI-Powered Material Creation

Educators can upload materials here. A key feature is the ability to scan handwritten barebones proofs or notes. AI will process these, recognize the handwriting, and automatically generate a polished, rigorous LaTeX version. Educators can then publish these as PDFs or study materials within minutes, making them accessible to students directly on the 3D shelf.

๐Ÿ“‹ Bulletin Board - Collaborative Learning Forum

Functions like an Ed-style Q&A forum. Both students and educators can post questions, answers, and discussions, making it a collaborative learning space.

๐Ÿ–ฅ๏ธ Desk - Scheduling Integration Hub

Acts as an integration point with scheduling tools like Calendly or Zoom. Students can use it to book office hours, tutoring sessions, or group meetings with educators.

โšก Core Innovation: LaTeX Pipeline

The core feature of the project is the LaTeX pipeline: educators upload handwritten notes, and the AI transforms them into rigorously formatted LaTeX documents that can be published in under five minutes. This enables a seamless workflow from handwritten draft to professional study material.

Pipeline Workflow

  1. Upload โ†’ Educator scans handwritten notes
  2. Process โ†’ AI recognizes handwriting and extracts content
  3. Convert โ†’ Generate polished LaTeX with proper formatting
  4. Publish โ†’ Create PDF and make available on 3D bookshelf
  5. Access โ†’ Students interact with materials in immersive 3D environment

๐Ÿ—๏ธ Project Architecture

The project is organized into four main components that work together to create the complete 3D classroom experience:

๐ŸŽจ Frontend (/frontend)

Three.js-based 3D classroom interface with interactive areas:

  • Classroom Components: 3D scene rendering, camera controls, and interaction systems
  • Bookshelf: Material upload interface, AI processing pipeline, and LaTeX document management
  • Bulletin Board: Q&A forum with posts, comments, and moderation features
  • Desk: Scheduling integration with Calendly/Zoom for office hours and meetings

โš™๏ธ Backend (/backend)

Node.js/Express server handling core functionality:

  • File Processing: Upload handling, image preprocessing for AI analysis
  • AI Services: Handwriting recognition and LaTeX conversion pipeline management
  • PDF Generation: LaTeX compilation and document publishing
  • Authentication: User management and session handling
  • API Controllers: RESTful endpoints for all classroom features

๐Ÿ—„๏ธ Database (/database)

Data persistence layer for all classroom data:

  • Migrations: Database schema versioning and updates
  • Seeds: Initial data and test fixtures
  • Models: User data, study materials, forum posts, scheduling information

๐Ÿค– APIs (/apis)

Specialized microservices for advanced functionality:

  • Handwriting Recognition: AI model integration for text extraction from images
  • LaTeX Conversion: Document formatting, validation, and compilation
  • External Integrations: Calendly, Zoom, Google Calendar API connections

โœจ Key Features

๐Ÿค– AI-Powered LaTeX Pipeline

The revolutionary core feature that transforms handwritten content into professional documents:

  1. Upload: Educators scan handwritten notes/images using the 3D bookshelf interface
  2. Recognition: AI processes handwriting and extracts mathematical formulas and text
  3. Conversion: Automatic LaTeX formatting with proper mathematical notation
  4. Publishing: Generate professional PDFs and publish to classroom bookshelf
  5. Access: Students interact with materials directly in the immersive 3D environment

๐ŸŽฎ Interactive Learning Spaces

  • 3D Bookshelf: Browse, search, and access AI-generated study materials in an immersive 3D interface
  • Bulletin Board: Collaborative Q&A forum with real-time discussions and peer learning
  • Virtual Desk: Seamless scheduling integration for office hours, tutoring, and group meetings

๐Ÿ”„ Seamless Workflow Integration

  • 5-Minute Publishing: From handwritten draft to professional study material in under 5 minutes
  • Real-time Collaboration: Instant access to materials and discussions
  • Cross-platform Access: Works on desktop, tablet, and mobile devices

๐Ÿ› ๏ธ Technology Stack

  • Frontend: Three.js, React, TypeScript
  • Backend: Node.js, Express, TypeScript
  • Database: PostgreSQL with Prisma ORM
  • AI/ML: Python services for handwriting recognition
  • LaTeX: TeX Live for document compilation
  • Deployment: Node.js with PM2 process management

๐Ÿ“ Detailed Folder Structure

HTN/
โ”œโ”€โ”€ frontend/                    # Three.js 3D classroom interface
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ classroom/       # 3D scene and interactions
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ bookshelf/       # Material management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ bulletin/        # Q&A forum
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ desk/           # Scheduling interface
โ”‚   โ”‚   โ”œโ”€โ”€ utils/              # Helper functions
โ”‚   โ”‚   โ”œโ”€โ”€ assets/             # 3D models, textures, audio
โ”‚   โ”‚   โ””โ”€โ”€ styles/             # CSS and styling
โ”‚   โ””โ”€โ”€ public/                 # Static assets
โ”œโ”€โ”€ backend/                    # Node.js server
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/        # API route handlers
โ”‚   โ”‚   โ”œโ”€โ”€ services/          # Business logic
โ”‚   โ”‚   โ”œโ”€โ”€ models/            # Data models
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/        # Auth, validation, etc.
โ”‚   โ”‚   โ”œโ”€โ”€ routes/            # API endpoints
โ”‚   โ”‚   โ””โ”€โ”€ utils/             # Server utilities
โ”‚   โ”œโ”€โ”€ uploads/               # File storage
โ”‚   โ””โ”€โ”€ temp/                  # Temporary processing files
โ”œโ”€โ”€ database/                  # Data persistence
โ”‚   โ”œโ”€โ”€ migrations/            # Schema changes
โ”‚   โ””โ”€โ”€ seeds/                 # Test data
โ”œโ”€โ”€ apis/                      # Microservices
โ”‚   โ”œโ”€โ”€ handwriting-recognition/ # AI text extraction
โ”‚   โ”œโ”€โ”€ latex-conversion/      # Document formatting
โ”‚   โ””โ”€โ”€ external-integrations/ # Third-party APIs
โ”œโ”€โ”€ docs/                      # Documentation
โ”œโ”€โ”€ scripts/                   # Setup and deployment
โ””โ”€โ”€ tests/                     # Test suites

๐Ÿš€ Quick Start

  1. Setup Environment

    ./scripts/setup/install-dependencies.sh
  2. Start Services

    # Start PostgreSQL and Redis
    brew services start postgresql redis  # macOS
    # or
    sudo systemctl start postgresql redis  # Linux
  3. Configure Database

    npm run db:migrate
    npm run db:seed
  4. Start Development

    npm run dev
  5. Access Application

๐Ÿ“š Documentation

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details

About

For Hack the North

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors