记录生活之美,留住珍贵时刻 —— 1Monent
Music tag web 作者的 NAS相册管理软件
1Moment/
├── moment/                 # Django后端项目
│   ├── db.sqlite3         # SQLite数据库文件
│   ├── manage.py          # Django项目管理脚本
│   ├── photos/            # 照片管理应用
│   │   ├── models.py      # 数据模型
│   │   ├── api.py        # API接口
│   │   └── migrations/    # 数据库迁移文件
│   └── moment/            # Django项目配置目录
│
└── web/                   # Vue3前端项目
    ├── public/            # 静态资源目录
    ├── src/              # 源代码目录
    │   ├── components/   # Vue组件
    │   │   ├── PhotoUpload.vue    # 照片上传组件
    │   │   └── PhotoGrid.vue      # 照片网格展示组件
    │   └── assets/       # 静态资源
    │       └── main.css  # 全局样式(包含Tailwind配置)
    ├── index.html        # 入口HTML文件
    ├── package.json      # 项目依赖配置
    ├── tailwind.config.js # Tailwind CSS配置
    └── vite.config.ts    # Vite构建工具配置
- Django 4.2.19(REST API框架)
 - django-ninja 1.3.0(OpenAPI文档生成)
 - Pillow 10.3.0(图像处理)
 - SQLite(开发环境数据库)
 - python-magic 0.4.27(文件类型校验)
 
- Vue 3.4.21(组合式API)
 - TypeScript 5.3.3
 - Vite 5.2.0(构建工具)
 - Tailwind CSS 3.4.3(原子化CSS)
 - DaisyUI 4.7.2(UI组件库)
 - Heroicons 2.1.1(图标库)
 - Axios 1.6.7(HTTP客户端)
 - vue-router 4.3.0(路由管理)
 
- 
照片管理
- POST /api/photos/upload - 上传照片
 - GET /api/photos - 获取照片列表
 - GET /api/photos/{photo_id} - 获取照片详情
 
 - 
相册管理
- POST /api/albums - 创建相册
 - GET /api/albums - 获取相册列表
 - POST /api/photos/{photo_id}/albums/{album_id} - 添加照片到相册
 
 - 
标签管理
- POST /api/tags - 创建标签
 - GET /api/tags - 获取标签列表
 - POST /api/photos/{photo_id}/tags/{tag_name} - 为照片添加标签
 
 
- 
PhotoUpload组件
- 支持拖拽上传
 - 支持多文件上传
 - 实时上传进度显示
 - 支持取消上传
 
 - 
样式框架
- 使用Tailwind CSS实现响应式布局
 - 使用DaisyUI组件库美化界面
 - 自定义组件样式类
.card-photo - 照片卡片样式 .photo-grid - 响应式照片网格布局 .btn-primary - 主要按钮样式
 
 
- 
✅ 后端框架搭建
- 完成数据模型设计(Photo、Album、Tag)
 - 实现基础API接口
- 照片上传与管理 ✅ POST /api/photos/upload 文件上传接口 ✅ GET /api/photos 分页获取照片列表 ✅ GET /api/photos/{photo_id} 照片元数据获取
 - 相册创建与管理 ✅ POST /api/albums 相册创建 ✅ GET /api/albums 相册列表查询
 - 标签管理 ✅ POST /api/tags 标签创建 ✅ GET /api/tags 标签列表查询
 
 - 配置媒体文件处理(支持JPG/PNG/HEIC格式)
 - 自动生成三种尺寸缩略图(128px/512px/1024px)
 
 - 
✅ 前端框架搭建
- 集成Vue3 + TypeScript开发环境
 - 配置Tailwind CSS + DaisyUI组件库
 - 实现功能路由配置
- 首页展示最新照片 (/)
 - 带分类筛选的照片墙 (/photos)
 - 支持拖拽的文件上传页 (/upload)
 - 关于页面包含技术栈说明 (/about)
 
 
 - 
✅ 已完成功能
- 照片上传组件 ✅ 拖拽上传/文件选择器双模式 ✅ 多文件并发上传(最大10个) ✅ 实时进度条显示(基于axios拦截器) ✅ 上传成功自动刷新照片列表
 - 照片网格展示组件 ✅ 响应式布局(2-4列自适应) ✅ 懒加载图片(Intersection Observer) ✅ 点击查看大图(Modal弹窗)
 - 前后端API对接 ✅ 配置Vite代理解决跨域 ✅ 封装axios请求模块 ✅ 全局错误处理拦截器
 
 - 
⏳ 待开发
- 用户认证系统
 - 照片编辑功能
 - 照片搜索功能
 - 照片EXIF信息展示
 - 照片地理位置展示
 - 批量操作功能
 - 分享功能
 
 
docker build -f compose/django/Dockerfilearm -t xhongc/photozen:latest .
docker-compose -f ./compose/django/compose.yml up
