{"id":50770464,"url":"https://github.com/miponianyou/nte-flowboard","last_synced_at":"2026-06-11T18:01:01.172Z","repository":{"id":361962125,"uuid":"1255472866","full_name":"MiPoNianYou/NTE-Flowboard","owner":"MiPoNianYou","description":"NTE Flowboard - 每日与每周事项追踪看板","archived":false,"fork":false,"pushed_at":"2026-06-10T10:32:47.000Z","size":5446,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T11:25:38.299Z","etag":null,"topics":["cloudsync","neverness-to-everness","nevernesstoeverness","nte","todolist"],"latest_commit_sha":null,"homepage":"https://miponianyou.github.io/NTE-Flowboard/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MiPoNianYou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T21:42:32.000Z","updated_at":"2026-06-10T10:32:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MiPoNianYou/NTE-Flowboard","commit_stats":null,"previous_names":["miponianyou/nte-flowboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MiPoNianYou/NTE-Flowboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiPoNianYou%2FNTE-Flowboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiPoNianYou%2FNTE-Flowboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiPoNianYou%2FNTE-Flowboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiPoNianYou%2FNTE-Flowboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiPoNianYou","download_url":"https://codeload.github.com/MiPoNianYou/NTE-Flowboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiPoNianYou%2FNTE-Flowboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34211067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudsync","neverness-to-everness","nevernesstoeverness","nte","todolist"],"created_at":"2026-06-11T18:01:00.186Z","updated_at":"2026-06-11T18:01:01.166Z","avatar_url":"https://github.com/MiPoNianYou.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"src/assets/Nanally.png\" width=\"180\" style=\"border-radius: 50%;\" /\u003e\n\n# NTE Flowboard\n\n**每日与每周事项追踪看板**\n\n*多设备云端同步 · 拖拽排序 · 标签分类*\n\n[**在线使用 →**](https://miponianyou.github.io/NTE-Flowboard/)\n\n![License](https://img.shields.io/badge/License-MIT-green)\n![Tests](https://img.shields.io/badge/Tests-535_passing-brightgreen)\n![React](https://img.shields.io/badge/React-19-61DAFB?logo=react\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript\u0026logoColor=white)\n![Vite](https://img.shields.io/badge/Vite-7.3-646CFF?logo=vite\u0026logoColor=white)\n\n\u003c/div\u003e\n\n---\n\n## 功能特性\n\n\u003cdiv align=\"center\"\u003e\n\n| 核心功能 | 说明 |\n|:--------:|:-----|\n| 📋 **每日/每周清单** | 自动按服务器时区重置（含夏令时） |\n| 🎯 **拖拽排序** | 流畅的拖拽体验 |\n| 🏷️ **标签分类** | 10 种颜色标签，按序自动分配 |\n| 🌙 **Halo 暗色主题** | 深色设计系统，三级表面层深度 |\n| 📐 **布局切换** | 单列 / 双列（桌面端） |\n| ☁️ **云端同步** | Supabase Realtime 跨设备实时同步 |\n| 📜 **虚拟滚动** | 超过 50 项自动启用 |\n| 📡 **离线提示** | 断网时显示状态 |\n| ♿ **无障碍支持** | WAI-ARIA 标签、焦点陷阱、键盘导航 |\n| 🧪 **单元测试** | 535 个测试用例覆盖核心逻辑 |\n\n\u003c/div\u003e\n\n---\n\n## 技术栈\n\n\u003cdiv align=\"center\"\u003e\n\n![React](https://img.shields.io/badge/React-19-61DAFB?style=flat\u0026logo=react\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat\u0026logo=typescript\u0026logoColor=white)\n![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.1-06B6D4?style=flat\u0026logo=tailwindcss\u0026logoColor=white)\n![Vite](https://img.shields.io/badge/Vite-7.3-646CFF?style=flat\u0026logo=vite\u0026logoColor=white)\n![Supabase](https://img.shields.io/badge/Supabase-2.107-3FCF8E?style=flat\u0026logo=supabase\u0026logoColor=white)\n![Motion](https://img.shields.io/badge/Motion-12.40-4F4F4F?style=flat\u0026logo=motion\u0026logoColor=white)\n![dnd-kit](https://img.shields.io/badge/dnd--kit-6.3-FF6B6B?style=flat\u0026logoColor=white)\n![Vitest](https://img.shields.io/badge/Vitest-4.1-729B1B?style=flat\u0026logo=vitest\u0026logoColor=white)\n\n\u003c/div\u003e\n\n---\n\n## 快速开始\n\n```bash\n# 克隆项目\ngit clone https://github.com/MiPoNianYou/NTE-Flowboard.git\ncd NTE-Flowboard\n\n# 安装依赖\nnpm install\n\n# 启动开发服务器\nnpm run dev\n\n# 构建生产版本\nnpm run build\n```\n\n---\n\n## 项目结构\n\n```\nsrc/\n├── components/                # UI 组件\n│   ├── base/                  # 基础组件层（11 个）\n│   │   ├── Button             # 按钮（9 种变体）\n│   │   ├── Card               # 卡片容器\n│   │   ├── Input              # 输入框\n│   │   ├── Badge              # 徽章\n│   │   ├── ToggleSwitch       # 开关\n│   │   ├── SettingRow         # 设置行\n│   │   ├── CollapsibleSection # 可折叠区块\n│   │   ├── NavBar             # 导航栏\n│   │   ├── IconBox            # 图标容器\n│   │   ├── StatusMessage      # 状态消息\n│   │   └── ErrorMessage       # 错误消息\n│   ├── ChecklistItemRow/      # 清单项行（拖拽 + 编辑）\n│   │   ├── index.tsx          # 主组件\n│   │   ├── EditForm.tsx       # 编辑表单\n│   │   ├── DesktopActions.tsx # 桌面端操作按钮\n│   │   └── MobileActionBar.tsx# 移动端操作栏\n│   ├── Header                 # 顶部栏（含设置面板）\n│   ├── ChecklistPanel         # 清单面板\n│   ├── SettingsContent        # 设置内容（侧边栏 + 内容区）\n│   ├── CloudSyncSection       # 云同步配置\n│   ├── ProgressCard           # 进度卡片\n│   ├── ProgressRing           # 环形进度条\n│   ├── Counter                # 数字动画组件\n│   ├── TabSwitch              # 标签切换\n│   ├── TagPill                # 标签胶囊\n│   ├── TagInput               # 标签输入\n│   ├── ConfirmDialog          # 确认对话框\n│   ├── EmptyState             # 空状态插画\n│   └── HiddenSection          # 隐藏事项区\n├── hooks/                     # 自定义 Hooks\n│   ├── useChecklist           # 清单数据管理\n│   ├── useSupabaseSync        # 云端同步\n│   ├── useSettings            # 行为设置\n│   ├── useLocalStorageBoolean # 通用 localStorage 状态\n│   ├── usePendingDelete       # 删除确认状态\n│   ├── useTabManagement       # 标签页管理\n│   ├── useLayoutManagement    # 布局管理\n│   ├── useItemAnimations      # 入场 + 退出动画\n│   ├── useNextResetLabel      # 下次重置时间\n│   ├── useSortedItems         # 排序逻辑\n│   └── useAutoMoveCompleted   # 自动移动已完成项\n├── utils/                     # 工具函数\n│   ├── storage.ts             # 本地存储 + 数据验证\n│   ├── supabase.ts            # Supabase 客户端 + RPC\n│   ├── constants.ts           # 常量定义\n│   ├── cn.ts                  # className 合并工具\n│   ├── tagColors.ts           # 标签颜色计算\n│   ├── colors.ts              # 颜色工具 + 渐变\n│   └── styles.ts              # 卡片样式常量\n├── types.ts                   # 共享类型定义\n├── index.css                  # Halo 设计系统 Token\n└── App.tsx                    # 根组件（编排 8 个 Hook）\n```\n\n---\n\n## 开发命令\n\n| 命令 | 说明 |\n|:-----|:-----|\n| `npm run dev` | 启动开发服务器 |\n| `npm run build` | 构建生产版本（含 lint + typecheck） |\n| `npm run test` | 运行单元测试 |\n| `npm run test:watch` | 监听模式运行测试 |\n| `npm run typecheck` | TypeScript 类型检查 |\n| `npm run lint` | ESLint 代码检查 |\n| `npm run lint:fix` | 自动修复 lint 问题 |\n| `npm run format` | Prettier 代码格式化 |\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**License:** MIT\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiponianyou%2Fnte-flowboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiponianyou%2Fnte-flowboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiponianyou%2Fnte-flowboard/lists"}