尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Fun project
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Every off-meal-plan food option around Temple University's main campus, on one map.
Live site: tueats.co
Food trucks are a big part of eating at Temple, but the only official directory is a prose page with an embedded Google My Map. It has no list view, no hours, no cuisine info, and it doesn't work well on a phone. Restaurants and cafes are scattered across Google and Yelp, with nothing scoped to campus.
TuEats puts all of it in one mobile-first place: an interactive campus map, search and filters, opening hours, and ratings and reviews from students.
America/New_York), so public pages can stay static and fast.| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router), React 19, TypeScript (strict) |
| Styling | Tailwind CSS 4, Framer Motion |
| Maps | MapLibre GL JS + OpenFreeMap vector tiles (no API key needed) |
| Database | PostgreSQL on Supabase, accessed with Drizzle ORM |
| Auth | Supabase Auth: Google OAuth for members, email/password for admins |
| Validation | Zod 4 |
| Storage | Vercel Blob (venue photos) |
| Hosting | Vercel, with preview deploys on every pull request |
| Testing | Vitest (unit), Playwright (end-to-end) |
| CI | GitHub Actions: typecheck, lint, format, tests, build |
TuEats is a single Next.js app with no separate backend service.
Browser ──► Next.js server components (reads, static/ISR + tag caching)
└─► Server actions (writes) ──► validate (Zod) ──► authorize ──► rate-limit ──► Drizzle ──► Postgres
│
revalidateTag("venues") ◄┘
Design decisions:
src/lib/db/queries/ imports the database client. The Supabase JS client is used for authentication only.venue.type. Tables, routes (/eat/[slug]), and components never name a specific venue type, so restaurants, cafes, and vending machines can be added without a migration.venues, venue:{slug}) and refreshed exactly when an admin or member write changes them. There are no timers or cron jobs.role = "admin" on the user's profile row, which can only be set directly in the database.src/
app/ Routes: public map, /eat/[slug], /account, /about, /admin
actions/ Server actions (the only way data is written)
components/ UI, grouped by feature (map, venues, reviews, admin, …)
lib/ Business logic: hours, ratings, validation, rate limiting
db/queries/ All database reads and writes (Drizzle)
drizzle/ SQL migrations
scripts/ Data seeding and enrichment (KML import, venue enrichment)
tests/e2e/ Playwright tests
Specs/ Software design documents (scope, architecture, security, deployment)
Context/ Design system, decision log, progress log, backlog
docs/ Design notes and screenshots
Prerequisites: Node.js 22+, pnpm 10, and a Supabase project.
git clone https://github.com/abislam66/fun-proj.git
cd fun-proj
pnpm install
cp .env.example .env.local # then fill in your Supabase values
pnpm db:migrate # apply database migrations
pnpm seed:kml # optional: seed venues from TuEats.kml
pnpm dev # http://localhost:3000
| Command | What it does |
|---|---|
pnpm dev | Start the dev server |
pnpm build | Production build |
pnpm typecheck | TypeScript type check |
pnpm lint | ESLint |
pnpm format:check | Prettier check |
pnpm test | Unit tests (Vitest) |
pnpm test:e2e | End-to-end tests (Playwright) |
pnpm db:generate | Generate a migration from the schema |
pnpm db:migrate | Apply migrations |
main through pull requests. main is protected, and CI must pass before merging.main deploys to production.Context/decisions.md, and the full design docs live in Specs/.TuEats is an independent student project and is not affiliated with or endorsed by Temple University.