CSLogbook - ระบบบริหารจัดการและติดตามความก้าวหน้าทางวิชาการ
เว็บแอปพลิเคชัน Full-stack สำหรับจัดการ Academic Workflow ติดตามการฝึกงาน โครงงานพิเศษ และปริญญานิพนธ์ของนักศึกษาวิทยาการคอมพิวเตอร์ มจพ.
1. Overview
CSLogbook (https://cslogbook.me) คือระบบเว็บแอปพลิเคชัน Full-stack ศูนย์กลางการบริหารจัดการและติดตามกระบวนการทางวิชาการ (Academic Workflow Tracking) ของภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ (KMUTNB) ครอบคลุม 3 สายงานหลัก: การฝึกงาน (Internship), โครงงานพิเศษ (Special Project), และปริญญานิพนธ์ (Thesis)
2. Stories & Visual Tour
Dashboard & Activity Overview
Dashboard แสดงภาพรวมความคืบหน้าทางวิชาการ การแจ้งเตือนสถานะคำร้อง และขั้นตอนที่ต้องดำเนินการถัดไปแบบเรียลไทม์
Daily Logbook System
ระบบบันทึก Logbook การปฏิบัติงานรายวัน พร้อมฟังก์ชันแนบรายงานผลและระบบตรวจรับรองจากอาจารย์ที่ปรึกษา
Clock-in & Work Hours Tracking
ระบบบันทึกเวลาเข้า-ออกงาน คำนวณชั่วโมงฝึกงานสะสมอัตโนมัติ และระบบบันทึกการลาตามเกณฑ์หลักสูตร
Thesis & Defense Milestone Tracking
ตารางติดตามความคืบหน้า ตรวจสอบเงื่อนไขการปลดล็อก (Unlock Conditions) และประวัติการสอบปริญญานิพนธ์
Mentor & Enterprise Evaluation
ระบบจัดการข้อมูลพี่เลี้ยงและสถานประกอบการ พร้อมส่งลิงก์ประเมินผลผ่าน Secure Cryptographic Public Token
Company & Workplace Directory
ระบบค้นหา ตรวจสอบ และขึ้นทะเบียนสถานประกอบการที่ผ่านการรับรองสำหรับนักศึกษา
3. Architecture & Workflows
💡 Interactive Visual Viewers (Archify):
- 🖥️ เปิดดู Interactive Full-stack Architecture (Full Screen) — ซูม, โฟกัส Component และสลับ Light/Dark Mode
- 🔄 เปิดดู Interactive Academic Workflow Trace Viewer — Trace Motion แสดง State Machine และ Approval Pipeline แบบแอนิเมชัน
System Architecture (Infographic)
flowchart TB subgraph Client["Client Tier (Next.js 16 App Router)"] UI_AUTH["Auth Layer\nKMUTNB SSO + Scoped JWT"] UI_STU["Student Portal\n(คพ.02 / คพ.03 / คพ.05 / Logbook)"] UI_ADV["Advisor Portal\n(Review & Granular Approvals)"] UI_ADM["Admin Portal\n(Manage / Override / Excel Engine)"] UI_SUP["External Supervisor\n(Token-based Evaluation)"] end
subgraph Proxy["Reverse Proxy & Gateway"] NGINX["Nginx (Port 80/443 SSL)\n- / -> Next.js :3000\n- /api/ -> Express :5000\n- /uploads/ -> Static PDFs"] end
subgraph API["Backend Tier (Express REST API)"] MID["Middleware (Auth, RBAC, RateLimit)"] SRV["Service Layer (Workflow Engine, DocBuilder)"] NOTIF["Real-time & Telemetry (Socket.io + Winston)"] end
subgraph Storage["Data Tier (MySQL 8.0 & Storage)"] DB[(MySQL 8.0 Database\n48 Models / 103+ Migrations)] UPLOADS["File Storage\n(Signed PDFs & Documents)"] end
Client --> NGINX NGINX --> UI_AUTH NGINX --> MID MID --> SRV SRV --> DB SRV --> UPLOADS SRV --> NOTIFState Machine Approval Pipeline
sequenceDiagram autonumber actor S as นักศึกษา (Student) actor A as อาจารย์ที่ปรึกษา (Advisor) actor ADM as เจ้าหน้าที่ (Admin) participant SYS as CSLogbook API & DB
Note over S, SYS: 1. ยื่นคำร้อง / ตรวจสอบสิทธิ์ (State Transition Guard) S->>SYS: ส่งคำร้อง (คพ.05 / คพ.02 / ยื่นขอสอบ) SYS-->>SYS: ตรวจสอบ Unlock Conditions (เกณฑ์หน่วยกิต / บันทึกพบที่ปรึกษา >= 4 ครั้ง) SYS->>SYS: อัปเดตสถานะเป็น "Pending"
alt Special Project & Thesis Flow SYS->>A: แจ้งเตือนอาจารย์ที่ปรึกษา A->>SYS: ตรวจสอบและอนุมัติ (Advisor Approved) SYS->>ADM: ส่งต่อคำร้องให้เจ้าหน้าที่ else Internship Flow SYS->>ADM: ส่งคำร้องตรงถึงเจ้าหน้าที่ภาควิชา end
Note over ADM, SYS: 2. อนุมัติขั้นสุดท้าย & ออกเอกสารทางการอัตโนมัติ ADM->>SYS: ตรวจสอบและอนุมัติขั้นสุดท้าย (Officer Approved) SYS->>SYS: สร้างเอกสาร PDF อัตโนมัติ (หนังสือขอความอนุเคราะห์ / หนังสือส่งตัว) SYS-->>S: ปลดล็อกดาวน์โหลดเอกสาร และเปิดใช้งานสเต็ปถัดไป4. Key Engineering Highlights
- Multi-Role RBAC & Public Token: ระบบ 4 บทบาท (Student, Advisor, Admin, Supervisor) พร้อม Public Cryptographic Token ให้พี่เลี้ยงภายนอกประเมินงานโดยไม่ต้องสร้าง Account
- State Machine & Dynamic Engine: ควบคุมสถานะคำร้องด้วย
workflowStates.tsและcanTransition()ป้องกัน Race Condition และบังคับตรวจ Unlock Conditions - Staff Backoffice & Matrix: แดชบอร์ดจัดการข้อมูลนักศึกษา, ระบบ Rubric Scoring Matrix สำหรับคิดคะแนนสอบ และ Dynamic Excel/PDF Generator
- DevOps & Infrastructure: รันระบบผ่าน Docker Compose หลัง Nginx Reverse Proxy พร้อม Winston Logging และ GitHub Actions CI/CD Deploy ตรงสู่ VPS
5. My Role & What I Built
ในฐานะ Full-stack Developer ผมรับผิดชอบการพัฒนาแบบ End-to-End:
- Frontend: ออกแบบ UI ด้วย Next.js 16 (App Router), React 19, TypeScript และสร้าง Step Workflow Components
- Backend & API: พัฒนา RESTful API บน Node.js/Express, ระบบ RBAC, State Machine และ Engine ออกรายงาน Excel (
ExcelExportBuilder) - Database: ออกแบบ Schema บน MySQL 8.0 (48 Models) และ Migration Scripts 103+ ตัวด้วย Sequelize
- DevOps: จัดการ Docker Compose, Nginx SSL, Winston Logging และ CI/CD Pipeline ผ่าน GitHub Actions
6. Result & Current State
- UAT Passed: ผ่านการทดสอบระดับ User Acceptance Testing (UAT) ครอบคลุม 34 Test Cases
- Production Live: Deploy ใช้งานจริงบน VPS ภายใต้โดเมน
https://cslogbook.meอย่างเสถียร
7. Demo & Code
- Live System: https://cslogbook.me
- GitHub Repository: Manchinn/CSLogbook