BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A full-stack birthday aptitude-test platform: a 3D landing page, per-participant login, a one-question-at-a-time test (17 questions across 4 sections), a locked-until-submit result reveal, and an admin dashboard.README 전문 보기 ↗
A full-stack birthday aptitude-test platform: a 3D landing page, per-participant login, a one-question-at-a-time test (17 questions across 4 sections), a locked-until-submit result reveal, and an admin dashboard.
pg), bcrypt password hashing,
JWT session cookies. This is where the questions, the answer key, and every
participant's session/score live — none of it is ever sent to the browser
except what's needed to render the current question./api), backed by a Postgres database (e.g. the Neon
integration via Vercel's storage marketplace) so results persist reliably
between requests and deploys.A purely static site can't satisfy the spec's own rules: the answer key must never reach the browser, and the admin dashboard must show every participant's result, not just whatever happens to be in one guest's browser storage. So this ships as an Express API + Postgres database that the built React app talks to, with the score always computed server-side.
/api
index.js # Vercel serverless entry point — re-exports the Express app
/server
src/
data/questions.js # the 17 questions, options, and section names — verbatim from the source questionnaire
data/participants.js # the 18 usernames, generated from the guest list
db.js # Postgres pool, schema migration, idempotent seeding
auth.js # JWT session helpers, participant vs admin auth
app.js # the Express app (routes, middleware) — no app.listen
index.js # local/traditional-host entry point: app.listen + serves built client
routes/auth.js POST /api/auth/login, /logout, /admin/login, /admin/logout
routes/test.js GET /api/test/questions (no answers), /status; POST /answer, /submit
routes/admin.js GET /api/admin/results
/client
src/
pages/ Landing, Login, Test, Result, AdminLogin, Admin
components/ BirthdayScene (3D), QuestionCard, ProgressBar, SubmitModal, Confetti
lib/api.ts typed fetch client
/package.json # dependencies for the /api serverless function (Vercel builds from repo root)
/vercel.json build/output config + rewrite so /api/* hits the one function
You need a Postgres database reachable from your machine (a local install, a Docker container, or the same connection string your Vercel project uses).
# 1. Server
cd server
cp .env.example .env # set DATABASE_URL, JWT_SECRET, ADMIN_PASSWORD
npm install
npm run dev # http://localhost:4000 (API only, until the client is built)
# 2. Client (separate terminal)
cd client
npm install
npm run dev # http://localhost:5173, proxies /api to :4000
For a production-style local run, build the client and let the server serve it:
cd client && npm install && npm run build
cd ../server && npm install && npm start # serves the built client + API on :4000
Tables are created and participants are (re-)seeded automatically on first
request — seeding is idempotent (ON CONFLICT DO NOTHING), so redeploying or
restarting the server never wipes anyone's in-progress or completed session.
vercel install neon.
This injects a POSTGRES_URL env var automatically, which the app reads.JWT_SECRET,
ADMIN_USERNAME, ADMIN_PASSWORD, and optionally ALLOW_RETAKE.vercel.json handles the rest: it builds client/ as the static
site and rewrites all /api/* requests to the single /api/index.js
serverless function, which is the same Express app used locally.Fiyin@22.name123 (lowercase name +
123) in server/src/data/participants.js. The list has "Idowu" and
"idowu" twice — since usernames must be unique, the second one became
idowu2123 (displayed as "Idowu 2"). Rename that entry in
participants.js if there's a real distinct second name, then redeploy —
seeding is additive, so existing accounts are untouched./admin/login) uses separate credentials from
.env (ADMIN_USERNAME / ADMIN_PASSWORD), defaulting to
admin / FiyinAdmin@2026 if unset — change this before sharing the link.node -e "console.log(require('./server/src/data/participants').PARTICIPANTS)"
from the repo root.The correct answer for each question is a fixed correctAnswer field in
server/src/data/questions.js — the questionnaire image didn't include a
marked answer key, so I worked through all 17 questions myself (math ones are
deterministic; the verbal/critical-thinking ones use the single
clearly-best option). If any of them don't match your intended key, edit that
file directly.
See server/.env.example:
DATABASE_URL — Postgres connection string (locally, or copy the value
Vercel's Postgres integration provisions).ALLOW_RETAKE=false (default) — one attempt per participant. Set to true
to let participants retake the test.JWT_SECRET — change this before deploying anywhere real.