https://github.com/abouvel/quest
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: abouvel
- Language: Python
- Default Branch: main
- Homepage: https://quest-murex.vercel.app
- Size: 89.7 MB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
EXPLR - Location-Based Quest Generation App
EXPLR is a full-stack web application that generates personalized real-world quests based on user interests, location, weather, and quest history using Google's Agent Development Kit (ADK). It combines AI-powered activity generation with social features to help users explore their surroundings and share experiences with friends.
TL;DR
EXPLR helps users discover new places and experiences by generating personalized quests using AI, location data, and weather. Users complete quests by submitting photos and track their progress through a social feed and leaderboard. Built with Next.js, FastAPI, Supabase, and Google Maps.
Project Links
- Live Demo: quest-production-a5ff.up.railway.app
- Devpost: devpost.com/software/explr-mlcpig
What This Project Does
- Personalized quest generation using multi-agent AI workflows
- Quest suggestions factor in user interests, real-time weather, and location
- Interactive quest map with Google Maps pinning and location validation
- Social feed to share completed quests with friends
- Leaderboard tracking user activity and streaks
Multi-Agent Quest Generation Pipeline
- Summarizer Agent – Analyzes user interests and quest history
- Weather-Time Agent – Uses coordinates and weather API to suggest viable activities
- Search Agent – Finds nearby places that fit the activity
- Reformatter Agent – Finalizes quest object and metadata
Tech Stack
Frontend: - Next.js 15.2.4 (App Router) - Tailwind CSS, shadcn/ui, Radix UI - Supabase Auth - Google Maps API
Backend: - FastAPI (Python 3.11) - Google ADK (multi-agent) - Supabase (PostgreSQL) - Weather API
DevOps: - Docker - Railway (deployment)
Quick Start
Frontend
bash
cd app/
npm install
npm run dev
Visit: http://localhost:3000
Backend
bash
pip install -r requirements.txt
uvicorn lib.fastapi_server:app --host 0.0.0.0 --port 8000 --reload
Visit: http://localhost:8000
Full Stack with Docker
bash
docker-compose up --build
Sample Quest Output
json
{
"final_quest": {
"title": "Visit Local Art Museum",
"description": "Philadelphia Museum of Art: See world-class exhibits...",
"locationName": "Philadelphia Museum of Art",
"address": "2600 Benjamin Franklin Pkwy, Philadelphia, PA 19130",
"coords": { "lat": 39.9656, "lng": -75.1809 },
"validated": true,
"location": { "name": "...", "rating": 4.5, "placeId": "..." }
}
}
API Reference
POST /quests
Generates a new quest for a user
GET /admin
Health check for backend / DB status
Docs available at: - Swagger: http://localhost:8000/docs - OpenAPI: http://localhost:8000/openapi.json
Development Notes
- Use TypeScript and functional components in frontend
- Backend agents follow a consistent four-step pipeline
- Quests are stored as validated JSON objects
- Add CORS middleware for frontend-backend integration
Troubleshooting
| Problem | Solution | |------------------------|-----------------------------------| | Ports 3000/8000 taken | Free ports or change config | | .env missing vars | Define all required keys | | CORS errors | Add proper middleware in FastAPI | | Map not rendering | Enable Google Maps billing and key |
License
MIT License.
Owner
- Login: abouvel
- Kind: user
- Repositories: 1
- Profile: https://github.com/abouvel
GitHub Events
Total
- Watch event: 1
- Member event: 1
- Push event: 38
- Create event: 3
Last Year
- Watch event: 1
- Member event: 1
- Push event: 38
- Create event: 3