WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Interactive map of upcoming events in the NYC area
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗fomo.nyc is a free, community-built interactive map of upcoming events in the NYC area.
It works by visiting the websites of parks, museums, music venues, etc., identifying any upcoming events, and displaying them on a map. My hope is that this becomes a useful resource for people to find events they are interested in and to engage with their local communities.
The codebase is city-agnostic — NYC is just the default deployment. Every city/region/branding specific (map view, timezone, geography, prompt wording, site name, per-platform crawl behavior) lives in config/<FOMO_CITY>.yaml (default config/nyc.yaml) and gitignored pipeline/sources/ plugins, so you can fork it for your own city by editing config rather than engine code.
src/js/ JavaScript modules (IIFE pattern, loaded in order)src/css/ CSS modules (imported via index.css)src/data/ Event and location JSON data (generated by pipeline)src/api/ PHP API endpointssrc/admin/ PHP admin dashboardsrc/images/ SVG assetssrc/fonts/ Self-hosted MapLibre glyph fontsnpm run build (prod) or npm run dev (dev)public_html/ directorypython scripts/upload_public_html.pymain.py Main entry point - orchestrates the complete workflowcrawler.py Crawls websites using Crawl4AI, stores content in databaseextractor.py Uses Gemini AI to extract structured event data
GEMINI_API_KEY environment variable (set in .env file)processor.py Parses extracted data, enriches with location coordinatesmerger.py Deduplicates events into final events tableexporter.py Generates JSON files for the website (src/data/)uploader.py Uploads data files to FTP serverdb.py Database operations (CRUD for crawl runs, results, events)schema.sql Complete database schemasetup.py Creates empty database tablesmigrate_schema.py Applies schema changes to existing database/database/backups/ Database backup filesThe frontend is built with esbuild:
npm run dev # Dev build + watch (unminified, symlinks, stable filenames)
npm run build # Prod build (minified, content-hashed, full asset copies)
@import chain is resolved and minifiedbuild.js reads config/<FOMO_CITY>.yaml and injects the city config: a window.__CITY__ global (map/timezone) prepended to the JS bundle, plus {{TOKEN}} branding replacement in index.htmldist/ contains the complete deployable output: HTML, JS/CSS bundles, plus copies of data/, images/, fonts/, api/, admin/All data flows through the database (crawl_runs → crawl_results → crawl_events → events):
websites table for due sites, crawl and store in crawl_results.crawled_contentcrawl_results.extracted_contentlocations, store in crawl_eventscrawl_eventscrawl_events into final events tablesrc/data/*.json from events tableThe day-to-day entry point is the /run-pipeline workflow (.claude/commands/run-pipeline.md), which wraps pipeline/main.py with review and fix steps.
npm run build # Build to dist/
python scripts/upload_public_html.py # Upload dist/ to server
📢 Share with your friends
📍 Add events and places you know
🫱🏾🫲🏼 Stay in touch
The project uses a MariaDB/MySQL database to store locations, websites, and crawl data.
New developers should restore from a database backup rather than starting with an empty database:
# 1. Create the database
mysql -u root -e "CREATE DATABASE fomo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"
# 2. Restore from backup
mysql -u root fomo < database/backups/fomo_backup_YYYYMMDD.sql
# Windows (XAMPP)
"C:/xampp/mysql/bin/mysqldump.exe" -u root fomo > database/backups/fomo_backup_YYYYMMDD.sql
# Linux/Mac
mysqldump -u root fomo > database/backups/fomo_backup_YYYYMMDD.sql
If the schema has changed since your backup, run migrations:
python database/migrate_schema.py