A Pokémon Go-style city exploration web app that gamifies discovering local businesses and neighborhoods.
- Frontend: React + TypeScript + Vite
- Maps: Google Maps JavaScript API (2D) with Three.js overlay (stretch goal)
- Backend: Express.js + TypeScript
- Database: PostgreSQL with PostGIS for geospatial queries
- Auth: Mock JWT (AWS Cognito ready)
- AI: Google Gemini for quest generation and insights
wandr/
├── client/ # React frontend
├── server/ # Express.js backend
├── .env.example # Environment variables template
└── README.md
- Node.js 18+
- PostgreSQL with PostGIS extension
- Google Maps API key
- (Optional) Google Gemini API key
-
Copy the environment template:
cp .env.example .env
-
Fill in your API keys and database credentials in
.env
cd server
npm install
npm run migrate # Run database migrations
npm run seed # Seed demo data
npm run dev # Start development servercd client
npm install
npm run dev # Start Vite dev server- 🗺️ Interactive map with business pins
- 📍 Check-in at locations for points
- 🏆 Capture neighborhoods by visiting locations
- 🎯 Complete quests and challenges
- 🎁 Redeem rewards at businesses
- 👥 Social feed with friends
- 📊 Leaderboards and achievements
- 📈 Analytics and visitor insights
- 🎉 Create promotions and challenges
- ⚡ Boost visibility with paid features
POST /api/auth/register- Register new userPOST /api/auth/login- LoginPOST /api/auth/logout- LogoutGET /api/auth/me- Current user
GET /api/businesses- Nearby businesses (PostGIS)GET /api/businesses/:id- Business detailsGET /api/zones- Zones in viewport
POST /api/checkins- Create check-inGET /api/checkins/history- User's check-in history
GET /api/feed- Activity feedPOST /api/feed/:id/like- Like a postPOST /api/feed/:id/comment- Comment on a post
| Action | Points |
|---|---|
| Visit new location | 10 |
| Repeat visit | 5 |
| With friend bonus | +5 |
| Off-peak promotion | +10 |
| Complete challenge | 15-50 |
| Complete sidequest | 25-100 |
| Capture neighborhood | 50 |
| Daily streak | 5 × day |
MIT