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.