TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Friendly planner for kids activities
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Three independent weekly planners for parents — Activities, Meals,
and School — each with its own printable, real-PDF calendar. They share
only your kid list; nothing else overlaps between them.README 전문 보기 ↗Three independent weekly planners for parents — Activities, Meals, and School — each with its own printable, real-PDF calendar. They share only your kid list; nothing else overlaps between them.
Every planner can print (really: download) a real vector PDF — the text is selectable, searchable, and copyable, not a screenshot — with per-print controls for which days/kids/events to include, a font-size adjustment, and its own notes field.
Local-first, no accounts. Nothing is sent to or stored on a server: your
data lives entirely in your browser (localStorage). There's no login, no
database, and no server-side data of any kind to worry about. Each of the
three planner pages has its own Save / Load / Clear — Save downloads a
self-contained JSON file (your kids + that planner's own data + its own
notes), so it works as a backup or to move that planner to another
browser/device even if the destination has no kids set up yet; Load merges
kids in by id and replaces that planner's own data; Clear wipes only that
planner's own data, leaving your kids and the other two planners untouched.
src/lib/pdf-export.ts and
src/lib/meals-pdf-export.ts), not a screenshot of the pagenpm install
npm run dev
Open http://localhost:3000. That's it — no database, no environment variables, no seed data.
/kids) — name, color, and an optional family
name shown on printouts. Everything else assigns activities/meals/
subjects to one or more kids, so this is the one page all three planners
depend on./planner) — add recurring activities (with an optional
validity window, e.g. a school year running September to the next
September) and one-off events, then navigate between weeks. An activity
can be assigned to more than one kid (e.g. siblings sharing a class) — it
shows up under each assigned kid. Click any entry on the calendar to edit
or delete it; for a recurring activity spanning multiple days, you'll be
asked whether the change applies to just that occurrence or the whole
series./meals) — add a lunch or dinner for a specific date. Leave
the kids unchecked for a meal the whole family shares, or check specific
kids to scope it just to them./school) — add a subject with the day(s) of the week and
time slot it occurs, per kid. This is a fixed weekly template, not tied
to any specific date — no "this week vs. next week" to think about.Everything lives in one JSON object (PlanData, see
src/lib/plan-store.tsx) persisted to localStorage:
{ id, name, color }. Shared by all three planners.validFrom/validTo window, includeInTypicalWeek, and a
seriesId shared across every day-of-week row from the same "add
recurring activity" submission (so editing/deleting the whole series
updates all of them at once). Can be shared by more than one kid via
kidIds.kidIds. Also how "edit just this occurrence" of a recurring activity
is represented (the original day gets skipped via excludeDates, and a
one-off exception is created for that date).{ date, mealType: "lunch" | "dinner", title, color, kidIds }.
Dated, not recurring. Empty kidIds means the whole family.{ title, color, kidIds, daysOfWeek, startTime, endTime }. One record holds every day it occurs on directly (not a
separate row per day) — there's no per-occurrence exception concept here,
since the timetable is always just the recurring template.{ planner, meals, school }, one independent free-text field
per planner's print view.Each planner's own Save/Load file is a smaller, self-contained shape (see
PlannerExport/MealsExport/SchoolExport in src/lib/plan-store.tsx) —
family name + kids + that planner's own data + its own notes — rather than
the full PlanData above.
| Script | Purpose |
|---|---|
npm run dev | Start the dev server |
npm run build | Production build |
npm run lint | ESLint |
npm run test | Vitest in watch mode |
npm run test:run | Vitest, single run (used in CI) |
.github/workflows/ci.yml runs lint, type-check, unit tests, and a
production build on every push and pull request..github/workflows/claude-code-review.yml posts automated review comments
on pull requests via the Claude Code GitHub
Action — review-only,
it cannot push commits (its job has contents: read). Requires an
ANTHROPIC_API_KEY repo secret.Open a pull request against main. CI runs lint, type-check, tests, and a
build; the Claude Code review workflow will also leave comments on the diff.