From 2a0e7d8a12108a0d15bfe5d4ed80c0b46ca4ce85 Mon Sep 17 00:00:00 2001 From: x2Skyz Date: Tue, 16 Dec 2025 18:29:49 +0700 Subject: [PATCH] -first-commit --- .gitignore | 2 + backend/@knowleadge/frontend'.txt | 3 ++ backend/@knowleadge/npm_install.txt | 3 ++ backend/package.json | 26 ++++++++++ docker-compose.yml | 62 +++++++++++++++++++++++ frontend/.gitignore | 24 +++++++++ frontend/README.md | 75 ++++++++++++++++++++++++++++ frontend/app/app.vue | 6 +++ frontend/nuxt.config.ts | 5 ++ frontend/package.json | 24 +++++++++ frontend/public/favicon.ico | Bin 0 -> 4286 bytes frontend/public/robots.txt | 2 + frontend/tsconfig.json | 18 +++++++ 13 files changed, 250 insertions(+) create mode 100644 .gitignore create mode 100644 backend/@knowleadge/frontend'.txt create mode 100644 backend/@knowleadge/npm_install.txt create mode 100644 backend/package.json create mode 100644 docker-compose.yml create mode 100644 frontend/.gitignore create mode 100644 frontend/README.md create mode 100644 frontend/app/app.vue create mode 100644 frontend/nuxt.config.ts create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/public/robots.txt create mode 100644 frontend/tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d5f19d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +package-lock.json diff --git a/backend/@knowleadge/frontend'.txt b/backend/@knowleadge/frontend'.txt new file mode 100644 index 0000000..fcb192f --- /dev/null +++ b/backend/@knowleadge/frontend'.txt @@ -0,0 +1,3 @@ +npx nuxi@latest init frontend # (หรือตาม template ที่เครื่องมี) +cd frontend +npm install vuetify vite-plugin-vuetify @mdi/font axios pinia @pinia/nuxt tailwindcss \ No newline at end of file diff --git a/backend/@knowleadge/npm_install.txt b/backend/@knowleadge/npm_install.txt new file mode 100644 index 0000000..7ddf472 --- /dev/null +++ b/backend/@knowleadge/npm_install.txt @@ -0,0 +1,3 @@ +mkdir backend && cd backend +npm init -y +npm install express cors dotenv knex mysql2 jsonwebtoken bcrypt morgan multer swagger-ui-express swagger-jsdoc \ No newline at end of file diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..f9de11e --- /dev/null +++ b/backend/package.json @@ -0,0 +1,26 @@ +{ + "name": "backend", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "bcrypt": "^6.0.0", + "cors": "^2.8.5", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "jsonwebtoken": "^9.0.3", + "knex": "^3.1.0", + "morgan": "^1.10.1", + "multer": "^2.0.2", + "mysql2": "^3.15.3", + "swagger-jsdoc": "^6.2.8", + "swagger-ui-express": "^5.0.1" + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4e6562a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,62 @@ +services: + # 1. Database Service (พระเอกของเรา) + db: + image: mysql:8.0 # หรือ mariadb:latest ตามโจทย์ระบุ + container_name: skill_db_container + restart: always + environment: + MYSQL_ROOT_PASSWORD: rootpassword + MYSQL_DATABASE: skills_db + MYSQL_USER: user + MYSQL_PASSWORD: password + TZ: Asia/Bangkok + ports: + # 🔥 สำคัญมาก: เปิด Port 3306 ออกมาเพื่อให้ + # Backend (ที่รันบนเครื่อง) และ HeidiSQL/DBeaver เข้าถึงได้ + - "3306:3306" + volumes: + - db_data:/var/lib/mysql + # ถ้ามีไฟล์ schema.sql ให้ map เข้าไปรันออโต้เลย (ประหยัดเวลา import) + # - ./schema.sql:/docker-entrypoint-initdb.d/00-schema.sql:ro + networks: + - skill_net + + # ------------------------------------------------------- + # 2. phpMyAdmin (ตัวช่วยชีวิต) + # ------------------------------------------------------- + pma: + image: phpmyadmin/phpmyadmin + container_name: skill_pma_container + environment: + PMA_HOST: db + PMA_USER: root + PMA_PASSWORD: rootpassword + ports: + - "8080:80" # เข้าผ่าน http://localhost:8080 + depends_on: + - db + networks: + - skill_net + + # ------------------------------------------------------- + # 3. Backend & Frontend (เตรียมไว้สำหรับตอนส่งงาน) + # * ตอนพัฒนาเราจะ comment ปิดไว้ก่อน เพื่อรันบนเครื่อง (เร็วสุด) * + # ------------------------------------------------------- + # api: + # build: ./backend + # ports: ["7000:7000"] + # depends_on: [db] + # networks: [skill_net] + + # web: + # build: ./frontend + # ports: ["3000:3000"] + # depends_on: [api] + # networks: [skill_net] + +volumes: + db_data: + +networks: + skill_net: + driver: bridge \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..25b5821 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,75 @@ +# Nuxt Minimal Starter + +Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install dependencies: + +```bash +# npm +npm install + +# pnpm +pnpm install + +# yarn +yarn install + +# bun +bun install +``` + +## Development Server + +Start the development server on `http://localhost:3000`: + +```bash +# npm +npm run dev + +# pnpm +pnpm dev + +# yarn +yarn dev + +# bun +bun run dev +``` + +## Production + +Build the application for production: + +```bash +# npm +npm run build + +# pnpm +pnpm build + +# yarn +yarn build + +# bun +bun run build +``` + +Locally preview production build: + +```bash +# npm +npm run preview + +# pnpm +pnpm preview + +# yarn +yarn preview + +# bun +bun run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/frontend/app/app.vue b/frontend/app/app.vue new file mode 100644 index 0000000..09f935b --- /dev/null +++ b/frontend/app/app.vue @@ -0,0 +1,6 @@ + diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts new file mode 100644 index 0000000..b6baa24 --- /dev/null +++ b/frontend/nuxt.config.ts @@ -0,0 +1,5 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + compatibilityDate: '2025-07-15', + devtools: { enabled: true } +}) diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..d8e3b89 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,24 @@ +{ + "name": "frontend", + "type": "module", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@mdi/font": "^7.4.47", + "@pinia/nuxt": "^0.11.3", + "axios": "^1.13.2", + "nuxt": "^4.2.2", + "pinia": "^3.0.4", + "tailwindcss": "^4.1.18", + "vite-plugin-vuetify": "^2.1.2", + "vue": "^3.5.25", + "vue-router": "^4.6.4", + "vuetify": "^3.11.3" + } +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..18993ad91cfd43e03b074dd0b5cc3f37ab38e49c GIT binary patch literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e