codearea

CodeArea — Full-Stack Coding Platform

CodeArea คือแพลตฟอร์มการเรียนรู้แบบรวมศูนย์ (Unified Platform) ที่ช่วยให้ผู้ใช้งานสามารถฝึกฝนการเขียนโค้ดได้ทันทีผ่านเว็บเบราว์เซอร์ โดยบูรณาการเทคโนโลยี AI Tutor เพื่อยกระดับประสบการณ์การเรียนรู้และลดกำแพงในการเข้าถึงความรู้ทางเทคนิค


Table of Contents


1. บทนำและวัตถุประสงค์ (Introduction)

ภูมิหลังความเป็นมา

ในปัจจุบัน ผู้เริ่มต้นมักประสบปัญหาในช่วงเริ่มต้น เช่น ความยุ่งยากในการติดตั้งสภาพแวดล้อม (Environment) และการขาดที่ปรึกษาเมื่อติดปัญหา โครงงานนี้จึงถูกพัฒนาขึ้นเพื่อให้ผู้ใช้ฝึกเขียนโค้ดได้ทันทีและมี AI ช่วยให้คำแนะนำแบบเรียลไทม์

วัตถุประสงค์หลัก

  1. พัฒนาแพลตฟอร์มฝึกเขียนโค้ดที่ทันสมัยและใช้งานง่าย
  2. สร้างระบบประมวลผลโค้ด (Execution Engine) ในพื้นที่ปลอดภัย (Sandbox)
  3. บูรณาการ AI Tutor (RAG) เพื่อวิเคราะห์และให้คำปรึกษา
  4. สร้าง Admin Dashboard สำหรับจัดการโจทย์และสมาชิกอย่างมีประสิทธิภาพ

2. คุณสมบัติเด่น (Key Features)


3. สถาปัตยกรรมระบบ (Project Architecture)

graph TD
    User((ผู้ใช้งาน)) -->|Web Interface| FE[Frontend - Next.js 16]
    FE -->|API Requests| BE[Backend - Node.js/Express]
    
    subgraph "Core Infrastructure"
        BE -->|Data| DB[(Supabase DB)]
        BE -->|Assets| ST[(Supabase Storage)]
        BE -->|Execution| Ex[Executor - Piston/Judge0]
    end
    
    subgraph "AI Intelligence Layer"
        BE -->|Proxy| AIT[AI Tutor BaaS - FastAPI]
        AIT -->|RAG Context| VDB[(ChromaDB)]
        AIT -->|Inference| LLM[Ollama Local LLM]
        VDB --- Emb[nomic-embed-text]
    end

รายละเอียดระบบ AI Tutor


4. แผนผังโครงสร้างและลำดับการใช้งาน

Site Map

graph TD
    Home[หน้าแรก - Landing] --> Auth[ระบบยืนยันตัวตน]
    Auth --> Register[ลงทะเบียน]
    Auth --> Login[เข้าสู่ระบบ]
    
    Login --> UserDashboard[Dashboard ของผู้ใช้]
    UserDashboard --> QuestionList[รายการโจทย์]
    QuestionList --> CodeEditor[หน้าเขียนโค้ด - IDE]
    CodeEditor --> AIAssistant[AI Tutor Sidebar]
    CodeEditor --> RunOutput[แสดงผลการรัน]
    
    Login --> AdminPanel[ระบบผู้ดูแลระบบ]
    AdminPanel --> ManageQ[จัดการโจทย์]
    AdminPanel --> ManageUser[จัดการสมาชิก]
    AdminPanel --> SysConfig[ตั้งค่าระบบ/Execution]

Storyboard (User Journey)

  1. Landing & Auth: ผู้ใช้สมัครสมาชิกและเข้าสู่ระบบ
  2. Question Browsing: เลือกโจทย์ตามหมวดหมู่และระดับความยาก
  3. Coding & AI Helping: เขียนโค้ดใน IDE หากสงสัยสามารถถาม AI Tutor ได้ทันที
  4. Run & Submit: ทดสอบโค้ดและส่งผลเพื่อบันทึกสถิติและคะแนน

5. เทคโนโลยีที่ใช้ (Technical Stack)

Frontend

| เทคโนโลยี | Badge | คำอธิบาย | | :— | :— | :— | | Next.js 16 | NextJS | Framework หลัก (App Router) | | React 19 | React | UI Library | | Tailwind v4 | TailwindCSS | Utility-first CSS Framework | | Monaco Editor | Monaco Editor | ตัวแก้ไขโค้ดระดับแนวหน้า (VS Code Engine) | | DaisyUI | DaisyUI | Library สำหรับ UI Components |

Backend & Database

| เทคโนโลยี | Badge | คำอธิบาย | | :— | :— | :— | | Node.js | NodeJS | Runtime v18+ | | Express.js | Express | REST API Framework | | Supabase | Supabase | ฐานข้อมูล PostgreSQL | | Redis | Redis | Session / Token Store | | Docker | Docker | รัน Code Executor (Piston/Judge0) | | JWT | JWT | ระบบ Authentication | | FastAPI | FastAPI | AI Tutor Backend-as-a-Service |


6. อัลกอริทึมที่สำคัญ (System Algorithms)


7. รายละเอียดการพัฒนา (Technical Deep Dive)

การจัดการ UI Layout

Backend Logic

React Hooks ที่ใช้งาน


8. การ Deployment และ Infrastructure


9. แผนผังการไหลของข้อมูล (System Flow)

graph TD
    User((User)) -->|Browser| Frontend[Next.js Frontend]
    Frontend -->|REST API| Backend[Express Gateway]
    Backend -->|Auth/Data| Supabase[(Supabase DB & Auth)]
    Backend -->|Execute Code| Executor[Piston/Judge0 Service]
    Backend -->|Ask AI| AIService[FastAPI AI Service]
    AIService -->|Context| VectorDB[(ChromaDB)]
    AIService -->|LLM| Ollama[Ollama Local LLM]

10. ตัวอย่างโจทย์

[!IMPORTANT] Developer Note for Integration (@frontend/app/dashboard/problems/new/page.tsx) ข้อมูลในไฟล์นี้ถูกออกแบบมาให้สอดคล้องกับฟอร์มใน ProblemUpsertForm:


ศิลาจารึกแห่งกระจกเงา (Palindrome Mirror)

Order Input Data Output Data Is Simple Status
1 level Yes True Active
2 hello No True Active

บรรณานุกรม (Bibliography)

  1. เอกสารประกอบการพัฒนาเฟรมเวิร์ค Next.js (v16.2.4): https://nextjs.org/docs
  2. เอกสารประกอบการพัฒนาเฟรมเวิร์ค CSS Tailwind (v4): https://tailwindcss.com/docs/installation/framework-guides/nextjs
  3. เอกสารประกอบการพัฒนา Runtime Environment Node.js (18): https://nodejs.org/docs/latest-v18.x/api/index.html
  4. เอกสารประกอบการพัฒนาเว็บแอปพลิเคชันเฟรมเวิร์ค Express (v4): https://expressjs.com/en/4x/api.html
  5. เอกสารประกอบการพัฒนาไลบารี่ React (v19.2): https://react.dev/reference/react
  6. เอกสารประกอบการพัฒนาฐานข้อมูล Supabase: https://supabase.com/docs
  7. เอกสารประกอบการพัฒนา API ของ Monaco Editor: https://microsoft.github.io/monaco-editor/
  8. เอกสารประกอบการพัฒนา Piston: https://github.com/engineer-man/piston
  9. เอกสารประกอบการพัฒนาโมเดลภาษาขนาดใหญ่ (LLM) Gemma 4 (Google): https://ai.google.dev/gemma/docs/integrations/ollama
  10. เอกสารประกอบการพัฒนาเฟรมเวิร์คสำหรับการจัดการโมเดลภาษาขนาดใหญ่ (LLMs on Local Machine) Ollama: https://docs.ollama.com