TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Liam-Moriarty/Ajaia.ai
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A lightweight, Google Docs-inspired document editor built for Ajaia's Full Stack Product Engineer take-home assessment. Users sign up, create and format rich-text documents, import .txt/.md/.docx files as new documents, and share documents with other users by email.
See docs/PDD.md (product design) and docs/TDD.md (technical design) for the full design rationale, and docs/architecture-note.md / docs/ai-workflow-note.md for the condensed writeups required by the assessment.查看完整 README ↗A lightweight, Google Docs-inspired document editor built for Ajaia's Full Stack Product Engineer take-home assessment. Users sign up, create and format rich-text documents, import .txt/.md/.docx files as new documents, and share documents with other users by email.
See docs/PDD.md (product design) and docs/TDD.md (technical design) for the full design rationale, and docs/architecture-note.md / docs/ai-workflow-note.md for the condensed writeups required by the assessment.
https://ajaia-ai-web.vercel.app/
No test account is required — sign-up works with any email/password (see "Local setup" below for disabling email confirmation), or a reviewer can create two accounts to exercise the sharing flow.
apps/web), Tiptap for rich text, React Router for navigation.apps/web).Prerequisites: Node 18+, pnpm 8 (corepack enable will pick up the pinned version).
pnpm install
Create apps/web/.env (see apps/web/.env.example) with your Supabase project's credentials:
VITE_SUPABASE_URL=https://<your-project>.supabase.co
VITE_SUPABASE_ANON_KEY=<your-anon-key>
The schema (profiles, documents, document_shares tables + RLS policies) lives in supabase/migrations/0001_init.sql. Apply it to your Supabase project via the SQL editor in the Supabase dashboard, or supabase db push if you have the CLI linked.
In the Supabase dashboard, under Authentication → Providers → Email, turn Confirm email off. Supabase's built-in email sender has a low rate limit (a few emails/hour), and sign-up will otherwise fail with "email rate limit exceeded" after a couple of test accounts. With confirmation off, signUp() logs the user in immediately with no email sent.
Run the app:
pnpm --filter web dev
pnpm --filter web test # unit tests (Vitest)
pnpm --filter web typecheck
pnpm --filter web lint
The automated tests cover apps/web/src/lib/parseImport.ts — the .txt/.md → Tiptap-JSON conversion, which is the highest-risk hand-written logic in the app (DOCX extraction delegates to mammoth and isn't separately unit tested) — plus apps/web/src/lib/formatUpdatedAt.ts's relative-timestamp formatting.
Only .txt, .md, and .docx files can be imported as new documents (.docx via mammoth, parsed client-side). Any other file type (e.g. .doc, .pdf, .rtf, .odt, images) is rejected before upload with an explicit error message, both in the file picker's accept filter and in a validation check on the selected file. The original uploaded file is not retained — only its parsed content is saved as a new document.
apps/web/src/lib/parseImport.ts), with a matching pre-check in the UI (apps/web/src/pages/DocumentListPage.tsx) that surfaces a specific error message before any upload happens. Parsing failures (corrupt/unreadable files) are caught and shown as a user-facing error rather than failing silently.required fields and a minimum password length; Supabase auth errors (e.g. wrong password, existing account) are caught and rendered inline on the form.Share a document with another registered user by entering their email in the editor's "Share" dialog. Shared documents appear under "Shared with me" on the document list, visibly distinct from "My documents". There are no permission tiers — anyone a document is shared with can view and edit it.
Real-time multi-cursor collaboration, view-only vs. edit permission tiers, comments/suggestion mode, version history, and PDF export are all explicitly deprioritized — see docs/TDD.md for the full list and reasoning.