← Back to list

poker-near-me
by Smarter-Poker
Smarter-Poker-World-Hub
⭐ 0🍴 0📅 Jan 26, 2026
SKILL.md
name: Poker Near Me description: Location-based poker room discovery and live game tracking
Poker Near Me Skill
Overview
Help users find live poker games near them using geolocation and a comprehensive venue database.
Database Schema
CREATE TABLE poker_venues (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
address TEXT,
city TEXT,
state TEXT,
country TEXT,
latitude DECIMAL(10, 8),
longitude DECIMAL(11, 8),
phone TEXT,
website TEXT,
hours JSONB, -- {"mon": "10:00-02:00", ...}
games_offered TEXT[], -- ['NLH', 'PLO', 'Mixed']
stakes_available TEXT[], -- ['1/2', '2/5', '5/10']
has_tournaments BOOLEAN DEFAULT TRUE,
rating DECIMAL(2, 1),
review_count INTEGER DEFAULT 0,
image_url TEXT,
is_verified BOOLEAN DEFAULT FALSE
);
CREATE TABLE live_games (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
venue_id UUID REFERENCES poker_venues(id),
game_type TEXT,
stakes TEXT,
seats_available INTEGER,
waiting_list INTEGER,
reported_at TIMESTAMPTZ DEFAULT NOW(),
reported_by UUID REFERENCES auth.users(id)
);
-- PostGIS for location queries
CREATE EXTENSION IF NOT EXISTS postgis;
ALTER TABLE poker_venues ADD COLUMN location GEOGRAPHY(POINT, 4326);
UPDATE poker_venues SET location = ST_MakePoint(longitude, latitude);
Nearby Search
async function findNearbyPokerRooms(lat, lng, radiusMiles = 50) {
const radiusMeters = radiusMiles * 1609.34;
const { data } = await supabase.rpc('find_nearby_venues', {
lat,
lng,
radius: radiusMeters
});
return data;
}
// SQL Function
CREATE OR REPLACE FUNCTION find_nearby_venues(lat FLOAT, lng FLOAT, radius FLOAT)
RETURNS TABLE (
id UUID,
name TEXT,
address TEXT,
distance_miles FLOAT,
games_offered TEXT[],
stakes_available TEXT[]
) AS $$
BEGIN
RETURN QUERY
SELECT
pv.id,
pv.name,
pv.address,
ST_Distance(pv.location, ST_MakePoint(lng, lat)::geography) / 1609.34 as distance_miles,
pv.games_offered,
pv.stakes_available
FROM poker_venues pv
WHERE ST_DWithin(pv.location, ST_MakePoint(lng, lat)::geography, radius)
ORDER BY distance_miles;
END;
$$ LANGUAGE plpgsql;
Live Game Reporting
async function reportLiveGame(venueId, userId, gameInfo) {
await supabase.from('live_games').insert({
venue_id: venueId,
game_type: gameInfo.gameType,
stakes: gameInfo.stakes,
seats_available: gameInfo.seats,
waiting_list: gameInfo.waitlist,
reported_by: userId
});
}
Map Integration
import { GoogleMap, Marker, InfoWindow } from '@react-google-maps/api';
function PokerMap({ venues, center }) {
const [selected, setSelected] = useState(null);
return (
<GoogleMap
center={center}
zoom={10}
mapContainerStyle={{ width: '100%', height: '400px' }}
>
{venues.map(venue => (
<Marker
key={venue.id}
position={{ lat: venue.latitude, lng: venue.longitude }}
onClick={() => setSelected(venue)}
icon="/icons/poker-chip-marker.png"
/>
))}
{selected && (
<InfoWindow
position={{ lat: selected.latitude, lng: selected.longitude }}
onCloseClick={() => setSelected(null)}
>
<VenueCard venue={selected} />
</InfoWindow>
)}
</GoogleMap>
);
}
Components
PokerNearMe.jsx- Main page with map + listVenueCard.jsx- Venue summaryVenueDetail.jsx- Full venue pageLiveGamesFeed.jsx- Real-time game reportsReportGameModal.jsx- Submit game infoFilterPanel.jsx- Filter by stakes/game type
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon