Skip to content

Latest commit

 

History

History
131 lines (107 loc) · 4.12 KB

File metadata and controls

131 lines (107 loc) · 4.12 KB

✅ CodeCrush - Implementation Complete

🎉 All Features Implemented

✨ Core Features

  • AI Test Case Generation (Basic & Comprehensive)
  • Question Naming (prompt during test case generation)
  • Multi-Language Execution (C, C++, Python, Java)
  • Dual Execution Modes (Cloud via Judge0 & Local via compilers)
  • Smart Output Comparison (whitespace-flexible)
  • Total Execution Time Tracking (removed per-test metrics)

💬 AI Chat System

  • ✅ Full conversation interface
  • ✅ Chat history persisted to localStorage
  • ✅ Context maintained across days
  • ✅ Markdown rendering with syntax highlighting
  • ✅ Help/Evaluation tab switching
  • ✅ Chat history saved per session

💾 Session Management

  • ✅ Auto-save on every change
  • ✅ Multi-session support with sidebar
  • ✅ Last active session auto-restored
  • ✅ Session switching with preserved state
  • ✅ Question names displayed in sidebar
  • ✅ Session deletion with confirmation
  • ✅ All data in browser localStorage (no database)

⏱️ Timer & Stopwatch

  • ✅ Compact dropdown design (no overflow)
  • ✅ Timer with presets (5/15/30/60 min) + custom
  • ✅ Stopwatch mode
  • ✅ State persists across reloads
  • ✅ Icon-based UI

🎨 UI/UX

  • ✅ Fixed hamburger menu overlap
  • ✅ Removed per-test time/memory display
  • ✅ Simplified complexity options (Basic/Comprehensive only)
  • ✅ Chat/Help buttons in proper locations
  • ✅ Tab switching for Evaluation/Help
  • ✅ Holographic background with particle effects
  • ✅ Glassmorphism design with neon accents

📦 What's Stored in localStorage

Each session contains:

{
  id: string,
  name: string,                    // User-provided name
  problem: string,                 // Problem description
  code: string,                    // User's code
  language: string,                // Programming language
  testCases: [],                   // Generated test cases
  chatHistory: [],                 // AI chat messages
  lastEvaluation: {},              // Last test results
  timerMinutes: number,            // Timer state
  timerStartedAt: number,          // Timer start time
  stopwatchStartedAt: number,      // Stopwatch start time
  stopwatchElapsed: number,        // Stopwatch elapsed
  createdAt: number,               // Timestamp
  updatedAt: number                // Timestamp
}

🚀 How to Use

First Time

  1. Clone repo
  2. npm install
  3. Add API keys to .env.local:
    GEMINI_API_KEY=your_key
    JUDGE0_API_KEY=your_key
    JUDGE0_API_HOST=judge0-ce.p.rapidapi.com
    
  4. npm run dev
  5. Open http://localhost:3000

Daily Workflow

  1. Open browser → Last session auto-loads
  2. Click ☰ to switch sessions or create new
  3. Paste problem → Name it → Generate test cases
  4. Write code → Toggle ☁️/🖥️ mode → Evaluate
  5. Chat with AI in Help tab if stuck
  6. Everything auto-saves!

🔒 Data Privacy

  • ✅ All data stored in browser localStorage
  • ✅ Nothing uploaded to servers except API calls
  • .env.local gitignored (API keys safe)
  • ✅ Works offline once loaded
  • ✅ Each browser/device has separate data
  • ✅ Clear browser data = lose sessions

🌐 Deployment to Vercel

  1. Push code to GitHub (already done!)
  2. Go to vercel.com → Import project
  3. Add environment variables:
    • GEMINI_API_KEY
    • JUDGE0_API_KEY
    • JUDGE0_API_HOST
  4. Deploy!

Note: Local execution won't work on Vercel (serverless), but Cloud mode (Judge0) will work perfectly.

📝 What's NOT Uploaded to GitHub

  • .env.local (your API keys)
  • node_modules/ (dependencies)
  • .next/ (build files)
  • ✅ localStorage data (browser-only, not a file)

Your browser data is safe and private! It's stored in the browser's localStorage API, not as files.

🎯 Current Status

Repository: https://github.com/YashMahawa/CodeCrush Branch: main Last Commit: "feat: Complete feature overhaul" Status: ✅ All features complete and pushed


🚀 Ready to Deploy!

Your CodeCrush is feature-complete and ready for Vercel deployment. Just add your API keys in the Vercel dashboard and you're good to go!