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 →