AnnaSuSu/TechSpar

★ 1,082⑂ 0

一个持续进化的面试训练系统。在线体验地址:https://techspar.cn

About AnnaSuSu/TechSpar

AnnaSuSu/TechSpar is an open-source project on GitHub, mainly written in TypeScript. 一个持续进化的面试训练系统。在线体验地址:https://techspar.cn It currently holds 1,082 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Agent Memory board.

GitHub Repository Details

Repository AnnaSuSu/TechSpar · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/AnnaSuSu/TechSpar/blob/HEAD/TechSpar

把专项训练、简历面试、JD 备面、实时 Copilot 与录音复盘,串成一个持续进化的技术面试闭环。

在线体验 · 下载桌面端 · 快速开始 · English

Release License Status

TechSpar 产品总览

这是什么

市面上的面试工具大多做同一件事:给你生成一堆题,你答完,结束。没有人记得你上次哪道题答崩了,也没有人知道你下周要面的那家公司想听什么。

TechSpar 想做的是另一件事——让每一次练习都算数。专项训练、简历面试、JD 备面、实时 Copilot、录音复盘共用同一套长期画像、知识库、薄弱点和复习调度;每轮结果写回系统,决定下一轮练什么。

适合正在准备技术面试、并且愿意用工具持续记录自己进步的人。

功能闭环

想看实际效果,直接去 在线体验,比截图直观。

快速开始

环境要求

以下环境要求和命令适用于源码开发与自行部署。

源码开发或本机构建先执行:

git clone https://github.com/AnnaSuSu/TechSpar.git
cd TechSpar
bun install --frozen-lockfile
cp .env.example .env

Electron 桌面客户端

可从 GitHub Releases 下载 macOS 与 Windows 安装包,联网登录后使用。以下命令用于从源码构建带有本地后端的桌面应用。

开发模式会同时启动 Vite、Hono 和 Electron:

bun run dev:desktop

构建当前平台的可运行应用目录:

bun run pack:desktop

构建当前平台的安装包/归档文件:

bun run dist:desktop

按目标平台构建:

bun run dist:desktop:mac-arm64 # macOS Apple Silicon:DMG + ZIP
bun run dist:desktop:win-x64   # Windows x64:NSIS 安装包

产物位于 dist/desktop/。当前仓库配置了 macOS DMG/ZIP、Windows NSIS、Linux AppImage/DEB。自行构建的应用自带 Electron 和编译后的 Bun 后端,运行时不需要另外安装 Bun。

Web 本地开发

终端一启动 API:

bun run dev:api

终端二启动 Web:

bun run dev:web

访问 。服务端开发环境的默认登录信息:

admin@techspar.local
admin123

服务端首次登录后请立即在设置页修改默认密码,部署时也必须在 .env 中修改 JWT_SECRET。Electron 桌面版会生成随机的本机凭证并自动进入,不使用上述固定密码。

Docker

docker compose up --build

启动后访问 。

模型与服务配置

自行部署或从源码构建桌面应用时,在“设置”中填写 LLM、Embedding、DashScope、Tavily、OSS 与腾讯云 VPR 密钥。密钥默认按用户隔离保存在本地数据目录;.env 只放启动配置和可选的平台兜底模型。

技术架构

Bun Hono Electron React Docker

| 层 | 技术 | | --- | --- | | API Host | Bun 1.3、Hono 4、@hono/zod-openapi | | Desktop | Electron 43、沙箱 Renderer、受限 Preload、编译后的 Bun sidecar | | Core | 纯 TypeScript 用例、状态机和端口 | | Storage | SQLite、原子 JSON/文件存储 | | Providers | OpenAI-compatible、Transformers.js、DashScope、OSS、Tavily、腾讯云 VPR | | Web | React 19、React Router 7、Vite 8、Tailwind CSS 4 | | Contracts | Zod、OpenAPI 3.1、生成的前端类型 | | Test | Bun Test、OpenAPI 契约对照、Node 兼容性检查 |

项目采用模块化单体和六边形边界:Hono 只负责 HTTP/SSE/WebSocket 映射,业务规则在 packages/core,数据库、文件和供应商实现位于外层适配器。详见 TypeScript 后端架构

apps/api/             Bun + Hono 组合入口与路由
apps/desktop/         Electron 主进程、Preload、sidecar 监督与打包配置
packages/contracts/   OpenAPI 与传输协议
packages/core/        业务用例、状态机、端口
packages/db/          SQLite repositories
packages/platform/    文件、认证、配置与归档适配器
packages/providers/   LLM、Embedding、ASR、OSS、搜索与声纹适配器
frontend/             React Web 客户端
tests-ts/             TypeScript 测试与旧版 OpenAPI 基线

质量检查

bun run check

该命令依次执行 Bun/Node 类型检查、架构边界检查、后端与前端测试、前端 TypeScript/ESLint,以及 API、Web、Electron 主进程和编译 sidecar 构建。OpenAPI 文件和前端类型可通过以下命令重新生成:

bun run gen:api

桌面端还有三条独立验收命令:

bun run smoke:desktop          # Electron + Hono 启动链路
bun run smoke:local-embedding  # 编译后端执行真实 ONNX 本地向量
bun run pack:desktop           # 当前平台完整应用目录

数据与备份

默认数据位于 data/:SQLite 保存会话和任务状态,用户文件位于 data/users/{user_id}/。在“设置 → 数据迁移”中可以:

归档会验证路径、链接、tar 校验和与解压上限;向量索引作为派生数据在导入后重建。

管理员系统归档的恢复是离线运维操作。先把归档放在目标 data/ 之外并执行只读预检:

bun run restore:system -- --archive=/safe/backups/techspar-system.tar.gz --data-dir=/srv/techspar/data

预检通过后停止 TechSpar API、桌面 sidecar 和其他所有可能写入该目录的进程,再显式确认恢复:

bun run restore:system -- --archive=/safe/backups/techspar-system.tar.gz --data-dir=/srv/techspar/data --confirm

恢复会先构建并校验暂存数据,再原子切换目录;原 data/ 会保留为同级、带时间戳的 data.before-system-restore-* 备份目录,不会直接删除。

Electron 使用系统标准的应用数据目录,数据库、用户文件、模型缓存和每次安装随机生成的运行密钥都放在那里;本地 Hono sidecar 只监听 127.0.0.1 的动态端口。

支持与更新节奏

这是一个人在维护的项目,所以把话说在前面:

参与贡献

欢迎提交 Issue 或 PR。开发约定和流程见 CONTRIBUTING.md

旧版本

legacy/python-backend 是迁移前最后一个 Python + FastAPI 版本,固定在提交 73d1a7c,只作为历史归档,不再接收新功能。查看方式见 旧版本分支说明

License

AGPL-3.0。你可以自由使用、修改、自托管;如果你把修改后的版本作为网络服务提供给他人,需要同样开源你的改动。

TechSpar 这个名称和 logo 不随代码授权,请不要用它们命名你的分发版本。

例外:frontend/src/resume/ 的简历编辑与模板代码移植自 Magic Resume,保留该目录内的原始协议与附加条款。

致谢

感谢 LINUX DO 社区,以及 Magic Resume 原作者 @JOYCEQL

GitHub Stars & Activity

1,082Stars
0Forks
0Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars1,082
Forks0
Open issues0
Primary languageTypeScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

thedotmack / claude-mem

TypeScript★ 94,311⑂ 0
2

supermemoryai / supermemory

TypeScript★ 30,665⑂ 0
3

TencentCloud / TencentDB-Agent-Memory

TypeScript★ 27,024⑂ 0
4

MemTensor / MemOS

TypeScript★ 11,478⑂ 0
5

CaviraOSS / LongMemory

TypeScript★ 4,510⑂ 0
6

letta-ai / letta-code

TypeScript★ 3,385⑂ 0
7

Bitterbot-AI / bitterbot-desktop

TypeScript★ 2,459⑂ 0
8

cytostack / openwolf

TypeScript★ 2,352⑂ 0

More AI Rankings