feat: implement LMS core (CMS, Courses, Enrollment, Progress, Auth) (Admin + API)
Build & Push Docker Image (Backend) / build (push) Successful in 54s

This commit is contained in:
Flook
2026-05-03 09:36:47 +07:00
parent 1ec6fa68a1
commit fe67d491e2
25 changed files with 590 additions and 71 deletions
+28 -1
View File
@@ -10,6 +10,7 @@ For the full list of settings and their values, see
https://docs.djangoproject.com/en/6.0/ref/settings/
"""
import os
from datetime import timedelta
from pathlib import Path
from django.templatetags.static import static
@@ -48,6 +49,7 @@ INSTALLED_APPS = [
# Third-party Apps
'rest_framework', # สำหรับจัดการ API
'corsheaders', # สำหรับจัดการ CORS (สำคัญมากถ้ามีหน้าบ้านแยก)
"django_filters",
# LOCAL APPS
'apps.accounts',
@@ -109,9 +111,34 @@ DATABASES = {
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
# สำหรับ Django Admin (ยังจำเป็น)
"rest_framework.authentication.SessionAuthentication",
"rest_framework.authentication.TokenAuthentication",
# สำหรับ API ทั้งหมด
"rest_framework_simplejwt.authentication.JWTAuthentication",
),
"DEFAULT_PERMISSION_CLASSES": (
# ค่า default ต้อง login ก่อน
"rest_framework.permissions.IsAuthenticated",
),
"DEFAULT_FILTER_BACKENDS": [
"django_filters.rest_framework.DjangoFilterBackend",
],
"DEFAULT_PAGINATION_CLASS": (
"rest_framework.pagination.PageNumberPagination"
),
"PAGE_SIZE": 10,
}
SIMPLE_JWT = {
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=15),
"REFRESH_TOKEN_LIFETIME": timedelta(days=7),
"AUTH_HEADER_TYPES": ("Bearer",), # กำหนด client ส่ง header แบบ Authorization: Bearer <token>
}
CORS_ALLOW_ALL_ORIGINS = True # ควรเป็น False ใน Production