← 返回作品 个人应用

Tophoo Life — 个人生活与知识管理

Tophoo Life — 个人生活与知识管理

项目背景

个人日常需要管理网址收藏、笔记与日记,散落在不同 App 中。Tophoo Life 把网址导航、Markdown 笔记、日历日记和用户管理集中在一个轻量 Web 界面中,通过登录账号实现数据隔离。

当前处于测试阶段:登录页不开放自助注册,测试账号由管理员创建和分发。

功能一览

模块 当前能力
用户认证 登录、退出登录、修改昵称与手机号、JWT 访问令牌
用户管理 管理员专属;搜索、分页、新增、编辑、启用/禁用、删除普通用户
网址导航 分类、常用网址、关键词搜索、分类和网址上移/下移排序
我的笔记 多笔记模块切换、独立分类树、Markdown 编辑/预览、表格渲染、MD/PDF 导出
我的日记 月历浏览、已记录日期高亮、详情阅读、独立沉浸式新增和修改页面

界面与使用说明

用户与权限

  • 每个用户只能访问自己的网址、笔记与日记数据;
  • 普通用户可维护自己的内容和个人资料;
  • 管理员拥有普通用户全部能力,并可进入「用户管理」;管理员可管理账号,但不会直接读取其他用户的私有内容;
  • 管理员账号不可删除;当前管理员不可禁用自己。

网址导航

  • 顶部「管理模式」开关控制编辑操作;
  • 管理模式开启后可新增分类、原地修改分类名称、增删网址、上移/下移调整顺序;
  • 搜索框直接以「搜索结果」列出所有匹配网址,不再按分类重复展示。

我的笔记

  • 一个用户可创建多个独立笔记模块;顶部标签栏一键切换,分类树与笔记内容随模块同步;
  • 左侧资源管理器风格树状目录:管理分类开关、一键展开/收缩、原地改名、新增子分类、同级排序;
  • 右侧「管理笔记」独立控制新建、修改、删除与排序;
  • 笔记以原始 Markdown 保存,支持「编辑/预览」切换;预览支持标题、粗体、链接、列表、待办、引用、代码块与标准表格;
  • 选中分类可导出该分类内容为 .md.pdf

我的日记

  • 首页月历视图,‹ / › 切换月份;写过日记的日期高亮,点击进入详情阅读页;
  • 每位用户每天只能保存一篇日记,同一天再次记录请修改已有日记;
  • 新增、修改、查看均使用独立大页面,便于沉浸式书写与阅读。

技术栈

  • 后端:FastAPI、SQLAlchemy 2.x、Pydantic
  • 数据库:MySQL 5.7+ / 8.0+;未配置时可使用 SQLite 本地体验
  • 前端:Jinja2、原生 JavaScript、CSS
  • 导出:Markdown、ReportLab PDF
  • 测试:pytest

设计亮点

  • 数据隔离:所有业务数据关联用户 ID,后端基于当前登录账号限定读写范围,防止跨用户访问;
  • 表命名约定:单数表名(userwebsitenotebooknotediary),字段带表名前缀(user_idwebsite_name);
  • 启动建表Base.metadata.create_all() 创建不存在的表;正式环境建议接入 Alembic 迁移。

状态与 Roadmap

  • 当前状态:测试阶段,账号由管理员分发;
  • Roadmap:Alembic 数据库迁移、自助注册、全文搜索与标签体系、移动端适配。

个人自研小工具,欢迎交流:联系我

← 返回作品