Commit Graph
23 Commits
Author SHA1 Message Date
bwstudio f0b07bd854 fix: 分类筛选改为单选(手机端操作优化) 2026-06-10 19:46:53 +08:00
bwstudio e203305bac fix: 修复移动端副导航栏未隐藏的问题 2026-06-10 08:24:47 +08:00
bwstudio c55d883524 feat(web): 优化前台移动端适配
- 添加响应式 CSS 变量断点系统
- 移动端(<768px):单列布局,汉堡菜单
- 平板(768-1200px):显示副导航
- 桌面(1200px+):完整三栏布局
- 主页网格使用 auto-fill 自适应列数
- 详情页按钮垂直堆叠显示
- 添加移动端抽屉式分类导航
2026-06-10 07:43:59 +08:00
bwstudio 595394fcb7 feat: 前后台静态资源路径冲突修复 + 用户管理功能
- 修改 admin/vite.config.js 添加 base: '/admin/' 解决静态资源路径问题
- 修复后台 index.html 资源引用从 /assets/ → /admin/assets/
- 更新优化器默认 API 地址为服务器地址
- 添加友链管理相关代码
- 修复多处分类管理页面
2026-06-10 07:30:49 +08:00
bwstudioandClaude Opus 4.8 aecf1f1f15 feat: add user role system and public joke submission API
- Add AdminUser role field (admin/submitter)
- User management in admin panel
- Public joke submission API (no auth required)
- Document submission methods for external workers

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 12:48:35 +08:00
bwstudio ceed63fcb0 fix: resolve 10 code review issues
High priority:
- Fix concurrent race condition for view_count/like_count (atomic update)
- Add route request ID tracking to prevent race conditions
- Filter get_joke by status=approved (no pending content leak)
- Add error feedback for like button

Performance:
- Optimize random joke query (avoid full table sort)
- Limit page_size max to 100 (DoS prevention)

Medium:
- Add localStorage quota error handling
- Handle empty AI response gracefully
- Fix generate content title extraction

Low:
- Add rejected_jokes to stats API
- Update dashboard to show rejected count
2026-06-02 20:35:08 +08:00
bwstudio 0b43973236 feat(admin): convert sidebar to multi-level menu structure 2026-06-02 20:17:25 +08:00
bwstudio 12426d8478 docs: add /api/generate to API docs 2026-06-02 20:04:00 +08:00
bwstudio bec6f50182 feat(web): add AI joke generator page with favorites 2026-06-02 20:03:37 +08:00
bwstudio 69670eb402 feat(web): add AI generate button to header nav 2026-06-02 20:01:50 +08:00
bwstudio a233cab970 feat(web): add /generate route 2026-06-02 20:01:17 +08:00
bwstudio 93c12edefc feat(web): add generateJoke API function 2026-06-02 20:00:57 +08:00
bwstudio f28c413351 feat(api): add joke generate endpoint with AI 2026-06-02 20:00:41 +08:00
bwstudio 0892e6aa04 feat(api): add GenerateRequest/GenerateResponse schemas 2026-06-02 19:56:35 +08:00
bwstudio 4651781bc3 fix(api): use bcrypt directly instead of passlib for compatibility 2026-05-21 22:18:36 +08:00
bwstudio 7f51d200f1 fix: move admin and web to correct locations 2026-05-21 21:45:31 +08:00
bwstudio 89fa43d5fa feat(admin): add Vue3 admin frontend 2026-05-21 21:34:09 +08:00
bwstudio 621a239af5 feat(api): add database init script 2026-05-21 21:11:37 +08:00
bwstudioandClaude Opus 4.7 c3a8e3e311 feat(api): implement FastAPI routes with JWT authentication
- jokes.py: Public joke listing, detail, and random endpoints
- categories.py: Type and crowd listing endpoints
- auth.py: Login endpoint with JWT token generation
- admin.py: Full CRUD for jokes, types, crowds with JWT protection
- Fix request body schemas to use Create DTOs instead of Response models

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:02:59 +08:00
bwstudioandClaude Opus 4.7 d59474f0a6 fix(api): export base schema classes from __init__.py
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 20:48:58 +08:00
bwstudio 29e06517cb feat(api): add Pydantic schemas 2026-05-21 20:45:41 +08:00
bwstudio 16baff934a feat(api): add database models 2026-05-21 20:41:45 +08:00
bwstudio 57245cc288 feat(api): project initialization 2026-05-21 20:39:14 +08:00