# Project export: Rocket Tutors

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: Cal Hacks 12.0
- Tagline: In 36 hours, two coding beginners built Rocket Tutors using Claude, an AI co-developer. A free, interactive tutoring platform that helps every student reach new heights.
- Devpost: https://devpost.com/software/rocket-tutors-from-zero-code-to-lift-off
- GitHub: https://github.com/ninazhu321-lang/Rocket-Tutors.git
- Video: https://www.youtube.com/embed/9sbk18Nq-Oc?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: 0 GitHub contributor(s) — 

## Devpost submission (written by the team)

### Inspiration

We saw that Secondary Math I is the most failed class in high school, so we wanted to change that. Many students in our local community struggle because they don't have affordable tutoring. We already had passionate tutors and motivated students, but we lacked a platform to connect them. This challenge is the heart of our CalHacks project.

### What it does

Rocket Tutors is a free web platform that connects students who need help in math with volunteer tutors. Students can sign up based on their math needs, automatically get matched with a tutor, and view upcoming sessions on a personal dashboard. Additionally, donors can see how their contributions help students learn.

### How we built it

We built Rocket Tutors with minimal prior coding experience. We mainly used HTML, CSS, and JavaScript, with creative help from Claude as well. First, we used a collaborative design to map out user flows and page layouts before implementing them. We created five pages: a landing page, a student sign-up page, a tutor-matching page, a student dashboard, and a donation page.

### Challenges we ran into

Neither of us had very much web development experience going into CalHAcks, so it was pretty hard to figure things out at first. We also had to balance design, development, and study time, since we didn't have much time to prepare.

### Accomplishments we're proud of

We built a fully functional multi-page web app in 36 hours. It's designed and implemented in a way that it is easy for the audience to understand. Additionally, we learned fundamental coding skills by collaborating with AI rather than just copy-pasting code.

### What we learned

We learned that hackathons aren't just about who can build the coolest robot or has the most impactful project. Working with Claude taught us how to communicate clearly about what we wanted to build and how front-end technologies are able to work together.

### What's next

: From Zero Code to Lift-Off After CalHacks, we plan to keep building Rocket Tutors into an even better platform by addting a backend database for better functionality and integrating video tutoring and scheduling features. We hope to turn this hackathon project into a real-world education platform that can help students everywhere to succeed.

## README (from the GitHub repository)

# Rocket-Tutors

## Detected evidence (automated analysis)

Indexed codebase: 25 recognized source files, 155 KB.
- CSS (language) — detected in the code
- HTML (language) — detected in the code
- JavaScript (language) — detected in the code
- React (technology) — detected in the code

## Codebase structure (from repository index)

### Files (26 of 26)

```
Hackathon/css/styles.css
Hackathon/dashboard.html
Hackathon/donate.html
Hackathon/index.html
Hackathon/js/main.js
Hackathon/js/navigation.js
Hackathon/package.json
Hackathon/public/index.html
Hackathon/README.md
Hackathon/signup.html
Hackathon/src/App.css
Hackathon/src/App.jsx
Hackathon/src/components/Footer.jsx
Hackathon/src/components/Modal.jsx
Hackathon/src/components/Navbar.jsx
Hackathon/src/components/TutorCard.jsx
Hackathon/src/context/AppContext.jsx
Hackathon/src/data/tutorsData.js
Hackathon/src/index.js
Hackathon/src/pages/Dashboard.jsx
Hackathon/src/pages/Donate.jsx
Hackathon/src/pages/Home.jsx
Hackathon/src/pages/Signup.jsx
Hackathon/src/pages/Tutors.jsx
Hackathon/tutors.html
README.md
```

### Dependencies

- Hackathon/package.json: react@^18.2.0, react-dom@^18.2.0, react-router-dom@^6.20.0, react-scripts@5.0.1

### Recent commits (newest first)

- Add files via upload
- Initial commit

## Key source files (fetched from GitHub, selected and truncated for size)

### Hackathon/package.json

```
{
  "name": "rocket-tutors",
  "version": "1.0.0",
  "description": "Free One-on-One Math Tutoring Powered by Donations",
  "private": true,
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.20.0",
    "react-scripts": "5.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}


```

### Hackathon/src/index.js

```javascript
import React from 'react';
import ReactDOM from 'react-dom/client';
import './App.css';
import App from './App';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);


```

### Hackathon/src/App.jsx

```javascript
import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import { AppProvider } from './context/AppContext';
import Home from './pages/Home';
import Signup from './pages/Signup';
import Dashboard from './pages/Dashboard';
import Tutors from './pages/Tutors';
import Donate from './pages/Donate';

function App() {
  return (
    <AppProvider>
      <Router>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/signup" element={<Signup />} />
          <Route path="/dashboard" element={<Dashboard />} />
          <Route path="/tutors" element={<Tutors />} />
          <Route path="/donate" element={<Donate />} />
        </Routes>
      </Router>
    </AppProvider>
  );
}

export default App;


```

### Hackathon/js/main.js

```javascript
// Rocket Tutors - Page-Specific Interactions

// ===== SIGN UP PAGE =====
function initSignupPage() {
    initAuthTabs();
    initSignInForm();
    initSignUpForm();
}

function initAuthTabs() {
    const signInTab = document.getElementById('signInTab');
    const signUpTab = document.getElementById('signUpTab');
    const signInForm = document.getElementById('signInForm');
    const signupForm = document.getElementById('signupForm');
    const switchToSignUp = document.getElementById('switchToSignUp');
    const switchToSignIn = document.getElementById('switchToSignIn');
    
    // Tab click handlers
    if (signInTab) {
        signInTab.addEventListener('click', function() {
            showSignIn();
        });
    }
    
    if (signUpTab) {
        signUpTab.addEventListener('click', function() {
            showSignUp();
        });
    }
    
    // Link handlers
    if (switchToSignUp) {
        switchToSignUp.addEventListener('click', function(e) {
            e.preventDefault();
            showSignUp();
        });
    }
    
    if (switchToSignIn) {
        switchToSignIn.addEventListener('click', function(e) {
            e.preventDefault();
            showSignIn();
        });
    }
    
    function showSignIn() {
        signInTab.classList.add('active');
        signUpTab.classList.remove('active');
        signInForm.style.display = 'block';
        signupForm.style.display = 'none';
    }
    
    function showSignUp() {
        signUpTab.classList.add('active');
        signInTab.classList.remove('active');
        signupForm.style.display = 'block';
        signInForm.style.display = 'none';
    }
}

function initSignInForm() {
    const signInForm = document.getElementById('signInForm');
    const successMessage = document.getElementById('successMessage');
    
    if (signInForm) {
        signInForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // Get form data
            const email = document.getElementById('signinEmail').value;
            const name = document.getElementById('signinName').value;
            
            // ALWAYS clear all previous data when signing in
            // This ensures no data from previous users carries over
            AppState.clearAll();
            
            // Create fresh user profile for this sign in
            const newUser = {
                name: name,
                email: email,
                grade: 'college',
                subject: 'Algebra',
                availability: ['Monday 3-5pm']
            };
            
            // Set the new user with ZERO classes/sessions
            AppState.setUser(newUser);
            AppState.setSessions([]);
            
            // Show success message
            signInForm.style.display = 'none';
            successMessage.classList.add('active');
        });
    }
}

function initSignUpForm() {
    const signupForm = document.getElementById('signupForm');
    const successMessage = document.getElementById('successMessage');
    
    if (signupForm) {
        signupForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // Clear any previous user data first
            AppState.clearAll();
            
            // Get form data
            const formData = {
                name: document.getElementById('name').value,
                email: document.getElementById('email').value,
                grade: document.getElementById('grade').value,
                subject: document.getElementById('subject').value,
                availability: getSelectedAvailability()
            };
            
            // Save fresh user data
            AppState.setUser(formData);
            
            // New users start with ZERO classes/sessions
            AppState.setSessions([]);
            
            // Show success message
            signupForm.style.display = 'none';
            successMessage.classList.add('active');
        });
    }
}

function getSelectedAvailability() {
    const checkboxes = document.querySelectorAll('input[name="availability"]:checked');
    return Array.from(checkboxes).map(cb => cb.value);
}

// ===== DASHBOARD PAGE =====
function initDashboardPage() {
    const user = AppState.getUser();
    
    if (!user) {
        // Redirect to signup if not signed up
        window.location.href = 'signup.html';
        return;
    }
    
    // Update welcome message
    const welcomeName = document.getElementById('welcomeName');
    if (welcomeName) {
        welcomeName.textContent = user.name;
    }
    
    // Load tutor info
    loadTutorInfo(user);
    
    // Load sessions
    loadSessions();
    
    // Load stats
    loadStats();
}

function loadTutorInfo(user) {
    // Assign a tutor based on subject
    const tutorsBySubject = {
        'Algebra': tutorsData[0],
        'Geometry': tutorsData[3],
        'Calculus': tutorsData[1],
        'Statistics': tutorsData[4],
        'Pre-Calculus': tutorsData[2],
        'Trigonometry': tutorsData[2]
    };
    
    const assignedTutor = tutorsBySubject[user.subject] || tutorsData[0];
    
    const tutorAvatar = document.getElementById('tutorAvatar');
    const tutorName = document.getElementById('tutorName');
    const tutorSpecialty = document.getElementById('tutorSpecialty');
    const tutorRating = document.getElementById('tutorRating');
    const tutorBio = document.getElementById('tutorBio');
    
    if (tutorAvatar) tutorAvatar.textContent = assignedTutor.avatar;
    if (tutorName) tutorName.textContent = assignedTutor.name;
    if (tutorSpecialty) tutorSpecialty.textContent = assignedTutor.subjects.join(', ');
    if (tutorBio) tutorBio.textContent = assignedTutor.bio;
}

function loadSessions() {
[truncated — 8827 more characters]
```

### Hackathon/tutors.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Find a Tutor - Rocket Tutors</title>
    <link rel="stylesheet" href="css/styles.css">
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar">
        <div class="nav-container">
            <a href="index.html" class="logo">
                <span class="logo-icon">🚀</span>
                Rocket Tutors
            </a>
            <ul class="nav-links">
                <li><a href="index.html">Home</a></li>
                <li><a href="dashboard.html" style="display: none;" id="navDashboard">Dashboard</a></li>
                <li><a href="tutors.html">Find a Tutor</a></li>
                <li><a href="donate.html" class="btn-donate">Donate</a></li>
                <li><a href="signup.html" id="navSignIn">Sign In</a></li>
                <li><a href="#" id="navSignOut" style="display: none;">Sign Out</a></li>
            </ul>
        </div>
    </nav>

    <!-- Tutors Page -->
    <div class="tutors-page">
        <!-- Header -->
        <div class="tutors-header">
            <h1>Find Your Perfect Tutor</h1>
            <p>Browse our expert tutors and request a session that fits your schedule</p>
        </div>

        <!-- Filter Bar -->
        <div class="filter-bar">
            <select id="subjectFilter">
                <option value="all">All Subjects</option>
                <option value="algebra">Algebra</option>
                <option value="geometry">Geometry</option>
                <option value="calculus">Calculus</option>
                <option value="statistics">Statistics</option>
                <option value="trigonometry">Trigonometry</option>
            </select>
        </div>

        <!-- Tutors Grid -->
        <div class="tutors-grid" id="tutorsGrid">
            <!-- Tutors will be loaded here by JavaScript -->
        </div>
    </div>

    <!-- Booking Modal -->
    <div id="bookingModal" class="modal">
        <div class="modal-content">
            <!-- Booking Form -->
            <div id="bookingFormSection">
                <div class="modal-header">
                    <h2>Request a Session</h2>
                    <p>with <strong id="selectedTutorName">Tutor</strong></p>
                </div>

                <form id="bookingForm">
                    <div class="form-group">
                        <label for="bookingTopic">What topic do you need help with?</label>
                        <input type="text" id="bookingTopic" name="topic" placeholder="e.g., Quadratic equations, derivatives, probability" required>
                    </div>

                    <div class="form-group">
                        <label for="bookingTime">What times work best for you?</label>
                        <input type="text" id="bookingTime" name="time" placeholder="e.g., Monday 3-5pm, Wednesday evenings" required>
                    </div>

                    <div class="modal-buttons">
                        <button type="button" class="btn-cancel" id="cancelBooking">Cancel</button>
                        <button type="submit" class="btn-confirm">Confirm Booking</button>
                    </div>
                </form>
            </div>

            <!-- Confirmation Message -->
            <div id="bookingConfirmation" style="display: none;">
                <div class="success-message active">
                    <div class="success-icon">✅</div>
                    <h2>Session Booked!</h2>
                    <p>Your tutor will reach out shortly to confirm the details. Check your dashboard for updates.</p>
                    <button onclick="goToDashboard()" class="btn btn-primary btn-large">Back to Dashboard</button>
                </div>
            </div>
        </div>
    </div>

    <!-- Footer -->
    <footer class="footer">
        <div class="footer-content">
            <div class="footer-section">
                <h3>🚀 Rocket Tutors</h3>
                <p>Making quality math education accessible to everyone through the power of community donations.</p>
            </div>
            <div class="footer-section">
                <h3>Quick Links</h3>
                <a href="index.html">Home</a>
                <a href="tutors.html">Find a Tutor</a>
                <a href="signup.html">Sign Up</a>
                <a href="donate.html">Donate</a>
            </div>
            <div class="footer-section">
                <h3>Connect With Us</h3>
                <div class="social-links">
                    <a href="#" title="Facebook">📘</a>
                    <a href="#" title="Twitter">🐦</a>
                    <a href="#" title="Instagram">📷</a>
                    <a href="#" title="LinkedIn">💼</a>
                </div>
            </div>
        </div>
        <div class="footer-bottom">
            <p>&copy; 2025 Rocket Tutors. Built with ❤️ for students everywhere.</p>
        </div>
    </footer>

    <script src="js/navigation.js"></script>
    <script src="js/main.js"></script>
</body>
</html>


```

### Hackathon/dashboard.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Dashboard - Rocket Tutors</title>
    <link rel="stylesheet" href="css/styles.css">
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar">
        <div class="nav-container">
            <a href="index.html" class="logo">
                <span class="logo-icon">🚀</span>
                Rocket Tutors
            </a>
            <ul class="nav-links">
                <li><a href="index.html">Home</a></li>
                <li><a href="dashboard.html" id="navDashboard">Dashboard</a></li>
                <li><a href="tutors.html">Find a Tutor</a></li>
                <li><a href="donate.html" class="btn-donate">Donate</a></li>
                <li><a href="signup.html" id="navSignIn" style="display: none;">Sign In</a></li>
                <li><a href="#" id="navSignOut">Sign Out</a></li>
            </ul>
        </div>
    </nav>

    <!-- Dashboard -->
    <div class="dashboard">
        <div class="dashboard-container">
            <!-- Header -->
            <div class="dashboard-header">
                <h1>Welcome back, <span id="welcomeName">Student</span>! 👋</h1>
                <p>Here's an overview of your tutoring journey</p>
            </div>

            <div class="dashboard-grid">
                <!-- Your Current Tutor -->
                <div class="dashboard-card">
                    <div class="card-header">
                        <h2>Your Current Tutor</h2>
                    </div>
                    <div class="tutor-profile">
                        <div class="tutor-avatar" id="tutorAvatar">SJ</div>
                        <div class="tutor-info">
                            <h3 id="tutorName">Dr. Sarah Johnson</h3>
                            <div class="tutor-specialty" id="tutorSpecialty">Algebra, Geometry, Calculus</div>
                            <p class="tutor-bio" id="tutorBio">PhD in Mathematics with a passion for making complex concepts simple and fun.</p>
                        </div>
                    </div>
                </div>

                <!-- Upcoming Sessions -->
                <div class="dashboard-card">
                    <div class="card-header">
                        <h2>Upcoming Sessions</h2>
                        <a href="tutors.html" class="btn btn-primary">Request New Session</a>
                    </div>
                    <div class="sessions-list" id="sessionsList">
                        <!-- Sessions will be loaded here by JavaScript -->
                    </div>
                    <div id="emptyState" class="empty-state" style="display: none;">
                        <div class="empty-state-icon">📅</div>
                        <p>No upcoming sessions yet. Request your first session to get started!</p>
                        <a href="tutors.html" class="btn btn-primary" style="margin-top: 20px;">Browse Tutors</a>
                    </div>
                </div>

                <!-- Your Progress Stats -->
                <div class="dashboard-card">
                    <div class="card-header">
                        <h2>Your Progress</h2>
                    </div>
                    <div class="stats-grid">
                        <div class="stat-card">
                            <div class="stat-number" id="totalHours">6</div>
                            <div class="stat-label">Total Hours</div>
                        </div>
                        <div class="stat-card">
                            <div class="stat-number" id="completedSessions">2</div>
                            <div class="stat-label">Sessions Completed</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Footer -->
    <footer class="footer">
        <div class="footer-content">
            <div class="footer-section">
                <h3>🚀 Rocket Tutors</h3>
                <p>Making quality math education accessible to everyone through the power of community donations.</p>
            </div>
            <div class="footer-section">
                <h3>Quick Links</h3>
                <a href="index.html">Home</a>
                <a href="tutors.html">Find a Tutor</a>
                <a href="signup.html">Sign Up</a>
                <a href="donate.html">Donate</a>
            </div>
            <div class="footer-section">
                <h3>Connect With Us</h3>
                <div class="social-links">
                    <a href="#" title="Facebook">📘</a>
                    <a href="#" title="Twitter">🐦</a>
                    <a href="#" title="Instagram">📷</a>
                    <a href="#" title="LinkedIn">💼</a>
                </div>
            </div>
        </div>
        <div class="footer-bottom">
            <p>&copy; 2025 Rocket Tutors. Built with ❤️ for students everywhere.</p>
        </div>
    </footer>

    <script src="js/navigation.js"></script>
    <script src="js/main.js"></script>
</body>
</html>


```

### Hackathon/donate.html

```html
<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Donate - Rocket Tutors</title>
    <link rel="stylesheet" href="css/styles.css">
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar">
        <div class="nav-container">
            <a href="index.html" class="logo">
                <span class="logo-icon">🚀</span>
                Rocket Tutors
            </a>
            <ul class="nav-links">
                <li><a href="index.html">Home</a></li>
                <li><a href="dashboard.html" style="display: none;" id="navDashboard">Dashboard</a></li>
                <li><a href="tutors.html">Find a Tutor</a></li>
                <li><a href="donate.html" class="btn-donate">Donate</a></li>
                <li><a href="signup.html" id="navSignIn">Sign In</a></li>
                <li><a href="#" id="navSignOut" style="display: none;">Sign Out</a></li>
            </ul>
        </div>
    </nav>

    <!-- Hero Section -->
    <section class="donate-hero">
        <h1>Power Education Through Giving</h1>
        <p>Your donation directly funds free, one-on-one tutoring sessions for students who need them most. Every dollar makes a difference.</p>
    </section>

    <!-- Main Donate Content -->
    <div class="donate-content">
        <div class="donate-container">
            <!-- Impact Section -->
            <div class="impact-section">
                <h2>Our Impact So Far</h2>
                <div class="impact-stats">
                    <div class="impact-stat">
                        <div class="impact-stat-number">$127K</div>
                        <div class="impact-stat-label">Total Raised</div>
                    </div>
                    <div class="impact-stat">
                        <div class="impact-stat-number">3,248</div>
                        <div class="impact-stat-label">Students Helped</div>
                    </div>
                    <div class="impact-stat">
                        <div class="impact-stat-number">5,080</div>
                        <div class="impact-stat-label">Hours Tutored</div>
                    </div>
                </div>
            </div>

            <!-- Mission Statement -->
            <div class="testimonial-box">
                <h2 style="margin-bottom: 16px;">Why Your Donation Matters</h2>
                <p style="color: #6b7280; line-height: 1.8; font-size: 18px;">
                    Many students lack access to quality tutoring due to financial barriers. Your contribution breaks down these barriers and gives every student an equal opportunity to succeed in math. Studies show that students with tutoring support are 2x more likely to pass their courses and gain confidence in their abilities.
                </p>
            </div>

            <!-- Donation Tiers -->
            <h2 style="text-align: center; margin-bottom: 30px; font-size: 32px;">Choose Your Impact</h2>
            <div class="donation-tiers">
                <div class="tier-card" data-amount="25">
                    <div class="tier-amount">$25</div>
                    <div class="tier-impact">1 Hour of Tutoring</div>
                    <p class="tier-description">Help one student master a difficult concept</p>
                </div>
                <div class="tier-card" data-amount="50">
                    <div class="tier-amount">$50</div>
                    <div class="tier-impact">2 Hours of Tutoring</div>
                    <p class="tier-description">Support a student through an entire unit</p>
                </div>
                <div class="tier-card" data-amount="100">
                    <div class="tier-amount">$100</div>
                    <div class="tier-impact">4 Hours of Tutoring</div>
                    <p class="tier-description">Fund a week of intensive test prep</p>
                </div>
                <div class="tier-card" data-amount="250">
                    <div class="tier-amount">$250</div>
                    <div class="tier-impact">10 Hours of Tutoring</div>
                    <p class="tier-description">Transform a student's entire semester</p>
                </div>
            </div>

            <!-- Custom Amount -->
            <div class="custom-amount">
                <h3>Or Enter a Custom Amount</h3>
                <div class="custom-amount-input">
                    <input type="number" id="customAmount" placeholder="Enter amount" min="1">
                    <span style="font-size: 20px; font-weight: 600;">USD</span>
                </div>
            </div>

            <!-- Student Testimonial -->
            <div class="testimonial-box">
                <p class="testimonial-text">"I was on the verge of dropping out of my engineering program because I couldn't afford a tutor and was failing calculus. Rocket Tutors gave me hope when I had none. Now I'm on the Dean's List and planning to become a tutor myself to give back."</p>
                <div class="testimonial-author">
                    <div class="author-avatar">AK</div>
                    <div class="author-info">
                        <h4>Alex Kim</h4>
                        <p>Engineering Student, UCLA</p>
                    </div>
                </div>
            </div>

            <!-- Donate CTA -->
            <div class="donate-cta">
                <button id="donateBtn" class="btn btn-primary btn-large">Donate Now</button>
                <p style="margin-top: 16px; color: #6b7280;">Your donation is tax-deductible. You'll receive a receipt via email.</p>
            </div>
        </div>
    </div>

    <!-- Donation Confirmation (Hidden by default) -->
    <div id="donateConfirmation" class="donate-confirmation">
        <div class="confirmation-icon">🎉</div>
        <h2>Thank Y
[truncated — 2148 more characters]
```

### Hackathon/index.html

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Rocket Tutors - Free One-on-One Math Tutoring</title>
    <link rel="stylesheet" href="css/styles.css">
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar">
        <div class="nav-container">
            <a href="index.html" class="logo">
                <span class="logo-icon">🚀</span>
                Rocket Tutors
            </a>
            <ul class="nav-links">
                <li><a href="index.html">Home</a></li>
                <li><a href="dashboard.html" style="display: none;" id="navDashboard">Dashboard</a></li>
                <li><a href="tutors.html">Find a Tutor</a></li>
                <li><a href="donate.html" class="btn-donate">Donate</a></li>
                <li><a href="signup.html" id="navSignIn">Sign In</a></li>
                <li><a href="#" id="navSignOut" style="display: none;">Sign Out</a></li>
            </ul>
        </div>
    </nav>

    <!-- Hero Section -->
    <section class="hero">
        <div class="hero-content">
            <h1>Free, One-on-One Math Tutoring Powered by Donations</h1>
            <p>Every student deserves access to quality education. Connect with expert tutors for free math help, made possible by generous company donations.</p>
            <div class="hero-buttons">
                <a href="signup.html" class="btn-hero-primary">Get Started as a Student</a>
                <a href="#how-it-works" class="btn-hero-secondary">Learn More</a>
            </div>
        </div>
    </section>

    <!-- Benefits Section -->
    <section class="benefits">
        <div class="container">
            <h2 class="section-title">Why Choose Rocket Tutors?</h2>
            <div class="benefits-grid">
                <div class="benefit-card">
                    <div class="benefit-icon">💯</div>
                    <h3>100% Free</h3>
                    <p>No hidden fees, no credit card required. Quality education should be accessible to everyone, regardless of financial situation.</p>
                </div>
                <div class="benefit-card">
                    <div class="benefit-icon">📅</div>
                    <h3>Flexible Scheduling</h3>
                    <p>Book sessions that fit your schedule. Morning, afternoon, or evening - we work around your availability.</p>
                </div>
                <div class="benefit-card">
                    <div class="benefit-icon">👨‍🏫</div>
                    <h3>Expert Tutors</h3>
                    <p>Learn from experienced educators with advanced degrees and a passion for teaching. All tutors are carefully vetted for quality.</p>
                </div>
            </div>
        </div>
    </section>

    <!-- How It Works Section -->
    <section class="benefits" id="how-it-works" style="background-color: #f9fafb;">
        <div class="container">
            <h2 class="section-title">How It Works</h2>
            <div class="process-flow">
                <div class="process-step">
                    <div class="benefit-icon">📝</div>
                    <h3>Students Sign Up</h3>
                    <p>Create a free account in minutes. Tell us about your learning goals and preferred schedule.</p>
                </div>
                <div class="process-arrow">
                    <svg viewBox="0 0 100 50" class="squiggly-arrow">
                        <path d="M 10 25 Q 30 5, 50 25 T 90 25" stroke="currentColor" stroke-width="3" fill="none" stroke-linecap="round"/>
                        <polygon points="90,25 85,20 85,30" fill="currentColor"/>
                    </svg>
                </div>
                <div class="process-step">
                    <div class="benefit-icon">🤝</div>
                    <h3>Get Matched</h3>
                    <p>We connect you with the perfect tutor based on your needs, learning style, and availability.</p>
                </div>
                <div class="process-arrow">
                    <svg viewBox="0 0 100 50" class="squiggly-arrow">
                        <path d="M 10 25 Q 30 5, 50 25 T 90 25" stroke="currentColor" stroke-width="3" fill="none" stroke-linecap="round"/>
                        <polygon points="90,25 85,20 85,30" fill="currentColor"/>
                    </svg>
                </div>
                <div class="process-step">
                    <div class="benefit-icon">📚</div>
                    <h3>Choose Topics</h3>
                    <p>Work with your tutor on specific math topics you're struggling with, from algebra to calculus.</p>
                </div>
                <div class="process-arrow">
                    <svg viewBox="0 0 100 50" class="squiggly-arrow">
                        <path d="M 10 25 Q 30 5, 50 25 T 90 25" stroke="currentColor" stroke-width="3" fill="none" stroke-linecap="round"/>
                        <polygon points="90,25 85,20 85,30" fill="currentColor"/>
                    </svg>
                </div>
                <div class="process-step">
                    <div class="benefit-icon">💰</div>
                    <h3>Companies Donate</h3>
                    <p>Forward-thinking companies fund your tutoring sessions as part of their social responsibility initiatives.</p>
                </div>
            </div>
        </div>
    </section>

    <!-- Testimonials Section -->
    <section class="testimonials">
        <div class="container">
            <h2 class="section-title">Student Stories</h2>
            <div class="testimonials-grid">
                <div class="testimonial-card">
                    <p class="testimonial-text">"I was failing Algebra II and thought I'd never understand it. My family couldn't afford a tutor, so I felt stuck. Rocket Tutors matched me with Mr. Chen,
[truncated — 5058 more characters]
```

### Hackathon/public/index.html

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#2563eb" />
    <meta
      name="description"
      content="Free One-on-One Math Tutoring Powered by Donations"
    />
    <title>Rocket Tutors - Free Math Tutoring</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
  </body>
</html>


```

### Hackathon/src/components/Modal.jsx

```javascript
import React from 'react';

const Modal = ({ isOpen, onClose, children }) => {
  if (!isOpen) return null;

  const handleBackdropClick = (e) => {
    if (e.target === e.currentTarget) {
      onClose();
    }
  };

  return (
    <div className={`modal ${isOpen ? 'active' : ''}`} onClick={handleBackdropClick}>
      <div className="modal-content">
        {children}
      </div>
    </div>
  );
};

export default Modal;


```

[14 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]