BREAKING: Full rewrite from static HTML to production-grade stack. Features: - React 18 + Vite + Tailwind CSS (mobile-first) - Express + Prisma + PostgreSQL backend - JWT authentication with role-based access - Weekly Mon-Sun timesheets with auto-save - Multiple homeowner entries per day - Submit → Approve/Reject workflow - Server-side PDF generation - SMTP email integration - Admin panel with reporting & filters - Dark mode (system-aware) - Docker Compose one-command deploy - Non-root containers, Helmet, bcrypt, Zod validation
36 lines
959 B
JSON
36 lines
959 B
JSON
{
|
|
"name": "coastal-timesheet-backend",
|
|
"version": "2.0.0",
|
|
"description": "Coastal Contracting Timesheet API",
|
|
"main": "src/index.js",
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js",
|
|
"db:migrate": "npx prisma migrate deploy",
|
|
"db:push": "npx prisma db push",
|
|
"db:seed": "node prisma/seed.js",
|
|
"db:generate": "npx prisma generate",
|
|
"db:reset": "npx prisma migrate reset --force",
|
|
"setup": "npx prisma generate && npx prisma db push && node prisma/seed.js"
|
|
},
|
|
"dependencies": {
|
|
"@prisma/client": "^6.9.0",
|
|
"@react-pdf/renderer": "^4.3.0",
|
|
"bcryptjs": "^3.0.2",
|
|
"cors": "^2.8.5",
|
|
"express": "^5.1.0",
|
|
"express-rate-limit": "^7.5.0",
|
|
"helmet": "^8.1.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"nodemailer": "^6.10.1",
|
|
"react": "^18.3.1",
|
|
"zod": "^3.24.4"
|
|
},
|
|
"devDependencies": {
|
|
"prisma": "^6.9.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
}
|
|
}
|