| 1.1 |
ผังงานระบบการเข้าสู่ระบบ (Login Flow) |
1 |
|
|
|
แสดงกระบวนการ Login สำหรับ HR และ Applicant พร้อม JWT Token validation และการตรวจสอบสิทธิ์ผู้ใช้ |
|
|
|
| 1.2 |
ผังงานกระบวนการของผู้ดูแลระบบ (HR Admin) |
1 |
|
|
|
แสดงผังงานการจัดการตำแหน่งงาน, ดูใบสมัคร, คัดเลือกผู้สมัคร, ส่งอีเมลแจ้งผล และการบริหารจัดการระบบรับสมัคร |
|
|
|
| 1.3 |
ผังงานกระบวนการของผู้สมัครงาน (Applicant) |
1 |
|
|
|
แสดงผังงานการดูตำแหน่งงาน, กรอกใบสมัคร, อัปโหลด Resume, ติดตามสถานะ และการรับการแจ้งเตือน |
|
|
|
| 1.4 |
ผังงานกระบวนการของผู้จัดการ (HR Manager) |
1 |
|
|
|
แสดงผังงานการอนุมัติการรับสมัคร, ดูรายงานสถิติ, จัดการกระบวนการสัมภาษณ์ และการตัดสินใจคัดเลือก |
|
|
|
| 1.5 |
ผังงานภาพรวมของระบบ (System Flow Overview) |
1 |
|
|
|
แสดงการเชื่อมโยง Job Posting → Application → Screening → Interview → Selection และกระบวนการแจ้งเตือนทางอีเมล |
|
|
|
| 2.1 |
ตารางฐานข้อมูลครบถ้วน |
1 |
|
|
|
มีการสร้างฐานข้อมูลอย่างน้อย 9 ตาราง: users, job_postings, applications, documents, interviews, application_status_history, departments, skills, applicant_skills พร้อมกำหนดฟิลด์ที่เหมาะสม |
|
|
|
| 2.2 |
ความสัมพันธ์ของตาราง |
1 |
|
|
|
ตารางฐานข้อมูลมีความสัมพันธ์กันอย่างเหมาะสมผ่าน Foreign Keys เพื่อรักษาความสมบูรณ์ของข้อมูล (Referential Integrity) |
|
|
|
| 2.3 |
ประเภทข้อมูล (Data Types) |
1 |
|
|
|
เลือกใช้ประเภทข้อมูลเหมาะสม เช่น VARCHAR, INT, DATE, TEXT, DECIMAL, ENUM สำหรับ employment_type และ status |
|
|
|
| 2.4 |
ER-Diagram |
1 |
|
|
|
แสดง Entity Relationship Diagram (ERD) สมบูรณ์ที่แสดงความสัมพันธ์ระหว่าง Entity ทุกประเภท (One-to-One, One-to-Many, Many-to-Many) อย่างชัดเจน |
|
|
|
| 2.5 |
มาตรฐานการตั้งชื่อ |
1 |
|
|
|
ตั้งชื่อตารางและฟิลด์เป็นมาตรฐาน (snake_case) และสื่อความหมาย เพื่อความเข้าใจและบำรุงรักษาที่ง่าย |
|
|
|
| 3.1 |
HR Admin Dashboard |
1 |
|
|
|
Template Layout สำหรับหน้าจอผู้ดูแลระบบ HR ครอบคลุมการจัดการตำแหน่งงาน, ดูใบสมัคร, คัดเลือกผู้สมัคร และการส่งอีเมลแจ้งผล |
|
|
|
| 3.2 |
Applicant Job Portal |
1 |
|
|
|
Template Layout สำหรับหน้าจอผู้สมัครงาน ครอบคลุมการดูตำแหน่งงาน, กรอกใบสมัคร, อัปโหลด Resume, และติดตามสถานะ |
|
|
|
| 3.3 |
HR Manager Reports |
1 |
|
|
|
Template Layout สำหรับหน้าจอผู้จัดการ HR ครอบคลุมการอนุมัติการรับสมัคร, ดูรายงานสถิติ, และจัดการทีม HR |
|
|
|
| 3.4 |
Main Dashboard |
1 |
|
|
|
Template Layout สำหรับหน้าจอหลัก แสดงสถิติการสมัครงาน, ตำแหน่งที่เปิดรับ, และ hiring pipeline |
|
|
|
| 3.5 |
Login Screen |
1 |
|
|
|
Template Layout สำหรับหน้าจอเข้าสู่ระบบ พร้อมฟอร์ม Login และ role selection (HR/Applicant/HR Manager) |
|
|
|
| 4.1 |
RESTful Design |
1 |
|
|
|
ออกแบบ API ตามหลัก RESTful โดยใช้ HTTP Methods (GET, POST, PUT, DELETE) อย่างถูกต้อง เช่น GET /api/jobs, POST /api/applications |
|
|
|
| 4.2 |
Endpoint Naming |
1 |
|
|
|
ตั้งชื่อ Endpoint สื่อความหมาย เช่น /api/jobs/{id}/applications, /api/applications/{id}/documents |
|
|
|
| 4.3 |
HTTP Status Codes |
1 |
|
|
|
Response Body สอดคล้องกับ HTTP Status Code: 200 (Success), 201 (Application submitted), 400 (Validation errors), 401 (Unauthorized), 403 (Job posting expired), 404 (Job not found), 413 (File too large) |
|
|
|
| 4.4 |
Error Handling |
1 |
|
|
|
รองรับกรณีเกิด Error ด้วย Error handling middleware, file validation (PDF, DOC, DOCX), และ file format validation |
|
|
|
| 4.5 |
API Security |
1 |
|
|
|
ความปลอดภัยของ API โดยใช้ JWT Token authentication และ role-based authorization สำหรับควบคุมการเข้าถึง |
|
|
|
| 5.1 |
API GET with Parameters |
1 |
|
|
|
API GET พร้อมรับค่า: GET /api/jobs?department=IT&salary_min=50000&location=Bangkok&keyword=developer |
|
|
|
| 5.2 |
API POST with Body |
1 |
|
|
|
API POST รับข้อมูลจาก Body สำหรับส่งใบสมัครงานพร้อม validation และ duplicate check |
|
|
|
| 5.3 |
File Upload API |
1 |
|
|
|
API สำหรับอัปโหลดไฟล์: POST /api/documents สำหรับ Resume (PDF, DOC, DOCX) พร้อม virus scan และ file size limit |
|
|
|
| 5.4 |
JWT Login API |
1 |
|
|
|
API Login JWT: /api/auth/login สร้าง JWT Token พร้อม role information (HR/Applicant/HR Manager) |
|
|
|
| 5.5 |
Exception Handling |
1 |
|
|
|
Exception Handling: try-catch, validation middleware, file type validation, และ error response format |
|
|
|
| 5.6 |
Response Format |
1 |
|
|
|
Response เหมาะสม: รูปแบบ JSON standard { "status": "success", "message": "Application submitted", "data": {...} } |
|
|
|
| 5.7 |
API Documentation |
1 |
|
|
|
คำอธิบาย API: API Documentation โดยใช้ Swagger/OpenAPI Specification |
|
|
|
| 5.8 |
Parameter Documentation |
1 |
|
|
|
Parameter ชัดเจน: ระบุ query, path, body parameters พร้อมคำอธิบายและตัวอย่าง |
|
|
|
| 5.9 |
Code Structure |
1 |
|
|
|
โครงสร้างดี: แยกไฟล์ routes, controllers, models, middleware, services ตามหลัก MVC Pattern |
|
|
|
| 5.10 |
API Security |
1 |
|
|
|
ความปลอดภัย: JWT verification middleware, role checking, file security, data sanitization |
|
|
|
| 6.1 |
Responsive Layout |
1 |
|
|
|
Layout Responsive: ใช้ Tailwind CSS responsive design ที่รองรับ Desktop, Tablet, Mobile |
|
|
|
| 6.2 |
JWT Authentication |
1 |
|
|
|
ระบบ Login JWT: Authentication middleware, token storage, role-based routing |
|
|
|
| 6.3 |
Role-based Login |
1 |
|
|
|
แยกระบบ Login ตามระดับ: Applicant/HR/HR Manager routes และ permissions |
|
|
|
| 6.4 |
CRUD Operations |
1 |
|
|
|
CRUD สมบูรณ์: สร้างตำแหน่งงาน (Create), ดูรายการงาน/ใบสมัคร (Read), แก้ไขใบสมัคร/ตำแหน่งงาน (Update), ลบตำแหน่งงาน (Delete) |
|
|
|
| 6.5 |
File Upload Component |
1 |
|
|
|
แนบไฟล์: File upload component สำหรับ Resume, Cover Letter, Portfolio พร้อม preview และ progress bar |
|
|
|
| 6.6 |
Data Editing |
1 |
|
|
|
แก้ไขข้อมูล: Edit application form และ job posting management |
|
|
|
| 6.7 |
Delete Confirmation |
1 |
|
|
|
แจ้งเตือนการลบ: Confirmation modal ก่อนลบตำแหน่งงานหรือใบสมัคร |
|
|
|
| 6.8 |
Permission-based Display |
1 |
|
|
|
แสดงข้อมูลตามสิทธิ์: Applicant เห็นงานที่เปิดรับ, HR เห็นใบสมัครในแผนกที่ดูแล, HR Manager เห็นข้อมูลทั้งหมด |
|
|
|
| 6.9 |
Search & Filter |
1 |
|
|
|
ระบบค้นหา/Filter: กรองตามแผนก, ตำแหน่ง, เงินเดือน, สถานะ, วันที่สมัคร |
|
|
|
| 6.10 |
Pagination & Validation |
1 |
|
|
|
แบ่งหน้าแสดงข้อมูล + Validate Frontend + Error Handling Frontend + แสดงข้อความผิดพลาด (Toast notifications) |
|
|
|
| 7.1 |
Backend Dockerfile |
2 |
|
|
|
Dockerfile สำหรับ Backend: Node.js Alpine image, multi-stage build เพื่อลดขนาดและเพิ่มความปลอดภัย |
|
|
|
| 7.2 |
Frontend Dockerfile |
2 |
|
|
|
Dockerfile สำหรับ Frontend: Nuxt.js build และ Nginx serve พร้อม static file optimization |
|
|
|
| 7.3 |
docker-compose |
2 |
|
|
|
docker-compose: เชื่อมโยง Backend + Frontend + Database + File Storage + Email Service + Redis |
|
|
|
| 7.4 |
Pipeline Configuration |
2 |
|
|
|
Pipeline config: .gitlab-ci.yml ครอบคลุม stages: build (สร้าง images), test (unit & integration tests, security scans), deploy (deploy ไป test/production) |
|
|
|
| 7.5 |
Auto Build/Test |
2 |
|
|
|
Auto Build/Test: Trigger เมื่อ push ไป GitLab, สร้าง container อัตโนมัติ พร้อม automated testing |
|
|
|
| 8.1 |
Core Components |
- |
|
|
|
JobPostingForm.vue - ฟอร์มสร้างตำแหน่งงาน |
|
|
|
|
JobListing.vue - รายการตำแหน่งงาน |
|
|
|
|
ApplicationForm.vue - ฟอร์มสมัครงาน |
|
|
|
|
ApplicationList.vue - รายการใบสมัคร |
|
|
|
|
DocumentUpload.vue - อัปโหลดเอกสาร Resume |
|
|
|
|
InterviewScheduler.vue - จัดการตารางสัมภาษณ์ |
|
|
|
|
StatusTimeline.vue - แสดงสถานะใบสมัคร |
|
|
|
|
Dashboard.vue - หน้าหลัก Dashboard |
|
|
|
|
LoginForm.vue - ฟอร์มเข้าสู่ระบบ |
|
|
|
|
Pagination.vue - แบ่งหน้า |
|
|
|
|
FilterPanel.vue - กรองและค้นหา |
|
|
|
| รวม |
ระบบ Recruitment System (รับสมัครงาน) - Web Application |
50 |
|
คะแนนเต็ม |