TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 →