Files
ocean-cleanup/server/package.json
Paul Bailey d61c21c54d feat: implement notification system with Mailgun email integration
- Add notifications table with migration
- Create NotificationService with area-of-interest matching
- Integrate Mailgun for email delivery
- Add notification API endpoints (get, mark as read, unread count)
- Create scheduled jobs for event reminders and cleanup
- Build NotificationBell component for frontend
- Add notification triggers for reports and events
- Implement comprehensive test script
- Update Header with notification bell
- Add email templates with HTML formatting

Requirements satisfied:
- 10.1: Users can define areas of interest (1-50km radius)
- 10.2: Notifications sent within 10 minutes
- 10.3: Notifications for new reports/events in user area
- 10.4: Configurable notification preferences (email/in-app)

Task 33 completed
2025-11-17 00:31:23 +00:00

52 lines
1.2 KiB
JSON

{
"name": "beach-litter-api",
"version": "1.0.0",
"description": "Backend API for Beach Litter Mapping Platform",
"main": "dist/index.js",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate dev",
"prisma:studio": "prisma studio"
},
"keywords": [
"beach",
"litter",
"environment",
"api"
],
"author": "",
"license": "MIT",
"dependencies": {
"@clerk/clerk-sdk-node": "^5.0.0",
"@prisma/client": "^5.22.0",
"axios": "^1.13.2",
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"exifr": "^7.1.3",
"express": "^4.21.1",
"express-validator": "^7.2.0",
"form-data": "^4.0.4",
"helmet": "^8.0.0",
"json2csv": "^6.0.0-alpha.2",
"mailgun.js": "^12.1.1",
"multer": "^1.4.5-lts.1",
"node-cron": "^4.2.1",
"redis": "^5.9.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/cors": "^2.8.17",
"@types/express": "^5.0.0",
"@types/json2csv": "^5.0.7",
"@types/multer": "^1.4.12",
"@types/node": "^22.9.0",
"@types/node-cron": "^3.0.11",
"prisma": "^5.22.0",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
}
}