# Keyboard Tracker：桌面活动图表与报告

Company: Webanion
Service: 应用开发
Period: 2021-07 - 2021-09
Tech: React.js, Electron.js, TypeScript, ReCharts.js, Redux
Canonical: https://webanion.com/zh/portfolio/keyboard-tracker-desktop-activity-charts-and-reports

一款适用于 Linux、Windows 和 macOS 的安静桌面应用，统计键盘和鼠标的使用情况，绘制成图表并导出报告，用五周时间为 Ja Turna 打造。它只统计按键次数而不记录任何人输入的内容，可以查看一天到全部历史的图表，面对数月的数据也依然流畅，任何表格都能下载为经理可以分享的 PDF，还能把全部历史备份到一个文件，以便迁移到新电脑。Electron、React、TypeScript 和 Redux，同一套代码库。

## 完整故事

安静运行的统计工具，面对数月数据依然流畅的图表，以及管理者可以直接分享的报告。

### 无人看得见的活动

<p>团队负责人能看到完成的任务，却看不到背后的工作日：一台机器用了多久，某一周是否比平时轻松，正常的规律是什么样子。网页工具看不到桌面，而能看到桌面的追踪软件又笨重、侵扰性强，数据也难以读懂。</p><p>这个需求来自 Webanion 的本地客户 <a href="/portfolio/clients/ja-turna">Ja Turna</a>：一款适用于 Linux、Windows 和 macOS 的桌面应用，安静运行，只统计按键次数而不记录任何人输入的内容，并把这些活动转化为可以据此采取行动的数字和图表。</p>

### 一眼看清今天

<p>应用打开即显示今天的数据：机器已经运行了多久，鼠标的点击和滚动次数，以及被按下的各个按键，每一项都附有次数、日均次数和占总数的比例。它在后台记录，在人们工作时不需要任何操作，想看的时候随时都在。</p>

### 从一天到整个使用周期

<p>同一个视图可以从一天切换到一周、一个月、一年，直至自安装以来的全部时间，并显示每个时段的运行时长。搜索框可以在全部历史中查找任意按键，因此关于某个时段的问题几秒钟就能得到答案，无需导出数据。</p>

### 数月数据依然流畅的图表

<p>活动数据可以用面积图、雷达图或组合图呈现，针对键盘或鼠标，按一天、一周或一个月展示，还可以把多天的数据叠加在一起进行比较。桌面分析应用往往在积累数月数据后变慢，而这款应用始终保持流畅。</p>

### 可以直接交给别人的报告

<p>任何表格都可以下载为 PDF，管理者无需让任何人访问这台机器或这款应用，就能分享一份清晰的摘要。图中的报告是应用根据其全周期数据表真实生成的，列出每个按键的次数、日均次数和占总数的比例，因此纸面上的数字与屏幕上的数字完全一致。</p>

### 换新机器，不丢历史记录

<p>全部历史记录可以备份为一个文件，并在新电脑上或重装系统后恢复；恢复会替换现有数据，因此在此之前会给出明确的警告。人们会更换笔记本电脑，而记录他们工作方式的数据也会随之迁移。</p>

### 一套代码，三个操作系统，五周

<p>应用基于 Electron、React、TypeScript 和 Redux 构建，用 Recharts 实现可视化，由一套代码发布到 Linux、Windows 和 macOS，并在五周内交付。桌面开发是一门独立的学问，有自己的打包方式、权限要求和性能限制，而这款应用对这三方面都处理得当。</p><p>用 Ja Turna 的话说，成果是“一个无缝的跨平台解决方案，在 Windows、Linux 和 MacOS 上都运行得完美无缺”，因此无论一个人在哪台机器上工作，都由同一个工具安静地记录、清晰地汇报。</p>
