2026-05-01 2026-09-19 -- --

CSLogbook - ระบบบริหารจัดการและติดตามความก้าวหน้าทางวิชาการ

เว็บแอปพลิเคชัน Full-stack สำหรับจัดการ Academic Workflow ติดตามการฝึกงาน โครงงานพิเศษ และปริญญานิพนธ์ของนักศึกษาวิทยาการคอมพิวเตอร์ มจพ.

Backoffice RBAC 4 Roles Token Evaluation State Machine Next.js TypeScript React.js Node.js Express MySQL Sequelize Docker Nginx

1. Overview#

CSLogbook (https://cslogbook.me) คือระบบเว็บแอปพลิเคชัน Full-stack ศูนย์กลางการบริหารจัดการและติดตามกระบวนการทางวิชาการ (Academic Workflow Tracking) ของภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ (KMUTNB) ครอบคลุม 3 สายงานหลัก: การฝึกงาน (Internship), โครงงานพิเศษ (Special Project), และปริญญานิพนธ์ (Thesis)


2. Stories & Visual Tour#

Dashboard & Activity Overview#

CSLogbook Dashboard Dashboard แสดงภาพรวมความคืบหน้าทางวิชาการ การแจ้งเตือนสถานะคำร้อง และขั้นตอนที่ต้องดำเนินการถัดไปแบบเรียลไทม์

Daily Logbook System#

CSLogbook Daily Log ระบบบันทึก Logbook การปฏิบัติงานรายวัน พร้อมฟังก์ชันแนบรายงานผลและระบบตรวจรับรองจากอาจารย์ที่ปรึกษา

Clock-in & Work Hours Tracking#

CSLogbook Clock-in System ระบบบันทึกเวลาเข้า-ออกงาน คำนวณชั่วโมงฝึกงานสะสมอัตโนมัติ และระบบบันทึกการลาตามเกณฑ์หลักสูตร

Thesis & Defense Milestone Tracking#

CSLogbook Thesis Progress ตารางติดตามความคืบหน้า ตรวจสอบเงื่อนไขการปลดล็อก (Unlock Conditions) และประวัติการสอบปริญญานิพนธ์

Mentor & Enterprise Evaluation#

CSLogbook Mentor Management ระบบจัดการข้อมูลพี่เลี้ยงและสถานประกอบการ พร้อมส่งลิงก์ประเมินผลผ่าน Secure Cryptographic Public Token

Company & Workplace Directory#

CSLogbook Company Directory ระบบค้นหา ตรวจสอบ และขึ้นทะเบียนสถานประกอบการที่ผ่านการรับรองสำหรับนักศึกษา


3. Architecture & Workflows#

💡 Interactive Visual Viewers (Archify):

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 --> NOTIF

State 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#

ภาพรวมการเขียน
5 โพสต์
โพสต์
4,418
จำนวนตัวอักษร
23min
เวลาอ่าน
884
ตัวอักษรเฉลี่ย
โพสต์รายปี
2026
11
2024
1
โพสต์ที่ยาวที่สุด
© 2026 chinnakrit
RSS / Sitemap
Powered by Astro & Fuwari
© 2026 chinnakrit
RSS / Sitemap
Powered by Astro & Fuwari