shiping
면접·시험 도우미, AI가 실시간으로 풀이 아이디어를 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Attendance for the night seder program and the daf yomi shiur. One user, one phone, meant to be used standing in the room with one thumb.
Some of the men are paid. Tick Gets paid on a person and give him a usual monthly amount; then under More → Payments add a period (usually a Jewish month — the name fills itself in from the date) and record what each man actually got. A payment can be more or less than the usual amount, and a month can be settled in more than one go.
Next.js (App Router) and TypeScript, Tailwind for styling, Supabase for the database and sign-in, deployed on Vercel.
Do these in order. Steps 1 to 5 get it running on your laptop; 6 to 9 put it on your phone.
Go to supabase.com, sign in, and create a new project. Give it a name ("night-seder" is fine), pick a region near New York, and save the database password somewhere — you won't need it for this app, but you will want it eventually. The project takes a minute or two to finish setting up.
In your new project, open SQL Editor in the left sidebar and click
New query. Open supabase/001_schema.sql in this
repo, copy the whole file, paste it in, and press Run.
That creates every table, turns on row level security, and inserts the single settings row. You should see "Success. No rows returned."
If a later change is ever needed, it goes in a new numbered file
(supabase/002_....sql) for you to paste the same way. Nothing in this app
alters the live database on its own.
Still in Supabase:
That second step matters: the whole security model is "there is exactly one account, and anybody signed in is you". With sign-ups open, anyone could make themselves an account and read everything.
.env.localIn Supabase go to Project Settings → API keys. You need two values:
https://abcdefgh.supabase.coIn this folder, copy .env.example to .env.local and fill both in:
cp .env.example .env.local
NEXT_PUBLIC_SUPABASE_URL=https://abcdefgh.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
Never put the service role key anywhere. It bypasses row level security. The anon key is safe to ship to the browser — that's what it's for.
npm install
npm run dev
Open http://localhost:3000, sign in with the email and password from step 3. You'll land on Tonight with nothing in it. Add a zman under More → Zmanim, add people under More → People, pair them up on the zman's page, and Tonight fills in.
Make an empty repository on GitHub (no README, no .gitignore — this folder already has both), then:
git remote add origin https://github.com/YOUR-USERNAME/night-seder.git
git push -u origin main
Go to vercel.com, sign in with GitHub, and Add New →
Project. Import the night-seder repository.
Before you click Deploy, open Environment Variables and add the same two values from step 4:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYThen deploy. You'll get a URL like https://night-seder.vercel.app.
On the phone, open the Vercel URL in Safari (not Chrome — only Safari can install a home-screen app). Tap the Share button, scroll down, tap Add to Home Screen, and tap Add.
Open it from the home-screen icon and sign in again. This is not a bug: a home-screen app has its own storage, separate from Safari, so the session you created in Safari isn't there. Once you've signed in inside the app, it stays signed in.
A free Supabase project pauses itself after about a week with no database activity. If you come back from a long break and the app can't load anything, go to the Supabase dashboard and click Restore project. It comes back with all your data. Using the app at all counts as activity, so during a zman this will never happen.
npm run dev # http://localhost:3000
npm run build # production build, fails on any type error
npm test # unit tests for the date and attendance rules
npm run lint
The rules that are easy to get wrong live in lib/ and are unit-tested:
lib/dates.ts — calendar dates in America/New_York. The night program starts
at 8:30 pm Eastern, which is already tomorrow in UTC, so "today" is computed
in New York and calendar dates never pass through a timestamp.lib/attendance.ts — derived schedules, which sessions count as held, what
each person was expected at, and missed streaks.lib/contact.ts — who lands in "Needs attention" and why.lib/money.ts — amounts as whole cents. Money is never a float, so a ledger
can't drift a cent at a time.Run npm test after touching any of them.