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 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Log your wins as they happen. Turn them into a tailored, one-page resume in under a minute.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Log your wins as they happen. Turn them into a tailored, one-page resume in under a minute.
Try it live at rolediary.com →
You shipped a feature that cut load times in half. You led the migration nobody else wanted to touch. You onboarded three new hires.
Eighteen months later you're updating your resume, staring at a blank bullet point, and you can't remember any of it.
Role Diary fixes that. It's a work diary built for resumes. Jot down what you did while it's fresh, and when the right job comes along, Role Diary reads your diary and the job posting, then writes a resume that matches the role.
1. Add your roles 2. Log your wins 3. Generate
┌──────────────────┐ ┌──────────────────────┐ ┌───────────────────────┐
│ Software Intern │ │ Oct 14 · Cut CI time │ │ Paste a job posting │
│ Acme Corp │ ───▶ │ from 12 to 4 min by │ ───▶ │ → get a tailored, │
│ Jun 2025 – Now │ │ caching Docker layers│ │ one-page .docx │
└──────────────────┘ └──────────────────────┘ └───────────────────────┘
Role Diary is a single Next.js 16 app (App Router). Server components and route handlers talk to PostgreSQL through Prisma, and resume generation calls the Claude API with a strict JSON schema.
flowchart LR
U[Browser] -->|React 19 UI| N[Next.js 16 App Router]
subgraph Server
N --> A[Auth.js v5<br/>JWT sessions, bcrypt]
N --> R[Route handlers<br/>/api/*]
R --> RL[Rate limiter<br/>Postgres-backed]
R --> G[Generation<br/>lib/generation.ts]
G --> T[Template engine<br/>lib/templates → docx]
end
A --> DB[(PostgreSQL<br/>via Prisma 7)]
R --> DB
RL --> DB
G -->|structured JSON output| C[Claude API]
R -->|verification & reset emails| E[Resend]
T -->|.docx download| U
POST /api/generate checks your session, validates the input (with size caps), and makes sure your email is verified.enum, so the model can only use categories the template knows how to render.fitToBudget trims any bullets over the template's limit, starting from the least relevant ones.render() merges in your name, contact details, and education, then builds a .docx with the docx library. The file streams straight back to your browser.User ──┬── Experience ── Contribution (diary entry)
├── Education
├── VerificationToken (hashed)
└── PasswordResetToken (hashed)
RateLimit (fixed-window counters keyed by IP / user)
Deleting a user cascades to everything they own.
INSERT … ON CONFLICT upsert.AUTH_URL in production, never from the request's Host header, so a forged host can't point reset links at someone else's site.app/
api/ Route handlers: auth, account, experiences, contributions, generate
dashboard/ Signed-in app: diary, experiences, generate, account
components/ UI, onboarding flow, account settings
lib/
generation.ts Claude prompt + JSON schema
templates/ Resume templates (docx renderers + page budgets)
rateLimit.ts Postgres-backed rate limiting
aiPrompt.ts "Bring your own AI" export prompt
diaryExport.ts Full data export
prisma/ Schema and migrations
auth.ts Auth.js configuration
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router), React 19, TypeScript |
| Styling | Tailwind CSS 4 |
| Auth | Auth.js (NextAuth v5), bcryptjs |
| Database | PostgreSQL, Prisma 7 with the pg driver adapter |
| AI | Anthropic Claude API with structured outputs |
| Documents | docx |
| Resend |
Prerequisites: Node.js 20+, a PostgreSQL database, and an Anthropic API key.
git clone https://github.com/mido4499/rolediary.git
cd resumeresolve
npm install # also generates the Prisma client
cp .env.example .env # then fill in the values below
npm run db:migrate # apply migrations to your database
npm run dev # http://localhost:3000
| Variable | Purpose |
|---|---|
DATABASE_URL | Postgres connection string |
AUTH_SECRET | Signs session cookies. Generate one with npx auth secret |
AUTH_URL | Public site address (required in production), e.g. https://rolediary.com |
ANTHROPIC_API_KEY | Used for resume generation |
RESEND_API_KEY | Sends verification and reset emails. Optional locally: without it, the links are printed to the console |
EMAIL_FROM | Sender address on a domain verified in Resend |
Templates live in lib/templates/. A template is an object with:
skillCategories: the skill groups it renders, in order ("Others" is added automatically)budget: how many bullets, and how many characters per bullet, fit on one pagerender(data): returns a docx DocumentRegister it in lib/templates/index.ts and it appears in the generate form.
Issues and pull requests are welcome. If you're planning a larger change, open an issue first so we can talk it through.
MIT © Ahmed Shaheen
Stop forgetting your best work. Start your diary →