A REST API backend server that powers the sports matchmaking platform. It handles user authentication, profiles, calendar integration, match scheduling, and social features.
The server provides API endpoints for:
- Authentication: User signup, login, and token verification
- User Profiles: Create, update, and manage user profiles with location data
- Calendar Integration: Connect Google Calendar, fetch schedules, and manage availability
- Matches: Create, retrieve, update, and delete scheduled sports matches
- Fields: Manage sports field/venue information
- Posts: Social feed posts with likes, auto-generated from completed matches
- Push Notifications: Register devices, send notifications, and handle question prompts
/api/auth- Authentication endpoints/api/profile- User profile management/api/calendar- Google Calendar integration and availability/api/matches- Match scheduling and management/api/fields- Sports field/venue data/api/posts- Social feed posts/api/push- Push notification services
# Development mode
npm run dev
# Production mode
npm run build
npm startThe server runs on port 3000 by default (configurable via PORT environment variable).
- Node.js
- MongoDB database
- Firebase Admin SDK (for push notifications)
- Google OAuth credentials (for calendar integration)
MONGODB_URI: MongoDB connection stringPORT: Server port (default: 3000)JWT_SECRET: Secret key for JWT tokensFIREBASE_PROJECT_ID: Firebase project IDGOOGLE_CLIENT_ID: Google OAuth client IDGOOGLE_CLIENT_SECRET: Google OAuth client secret