A private bilingual LeetCode study tracker for importing Chinese problem lists and managing daily review.
- Framework: Next.js 16 (App Router)
- Language: TypeScript (strict)
- Styling: Tailwind CSS v4
- Icons: Lucide React
- Validation: Zod
- Database: PostgreSQL + Prisma 7 (
@prisma/adapter-pg+pg) - Testing: Vitest
Docker runs both the application and PostgreSQL. The first startup builds the application image and applies committed database migrations automatically.
npm startOpen http://localhost:3000. Keep the command running
to see application logs, and press Ctrl+C to stop the foreground processes.
To stop and remove the containers later:
npm run stopDatabase data remains in the pgdata Docker volume across restarts. Startup
does not seed sample data; use docker compose exec app npm run db:seed when
you explicitly want to seed the database.
# Start PostgreSQL
docker compose up -d postgres
# Copy and configure environment
cp .env.example .env
# Edit .env if needed (defaults match docker-compose.yml)
# Install dependencies and generate Prisma client
npm install
# Run database migrations
npx prisma migrate dev
# Seed the database
npx prisma db seed
# Start development server
npm run devMost tests mock @prisma/client and do not require a running database.
npm install
npm run test:runnpm run dev— Start development servernpm start— Build and run the application and PostgreSQL with Dockernpm run start:local— Start an existing local production buildnpm run stop— Stop and remove the Docker containersnpm run build— Production buildnpm run lint— ESLintnpm run test— Vitest watch modenpm run test:run— Vitest single runnpm run db:generate— Generate Prisma clientnpm run db:migrate— Run Prisma migrations (dev)npm run db:deploy— Apply committed Prisma migrations (production)npm run db:seed— Seed database with curated problem lists
No authentication. This project is designed for local/personal use only. Do not expose it to the internet without adding authentication middleware.
app/— Next.js App Router pages and API routescomponents/— React componentslib/— Shared utilities, persistence layer, Zod schemasprisma/— Schema, migrations, seed scriptdesign-system/— Visual design rules and tokens