ไธไธชๅฎๆด็ๅจ็บฟๅจ่ฏข่ๅคฉ็ณป็ป๏ผๅ ๅซ็จๆท็ซฏใ็ฎก็ๅๅฐๅๅฎๆถ้ไฟกๅ่ฝ
MyChat ๆฏไธไธชๅ่ฝๅฎๆด็ๅจ็บฟๅจ่ฏขๅนณๅฐ๏ผๆฏๆ็จๆทไธๅจ่ฏขๅธ่ฟ่กๅฎๆถ่ๅคฉใ่ฎขๅ็ฎก็ใๅจ็บฟๆฏไป็ญๅ่ฝใ
- ๐ค ็จๆทๆณจๅ/็ปๅฝใไธชไบบ่ตๆ็ฎก็
- ๐จโโ๏ธ ๅจ่ฏขๅธ็ฎก็ใๅจ็บฟ็ถๆ
- ๐ฌ ๅฎๆถ่ๅคฉใๆถๆฏๆจ้
- ๐ฆ ่ฎขๅ็ฎก็ใ็ถๆ่ท่ธช
- ๐ณ ๅจ็บฟๆฏไป๏ผๅพฎไฟกใๆฏไปๅฎ๏ผ
- ๐ฐ ่ดฆๅ็ฎก็ใๆ็ฐ็ณ่ฏท
- ๐ ่ง่ฒๆ้็ฎก็ (RBAC)
- ๐ ็ป่ฎกๆฅ่กจใๆฐๆฎๅๆ
- ๐จ ไฝไปฃ็ ๅนณๅฐ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็จๆท็ซฏๅบ็จ โ
โ (Vue/React/ๅฐ็จๅบ/H5) โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โ โ
โ HTTP REST API โ WebSocket
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ ็จๆท็ซฏ API (8080) โ โWebSocket (8082) โ
โ โข ็จๆท/ๅจ่ฏขๅธ โ โ โข ๅฎๆถๆถๆฏ โ
โ โข ่ฎขๅ/ๆฏไป โ โ โข ๅจ็บฟ็ถๆ โ
โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
โ MySQL + Redis โ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฎก็ๅๅฐ (admin/backend) โ
โ (็ซฏๅฃ 8081) โ
โ โข ็จๆท็ฎก็ โ
โ โข ่ฎขๅๅฎกๆ ธ โ
โ โข ่ดขๅก็ฎก็ โ
โ โข ็ณป็ป้
็ฝฎ โ
โ โข RBAC ๆ้ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- ่ฏญ่จ: Go 1.20+
- ๆกๆถ: Gin Web Framework
- ORM: GORM
- ๆฐๆฎๅบ: MySQL 5.7+
- ็ผๅญ: Redis 6.0+ (ๅฏ้)
- ่ฎค่ฏ: JWT
- ๅฎๆถ้ไฟก: Gorilla WebSocket
- ๆฏไป: ๅพฎไฟกๆฏไปใๆฏไปๅฎ
- ๆกๆถ: Vue 3
- UI: Element Plus
- HTTP: Axios
- ็ถๆ: Pinia
- ่ทฏ็ฑ: Vue Router
mychat/
โโโ api/ # ็จๆท็ซฏ API (็ซฏๅฃ 8080)
โ โโโ handlers/ # ่ฏทๆฑๅค็
โ โโโ models/ # ๆฐๆฎๆจกๅ
โ โโโ cache/ # ็ผๅญๅฑ
โ โโโ database/ # ๆฐๆฎๅบ่ฟๆฅ
โ โโโ middleware/ # ไธญ้ดไปถ
โ โโโ utils/ # ๅทฅๅ
ท็ฑป
โ โโโ main.go # ไธปๅ
ฅๅฃ
โโโ admin/ # ็ฎก็ๅๅฐ
โ โโโ backend/ # ็ฎก็ๅๅฐ API (็ซฏๅฃ 8081)
โ โ โโโ handlers/ # ่ฏทๆฑๅค็
โ โ โโโ models/ # ๆฐๆฎๆจกๅ
โ โ โโโ cache/ # ็ผๅญๅฑ
โ โ โโโ database/ # ๆฐๆฎๅบ่ฟๆฅ
โ โ โโโ middleware/ # ไธญ้ดไปถ
โ โ โโโ utils/ # ๅทฅๅ
ท็ฑป
โ โ โโโ websocket/ # WebSocket Hub
โ โ โโโ main.go # ไธปๅ
ฅๅฃ
โ โโโ frontend/ # ็ฎก็ๅๅฐๅ็ซฏ (็ซฏๅฃ 3000)
โ โโโ src/ # Vue ๆบ็
โโโ websocket/ # WebSocket ๆๅก (็ซฏๅฃ 8082)
โ โโโ hub.go # WebSocket Hub
โ โโโ manager.go # ่ฟๆฅ็ฎก็
โ โโโ message.go # ๆถๆฏๅค็
โ โโโ stats.go # ็ป่ฎกไฟกๆฏ
โโโ docs/ # ้กน็ฎๆๆกฃ
โ โโโ README.md # ๆๆกฃ็ดขๅผ
โ โโโ SERVICE_SEPARATION.md # ๆๅกๅ็ฆป่ฏดๆ
โ โโโ API.md # API ๆๆกฃ
โ โโโ DATABASE.md # ๆฐๆฎๅบๆๆกฃ
โ โโโ PROJECT_STATUS.md # ้กน็ฎ็ถๆ
โ โโโ IMPROVEMENT_PLAN.md # ๅฎๅ่ฎกๅ
โโโ uploads/ # ๆไปถไธไผ ็ฎๅฝ
โโโ start-all.bat # ไธ้ฎๅฏๅจๆๆๆๅก
โโโ stop-all.bat # ไธ้ฎๅๆญขๆๆๆๅก
โโโ .gitignore # Git ๅฟฝ็ฅ้
็ฝฎ
- Go 1.20+
- Node.js 16+
- MySQL 5.7+
- Redis 6.0+ (ๅฏ้)
git clone <repository-url>
cd mychat# ๅๅปบๆฐๆฎๅบ
mysql -u root -p -e "CREATE DATABASE mychat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# ๅฏผๅ
ฅๅๅงๆฐๆฎ
mysql -u root -p mychat < api/init_data.sql# Windows
start-all.bat
# Linux/Mac
bash start-all.sh# ็จๆท็ซฏ API (8080)
cd api
go mod tidy
go run main.go
# ็ฎก็ๅๅฐ API (8081)
cd admin/backend
go mod tidy
go run main.go
# WebSocket ๆๅก (8082)
cd websocket
go mod tidy
go run main.go
# ็ฎก็ๅๅฐๅ็ซฏ (3000)
cd admin/frontend
npm install
npm run dev- API ๅฐๅ: http://localhost:8080
- Swagger ๆๆกฃ: http://localhost:8080/swagger/index.html
- ๅฅๅบทๆฃๆฅ: http://localhost:8080/health
- ๅ็ซฏ API: http://localhost:8081
- ๅ็ซฏ็้ข: http://localhost:3000
- ้ป่ฎค่ดฆๅท: admin / 123456
- ่ฟๆฅๅฐๅ: ws://localhost:8082/ws
- ็จๆทๅ:
admin - ๅฏ็ :
123456
- ็จๆทๅ:
testuser - ๅฏ็ :
123456
่ฏฆ็ปๆๆกฃ่ฏทๆฅ็ docs/ ็ฎๅฝ๏ผ
- ๆๅกๅ็ฆป่ฏดๆ - ่ฏฆ็ป็ๆฅๅฃๅ่กจๅ่่ดฃ่ฏดๆ
- API ๆๆกฃ - ๅฎๆด็ API ๆฅๅฃๆๆกฃ
- ๆฐๆฎๅบๆๆกฃ - ๆฐๆฎๅบ่กจ็ปๆ่ฏดๆ
- ้กน็ฎ็ถๆ - ๅฝๅ้กน็ฎ็ถๆๅ้ฎ้ขๆธ ๅ
- ๅฎๅ่ฎกๅ - ๅ็ปญๅฎๅ่ฎกๅ
- ๅจ
api/handlers/ๅๅปบๅค็ๅฝๆฐ - ๅจ
api/main.goๆณจๅ่ทฏ็ฑ - ๆดๆฐ Swagger ๆณจ้
- ่ฟ่ก
swag init็ๆๆๆกฃ
- ๅจ
admin/backend/handlers/ๅๅปบๅค็ๅฝๆฐ - ๅจ
admin/backend/main.goๆณจๅ่ทฏ็ฑ
- ๅจ MySQL ไธญๅๅปบ่กจ
- ๅจๅฏนๅบ
models/็ฎๅฝๅๅปบๆจกๅๆไปถ - ๅจ
database/db.goไธญๆทปๅ AutoMigrate
- ๆฃๆฅ็ซฏๅฃๆฏๅฆ่ขซๅ ็จ
- ็กฎ่ฎคๆฐๆฎๅบ่ฟๆฅ้ ็ฝฎๆญฃ็กฎ
- ็กฎ่ฎค Redis ๆฏๅฆๅฏๅจ๏ผๅฏ้๏ผ
- ่ฟ่ก
go mod tidyๅฎ่ฃ ไพ่ต
- ๆฃๆฅ MySQL ๆฏๅฆๅฏๅจ
- ็กฎ่ฎคๆฐๆฎๅบ้
็ฝฎๅจ
database/db.go - ็กฎ่ฎค็จๆทๅๅฏ็ ๆญฃ็กฎ
- ็กฎ่ฎคๆฐๆฎๅบๅทฒๅๅปบ
- ๆฃๆฅ่ทจๅ้ ็ฝฎ (CORS)
- ็กฎ่ฎค API ๆๅกๅทฒๅฏๅจ
- ๆฃๆฅ้ฒ็ซๅข่ฎพ็ฝฎ
- ็กฎ่ฎค WebSocket ๆๅกๅทฒๅฏๅจ (8082)
- ๆฃๆฅ WebSocket URL ๆฏๅฆๆญฃ็กฎ
- ็กฎ่ฎค็ฝ็ป่ฟๆฅๆญฃๅธธ
| ๆจกๅ | ๅฎๆๅบฆ | ็ถๆ |
|---|---|---|
| ็ฎก็ๅๅฐ API | 95% | โ ่ฟ่กๆญฃๅธธ |
| ็ฎก็ๅๅฐๅ็ซฏ | 90% | โ ๅฏ็จ |
| ็จๆท็ซฏ API | 70% | |
| WebSocket ๆๅก | 60% | |
| ๆฐๆฎๅบ่ฎพ่ฎก | 95% | โ ๅฎๆ |
| ๆๆกฃ | 90% | โ ๅฎๅ |
ๆดไฝๅฎๆๅบฆ: ~82%
ๆฌข่ฟๆไบค Issue ๅ Pull Request๏ผ
feat: ๆฐๅ่ฝ
fix: ไฟฎๅค bug
docs: ๆๆกฃๆดๆฐ
style: ไปฃ็ ๆ ผๅผ่ฐๆด
refactor: ้ๆ
test: ๆต่ฏ็ธๅ
ณ
chore: ๆๅปบ/ๅทฅๅ
ท็ธๅ
ณ
MIT License
้กน็ฎๅๅปบ: 2026-01-28 ๆๅๆดๆฐ: 2026-01-28 ็ๆฌ: v1.0.0