Location-based quest verification app with anti-cheat mechanisms. Users complete quests by capturing photos at specific locations, with backend verification ensuring authenticity.
- API: RESTful endpoints for quests, proofs, and leaderboard
- Database: PostgreSQL with PostGIS for geospatial queries
- Verification: GPS geofence validation, timestamp drift detection
- Storage: S3 integration for proof images
- Anti-cheat: Device attestation, location validation
- Domain: Pure Swift types and use cases
- Data: Repositories, API clients, and services
- Features: MVVM with SwiftUI views
- Services: Location tracking, camera capture, attestation
- Quest Discovery: Find active quests near user location
- Photo Capture: Take photos within geofenced areas
- Verification: Backend validates GPS, timestamps, and image authenticity
- Scoring: Points awarded for successful quest completion
- Leaderboard: Weekly rankings with user context
- GPS geofence validation
- Timestamp drift detection
- Device attestation requirements
- In-app photo capture only (no gallery imports)
- Vision-based landmark verification (placeholder)
cd backend
pip install -r requirements.txt
cp .env.example .env
# Configure database and AWS credentials
alembic upgrade head
uvicorn main:app --reloadcd ios
open WalkQuest.xcodeproj
# Build and run in XcodeGET /v1/quests/today- Get active quests near location
POST /v1/proofs- Create proof record and get S3 upload URLPOST /v1/proofs/{id}/submit- Trigger verificationGET /v1/proofs/{id}/verification- Poll verification status
GET /v1/leaderboard- Get rankings with user context
users- User accountsquests- Quest definitions with geofencesproofs- User proof submissionsverifications- Verification results and scores
The current implementation includes:
- Mock data for rapid development
- Basic verification logic
- Core UI flows for all features
- Dependency injection setup
- Real API integration
- Enhanced verification pipeline (VPS, Vision AI)
- Push notifications
- Offline support
- Analytics and monitoring
cd backend
pytestcd ios
swift test- Follow Clean Architecture principles
- Use SwiftUI for iOS development
- Implement proper error handling
- Add unit tests for business logic
- Follow the established naming conventions
MIT License - see LICENSE file for details.