WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
독일 학생 비자 진행 상황을 실제 신청 데이터로 추적해 대기·처리 추세·예상 일정·결과를 보여준다
Track your German student visa journey with real applicant data — queue movement, processing trends, estimated timelines and outcomes.
라이프스타일TypeScript · CSSGitHub @Study-in-Germany온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A community-driven tracker for Pakistani students following the German national student visa process — built with Next.js, Prisma, and Postgres, deployable free on Vercel.
jose) — no third-party auth vendor requiredPick one (all have free tiers):
Copy the connection string(s) it gives you. If you get both a pooled and a
direct URL, use the pooled one for DATABASE_URL and the direct one for
DIRECT_URL. If you only get one, use it for both.
Copy .env.example to .env and fill in:
DATABASE_URL=...
DIRECT_URL=...
AUTH_SECRET=... # generate with: openssl rand -base64 32
SEED_ADMIN_EMAIL=...
SEED_ADMIN_PASSWORD=... # required, no default: 14+ chars with upper, lower, number and symbol
RESEND_API_KEY= # optional
EMAIL_FROM= # optional
npm install
npx prisma db push # creates all tables in your database
npm run seed # creates your admin login
npm run dev # http://localhost:3000
Log in at /admin/login with the email/password from SEED_ADMIN_EMAIL /
SEED_ADMIN_PASSWORD, then change the password immediately under
Admin → Settings.
Note:
npx prisma generate(run automatically on install) downloads a small database engine binary from Prisma's CDN. This requires normal internet access — it will work on your own machine and on Vercel's build servers, but will fail in network-locked sandboxes.
.env file
(DATABASE_URL, DIRECT_URL, AUTH_SECRET, RESEND_API_KEY,
EMAIL_FROM). You don't need SEED_* unless you plan to re-run the seed
script in Vercel's shell.npm install → prisma generate → next build
automatically.npx prisma db push and npm run seed with your production
DATABASE_URL in .env), orvercel env pull && npx prisma db push && npm run seed.your-project.vercel.app/admin/login and log in.Your site is now live on a free your-project.vercel.app domain. You can add
a custom domain later from the Vercel dashboard (Settings → Domains) at no
extra cost beyond the domain itself.
.env file — it's already git-ignored.AUTH_SECRET should be a long random string, unique to your deployment.app/
page.tsx Home
tracker/ Public tracker (search + list) and per-applicant page
analytics/ Full analytics dashboard
queue-progress/ Queue movement + processing-time analytics
announcements/ Public announcements feed
about/ About + disclaimer
resources/ Community links
submit/ Applicant self-submission form
login/, register/ Applicant login (register redirects to submit)
dashboard/ Applicant self-service area (journey, info, updates)
admin/ Admin panel (login, dashboard, applicants, announcements, settings)
api/ All API routes backing the above
lib/ Shared logic: db client, auth, validation, ETA engine, constants
prisma/schema.prisma Full database schema
prisma/seed.ts Creates the first admin user
This project takes inspiration from the community tracker at
visatracker.waleedingermany.com but does not copy or import its
underlying data — all data here comes from this app's own applicant
submissions and admin entries.
This is an independent, community-run project. It is not affiliated with, endorsed by, or connected to the German Federal Foreign Office or any German consulate. All timeline estimates are unofficial and for general guidance only.
S3_* variables in .env (see .env.example); production refuses to start uploads without them.prisma/migrations holds the baseline (0_init) and the new tables. On a new database run npm run db:migrate. On an existing database created with db push, first run npx prisma migrate resolve --applied 0_init, then npm run db:migrate.npm test (the Postgres test needs TEST_DATABASE_URL)./admin/imports): upload the HRK Hochschulkompass export, enrich with Wikidata logos/IDs, check websites (robots.txt respected), upload programme CSV/XLSX files (template included), and review conflicting deadlines. Jobs are resumable and logged.npm run import:universities -- path/to/export.tsv --wikidata --linkcheck. Re-running updates records, never duplicates them, and never overwrites fields an admin edited.vercel.json calls /api/cron/refresh daily (set CRON_SECRET). It re-checks the oldest-checked websites and expires deadline confirmations older than 150 days.