- Update getUserProfile, getUserReports, getUserEvents, and getUserActivity to call findOrCreateUser for Clerk IDs - This ensures users are automatically created in database when accessing their profile for the first time - Update User type to have email as 'string | null' instead of 'string' - Fixes 404 errors when new users try to access their profile This resolves the issue where new users signing up without email would get 404 errors when accessing their profile page.
Litter Scouts API
Backend API server for Litter Scouts.
Setup
- Install dependencies:
cd server
npm install
- Configure environment variables:
cp .env.example .env
# Edit .env with your configuration
- Set up the database:
npm run prisma:generate
npm run prisma:migrate
- Start the development server:
npm run dev
The API will be available at http://localhost:3000
API Endpoints
Reports
POST /api/reports/upload- Upload a photo (requires auth)POST /api/reports- Create a new report (requires auth)GET /api/reports- Get all reports (with optional filters)GET /api/reports/:id- Get a single reportDELETE /api/reports/:id- Delete a report (requires auth, owner only)
Health Check
GET /health- Server health status
Environment Variables
See .env.example for required environment variables.
Database
The API uses MySQL 8.0+ with Prisma ORM. Connection details are configured in the .env file.
Authentication
Authentication is handled by Clerk. Protected endpoints require a Bearer token in the Authorization header.