docs: 更新 README 反映最新功能與技術棧 #20

Merged
a620906209 merged 1 commits from docs/update-readme into master 2026-05-28 19:18:18 +00:00
Showing only changes of commit 8d1ea49abc - Show all commits
+47 -5
View File
@@ -1,6 +1,6 @@
# CFDive Platform # CFDive Platform
潛水課程媒合平台 — 連結潛水教練與學員,提供課程瀏覽、線上預約、評價與通知等完整服務。 潛水課程媒合平台 — 連結潛水教練與學員,提供課程瀏覽、線上預約、即時訊息、評價與通知等完整服務。
--- ---
@@ -10,13 +10,15 @@
- 註冊 / 登入(Email + Google OAuth - 註冊 / 登入(Email + Google OAuth
- 瀏覽、搜尋、篩選潛水課程 - 瀏覽、搜尋、篩選潛水課程
- 查看課程時段並送出預約 - 查看課程時段並送出預約
- 與教練即時訊息(文字 + 圖片,含已讀回執)
- 對完成的課程留下評價(支援匿名、有幫助投票) - 對完成的課程留下評價(支援匿名、有幫助投票)
- 站內通知(Email + Polling - 站內通知(Bell Icon 即時更新 + 瀏覽器推播
**教練(Provider** **教練(Provider**
- 課程 CRUD(含封面 + 相簿圖片上傳) - 課程 CRUD(含封面 + 相簿圖片上傳)
- 課程時段管理 - 課程時段管理
- 預約管理(確認 / 拒絕 / 完成 / 取消) - 預約管理(確認 / 拒絕 / 完成 / 取消)
- 與學員即時訊息
**管理員(Admin** **管理員(Admin**
- 平台統計數據(會員數、教練數、課程數) - 平台統計數據(會員數、教練數、課程數)
@@ -30,12 +32,15 @@
| 層級 | 技術 | | 層級 | 技術 |
|------|------| |------|------|
| 後端 | PHP 8.x / Laravel 11 | | 後端 | PHP 8.x / Laravel 11 |
| 前端 | Vue 3 | | 前端 | Vue 3 + Vite + Tailwind CSS |
| 資料庫 | MySQL 8.0 | | 資料庫 | MySQL 8.0 |
| 快取 | Redispredis| | 快取 | Redis |
| 即時通訊 | Laravel ReverbWebSocket`wss://ws.hank-space.com`|
| 認證 | Laravel Sanctum + Google OAuth | | 認證 | Laravel Sanctum + Google OAuth |
| 容器 | Docker / Docker Compose | | 容器 | Docker / Docker Compose |
| API 文件 | Swagger UIl5-swagger| | API 文件 | Swagger UIl5-swagger|
| 錯誤監控 | Sentry |
| CI/CD | Gitea Actions(自動部署至 VPS|
--- ---
@@ -44,6 +49,43 @@
共 73 個端點,涵蓋: 共 73 個端點,涵蓋:
- 認證(Email + Google OAuth - 認證(Email + Google OAuth
- 公開課程查詢 - 公開課程查詢
- 會員預約 / 評價 / 通知 - 會員預約 / 訊息 / 評價 / 通知
- 教練課程 / 時段 / 預約管理 - 教練課程 / 時段 / 預約管理
- 管理員後台 - 管理員後台
---
## 健康檢查
```
GET /health
```
回傳 DB、Redis、Cache 狀態,供 UptimeRobot 監控使用。全部正常回 200,任一異常回 503。
---
## 本地開發
**啟動**
```bash
docker compose up -d
```
| 服務 | URL |
|------|-----|
| API / 前端 | http://localhost:8080 |
| phpMyAdmin | http://localhost:8081 |
| Mailpit | http://localhost:8025 |
| Reverb WebSocket | ws://localhost:8085 |
**環境設定**
複製 `.env.example``.env`,填入以下必要值:
```env
REVERB_APP_KEY= # 32 字元隨機字串
REVERB_APP_SECRET= # 32 字元隨機字串
SENTRY_LARAVEL_DSN= # Sentry DSN(留空則停用)
```