Skip to content

End the "Where should we meet?" debate by instantly finding a spot that’s fair, convenient, and loved by everyone. An intelligent meeting point recommendation system.

License

Notifications You must be signed in to change notification settings

JasonRobertDestiny/MeetSpot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeetSpot 🗺️

MeetSpot Logo

Intelligent Meeting Point Recommendation System - Find the Perfect Place for Every Gathering

License: MIT Python 3.11+ FastAPI Build Status

🎯 Live Demo | 📺 Demo Video | English | 简体中文

📱 Screenshots

Main Interface

Main Interface

Multi-Venue Selection

Multi-Venue Selection

Recommendation Results

Recommendation Results

Detailed Information

Detailed Information

🌟 Features

MeetSpot is an intelligent meeting point recommendation system that calculates optimal meeting locations based on multiple participants' geographical positions and recommends nearby venues.

✨ Core Features

  • 🎯 Smart Center Point Calculation: Calculate geometric center based on multiple locations for fairness
  • 🏢 Multi-Scenario Recommendations: Search multiple venue types simultaneously (cafes + restaurants + libraries)
  • 📍 Multi-Location Support: Support 2-10 participant locations
  • 🎨 Intuitive User Interface: Modern responsive design
  • 🚀 Real-time Recommendations: Generate personalized recommendations quickly
  • 📊 Intelligent Ranking: Comprehensive sorting based on ratings, distance, and user requirements

🔥 Latest Optimizations

  • Multi-Scenario Recommendations: Support simultaneous selection of multiple venue types
  • Frontend Multi-Selection: Intuitive venue type selection interface
  • Smart Ranking Algorithm: Scenario matching reward mechanism
  • Performance Monitoring: Complete performance statistics and health checks
  • Error Handling: Robust exception handling mechanism

🚀 Quick Start

Requirements

  • Python 3.11+
  • Amap (Gaode Map) API Key
  • Modern browsers (Chrome, Firefox, Safari, Edge)

Installation

  1. Clone Repository
git clone https://github.com/JasonRobertDestiny/MeetSpot.git
cd MeetSpot
  1. Install Dependencies
pip install -r requirements.txt
  1. Configure API Key
cp config/config.toml.example config/config.toml

Edit config/config.toml and add your Amap API key:

[amap]
api_key = "your_amap_api_key_here"
  1. Start Service
python web_server.py
  1. Access Application Open browser and visit: http://127.0.0.1:8000

📱 Usage

Basic Usage

  1. Input Locations: Add 2-10 participant locations
  2. Select Scenarios: Choose 1-3 venue types (cafes, restaurants, libraries, etc.)
  3. Set Requirements: Add special requirements (convenient parking, quiet environment, etc.)
  4. Get Recommendations: Click search to get intelligent recommendations

Advanced Features

  • Multi-Scenario Combination: Search "cafe restaurant" simultaneously for more options
  • Custom Keywords: Enter special venue types like "escape room"
  • Filter Conditions: Filter by rating, distance, price
  • Special Requirements: Support parking, Wi-Fi, private rooms, etc.

🏗️ Technology Architecture

Backend Stack

  • FastAPI: High-performance web framework
  • Pydantic: Data validation and settings management
  • aiohttp: Async HTTP client
  • Amap API: Geocoding and POI search

Frontend Stack

  • HTML5 + CSS3: Responsive design
  • Vanilla JavaScript: Lightweight interaction
  • Boxicons: Icon library
  • Modern UI Design: Gradients and glass effects

Core Algorithms

  • Geometric Center Calculation: Multi-point centroid algorithm
  • Intelligent Ranking: Multi-factor scoring system
  • Scenario Matching: Keyword matching reward
  • Deduplication Algorithm: Smart deduplication based on name and address

📊 API Documentation

Main Endpoints

  • GET / - Homepage redirect
  • POST /api/find_meetspot - Meeting point recommendation
  • GET /health - Health check
  • GET /workspace/js_src/{filename} - Generated recommendation pages

Request Example

curl -X POST "http://127.0.0.1:8000/api/find_meetspot" \
  -H "Content-Type: application/json" \
  -d '{
    "locations": ["Beijing University", "Tsinghua University"],
    "keywords": "cafe restaurant",
    "user_requirements": "convenient parking"
  }'

Response Example

{
  "success": true,
  "html_url": "/workspace/js_src/place_recommendation_20250624_12345678.html",
  "locations_count": 2,
  "keywords": "cafe restaurant",
  "processing_time": 0.52
}

🧪 Testing

Complete test suite included:

# Run all tests
python test_optimizations.py      # System optimization tests
python test_multi_scenario.py     # Multi-scenario feature tests
python comprehensive_test.py      # Comprehensive feature tests

# Health check
curl http://127.0.0.1:8000/health

📈 Performance Metrics

  • Response Time:

    • Single scenario: 0.3-0.4 seconds
    • Dual scenario: 0.5-0.6 seconds
    • Triple scenario: 0.7-0.8 seconds
  • Support Scale:

    • Locations: 2-10
    • Scenarios: 1-3
    • Concurrent users: 100+

🛣️ Roadmap

v1.1.0 (Planned)

  • User account system
  • History saving
  • Favorites feature
  • Share recommendations

v1.2.0 (Planned)

  • Machine learning recommendations
  • Real-time traffic information
  • Weather data integration
  • Mobile app

v2.0.0 (Long-term)

  • AR navigation
  • Voice interaction
  • Internationalization
  • Enterprise features

🤝 Contributing

We welcome all forms of contributions! Please see CONTRIBUTING.md for details.

📄 License

This project is open source under the MIT License - see LICENSE file for details.

📞 Contact

🙏 Acknowledgments

  • Amap - Providing geocoding and POI search services
  • FastAPI - Excellent web framework
  • Boxicons - Beautiful icon library

If this project helps you, please give it a ⭐ Star!

Made with ❤️ by JasonRobertDestiny

Star History Chart

About

End the "Where should we meet?" debate by instantly finding a spot that’s fair, convenient, and loved by everyone. An intelligent meeting point recommendation system.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published