- schema: MathUnit enum (common/prob_stat/calculus/geometry) - User: focusUnits(Json), bojHandle(VarChar32) - ProblemSet: mathUnit optional + unique(year,examType,subjectName,mathUnit) - migration: phase10_math_units_and_ps - scripts: wipe-non-math (dry/apply), kice-import refactor (math only, 30문항을 공통22 + 확통/미적/기하 8씩으로 분할 → 2년×4 = 8 ProblemSet) - parsing strategy/ocr-fix/seed/me/study-logs: 비수학 참조 전면 제거 - data/kice, backend/uploads/problems: 비수학 폴더 삭제 - Plans.md: Phase 10 계획 확정 Phase 10A DoD 통과 — prisma validate/format OK, nest build OK, kice-import dry-run 2년 각 46문항 확인, wipe dry-run 8 set/260 problems 확인.
74 lines
2.3 KiB
JSON
74 lines
2.3 KiB
JSON
{
|
|
"name": "reloop-backend",
|
|
"version": "0.2.0",
|
|
"description": "ReLoop Backend API (v2 — persona forgetting curve)",
|
|
"private": true,
|
|
"license": "UNLICENSED",
|
|
"scripts": {
|
|
"build": "nest build",
|
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"start": "nest start",
|
|
"dev": "nest start --watch",
|
|
"start:debug": "nest start --debug --watch",
|
|
"start:prod": "node dist/main",
|
|
"postinstall": "prisma generate",
|
|
"lint": "eslint \"{src,test}/**/*.ts\" --fix",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"prisma:generate": "prisma generate",
|
|
"prisma:migrate": "prisma migrate dev",
|
|
"prisma:reset": "prisma migrate reset --force",
|
|
"prisma:deploy": "prisma migrate deploy",
|
|
"prisma:seed": "ts-node prisma/seed.ts",
|
|
"cli:kice-import": "ts-node scripts/kice-import.ts",
|
|
"cli:ocr-fix": "ts-node scripts/ocr-fix.ts",
|
|
"cli:wipe-non-math": "ts-node scripts/wipe-non-math.ts"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^10.0.0",
|
|
"@nestjs/config": "^4.0.3",
|
|
"@nestjs/core": "^10.0.0",
|
|
"@nestjs/jwt": "^11.0.2",
|
|
"@nestjs/passport": "^11.0.5",
|
|
"@nestjs/platform-express": "^10.0.0",
|
|
"@nestjs/throttler": "^6.5.0",
|
|
"@prisma/client": "^5.0.0",
|
|
"bcrypt": "^6.0.0",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.15.1",
|
|
"express": "^4.22.1",
|
|
"helmet": "^8.1.0",
|
|
"multer": "^2.1.1",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"reflect-metadata": "^0.1.13",
|
|
"rxjs": "^7.8.1"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.0.0",
|
|
"@nestjs/schematics": "^10.0.0",
|
|
"@nestjs/testing": "^10.0.0",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/express": "^4.17.17",
|
|
"@types/node": "^20.3.1",
|
|
"@types/passport-jwt": "^4.0.1",
|
|
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
"@typescript-eslint/parser": "^6.0.0",
|
|
"eslint": "^8.42.0",
|
|
"eslint-config-prettier": "^9.0.0",
|
|
"eslint-plugin-prettier": "^5.0.0",
|
|
"prettier": "^3.0.0",
|
|
"prisma": "^5.0.0",
|
|
"source-map-support": "^0.5.21",
|
|
"ts-loader": "^9.4.3",
|
|
"ts-node": "^10.9.1",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"typescript": "^5.1.3",
|
|
"vitest": "^3.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
},
|
|
"packageManager": "pnpm@9.12.0"
|
|
}
|