- Installed Prisma and @prisma/client in backend/ directory - Initialized Prisma with PostgreSQL provider (Prisma 7.x) - Created prisma/schema.prisma with Book and ReadingLog models - Configured prisma.config.ts with DATABASE_URL from environment - Added .gitignore for Prisma-generated files Book model includes: - All required fields (id, title, author, totalPages, coverUrl, deadlineDate, isPrimary, status) - Timestamps (createdAt, updatedAt) - Indexes on deadlineDate and status for query performance - One-to-many relationship with ReadingLog ReadingLog model includes: - All required fields (id, bookId, logDate, currentPage) - Timestamps (createdAt, updatedAt) - Foreign key relationship to Book with cascade delete - Unique constraint on (bookId, logDate) - one entry per book per day - Indexes on bookId and logDate for query performance All acceptance criteria met: ✅ Prisma installed in backend/ ✅ Initialized with PostgreSQL provider ✅ schema.prisma defines Book and ReadingLog models ✅ Appropriate indexes for performance ✅ One-to-many relationship defined ✅ Unique constraint ensures one log entry per book per day Schema validated with npx prisma format 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
30 lines
670 B
JSON
30 lines
670 B
JSON
{
|
|
"name": "backend",
|
|
"version": "1.0.0",
|
|
"description": "Book Reading Tracker - Backend API",
|
|
"main": "src/server.js",
|
|
"scripts": {
|
|
"dev": "nodemon src/server.js",
|
|
"start": "node src/server.js",
|
|
"lint": "eslint .",
|
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"@prisma/client": "^7.1.0",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^17.2.3",
|
|
"express": "^5.2.1",
|
|
"express-validator": "^7.3.1",
|
|
"helmet": "^8.1.0",
|
|
"prisma": "^7.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"eslint": "^9.39.1",
|
|
"globals": "^16.5.0",
|
|
"nodemon": "^3.1.11"
|
|
}
|
|
}
|