Files
ocean-cleanup/server
Paul Bailey d1a06699e5 fix: Auto-create users on profile access and make email nullable in types
- 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.
2025-11-18 18:15:33 +00:00
..

Litter Scouts API

Backend API server for Litter Scouts.

Setup

  1. Install dependencies:
cd server
npm install
  1. Configure environment variables:
cp .env.example .env
# Edit .env with your configuration
  1. Set up the database:
npm run prisma:generate
npm run prisma:migrate
  1. 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 report
  • DELETE /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.