JetBrains-Research / JetBrains-Research/Python-Solution-Preference

[006] Family-Friendly Yinzer Venue Finder (MVP)

Đang mở
#6 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
2
Fork
0
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

## Overview

Service for discovering family-friendly venues in Pittsburgh. No login required. Read-only data from `assets/data.md` (22 venues).

Build this as a Python backend service with no UI; expose the functionality below through an HTTP API.

**Core Rules:**
- Status: "Open" or "Closed". Any non-Open value in data → Closed.
- Preferences persist until changed or cleared.
- Location fallback: 40.4406° N, 79.9959° W. Indicate when the default location is being used.
- Callers may supply their own coordinates instead of the fallback.

**Distance Formula:**
```
Distance (miles) = √((Δlat × 69)² + (Δlng × 54.6)²)
```

**Distance Display:** < 0.6 mi → feet rounded to nearest 50 ft; ≥ 0.6 mi → miles with 1 decimal.

**Travel Times:** Driving at 22 mph, walking at 3 mph. Both rounded up to whole minutes.

---

## Categories

Two groups: "Food & Dining" | "Places to Visit".

| Food & Dining | Places to Visit |
|---------------|-----------------|
| General Restaurants | Playgrounds & Parks |
| Western Restaurants | Museums & Experience Centers |
| Cafes | Festivals & Events |
| Kids Cafes | Indoor Playgrounds |

Selecting a category → search results for that category.

---

## Preferences

Four sections (multi-select, none selected by default):

| Section | Options |
|---------|---------|
| Cuisine Types | Italian, Mexican, Asian, American, Mediterranean, Steakhouse, Seafood, Vegetarian, Bakery/Dessert |
| Dietary Options | Vegetarian options, Vegan options, Gluten-free, Dairy-free, Nut-free, Organic, Healthy options, Kids menu |
| Facilities | Parking, Play area, High chairs, Kids utensils, Nursing room, Changing station, Spacious seating, Outdoor space |
| Keywords | Highly rated, Good value, Great atmosphere, Romantic, Group friendly, Full bar, Scenic view, Quiet, Clean, Upscale, Casual, Family gathering, Child-friendly, Kids welcome, Entertainment, Activities |

**Keyword Matching Rules:**

| Preference | Matches If |
|------------|------------|
| Highly rated | rating ≥ 4.5 |
| Good value | keyword "good-value" OR price $ or $$ |
| Great atmosphere | keyword in {lively, cozy, beautiful, vibrant, welcoming, elegant, sophisticated, fun} |
| Romantic | keyword "romantic" |
| Group friendly | facility "Spacious seating" OR keyword "family-gatherings" |
| Full bar | facility "Full bar" |
| Scenic view | facility "Scenic view" |
| Quiet | keyword "quiet" |
| Clean | keyword "clean" |
| Upscale | price $$$ or $$$$ OR keyword "upscale" or "elegant" |
| Casual | price $ or $$ OR keyword "casual" |
| Family gathering | keyword "family-gatherings" |
| Child-friendly / Kids welcome | keyword "family-friendly" OR facility in {Play area, High chairs, Kids utensils, Changing station} |
| Entertainment | facility "Entertainment" OR keyword "entertaining" |
| Activities | facility "Play area" OR keyword in {activities, interactive, hands-on} |

Matching is case-insensitive. Hyphens and spaces equivalent (e.g., "good value" matches "good-value").

**Save:** Persists preferences. Preferences can also be cleared (reset all).

---

## Search Results

**Filtering Logic:**
- Venue must match selected category.
- For each preference section with ≥1 selection: venue must match ≥1 selected value from that section.
- Sections with no selections don't filter.

**Sorting:** Distance ascending. Ties: name A–Z.

**Each result includes:** Name, category, address, distance, rating + review count, price range, driving time, walking time, phone, status.

---

## Venue Detail

Individual venues can be retrieved with all venue info plus:

**Keywords:** "What people say" — up to 8 hashtag badges from venue's Keywords field. Format: lowercase with "#" prefix (e.g., "#family-friendly"). Omitted if no keywords.

---
**Provided starting files:** see [`006-venue-finder/assets/`](https://github.com/JetBrains-Research/Python-Solution-Preference/tree/main/006-venue-finder/assets) — these were in the agent's working directory when it solved the task.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Start by inspecting 006-venue-finder/assets/ and the referenced assets/data.md to understand the 22 venue records. Then determine the HTTP API entry points and how preferences should persist. Done means a Python backend with no UI implements the specified filtering, matching, sorting, distance, travel-time, detail, and preference behaviors.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api, backend
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.