Skip to content

Repository files navigation

LogIt Icon

LogIt

Log the events you live.
A mobile-first logbook for sports games, concerts, movies, and more.

Platform React Native Expo Supabase Vercel


What Is LogIt?

People track the events they attend in Notes, spreadsheets, photos, or memory. Those methods are fragmented and hard to search. LogIt replaces all of that with a clean, structured logbook that feels like a personal collection.

Think Letterboxd, but for live events — starting with sports.


Features

Feature Description
🔍 Game Search Find any game from a structured sports database powered by ESPN
One-Tap Logging Log that you were there, with optional notes, rating, photos, and companions
📖 Personal Logbook Browse and filter your full history by sport, team, venue, or date
📊 Event Detail Rich game context — teams, score, venue, date, box score
📡 Feed See your activity and discover what others are logging
🔒 Privacy Controls Each log can be public, friends-only, or private
🏟️ Venue Enrichment Auto-populated venue photos and coordinates via Wikimedia + Nominatim
🏈 Multi-Sport NBA, NFL, NHL, MLB, WNBA + 6 NCAA sports (Football, Basketball M/W, Hockey M/W, Baseball)
🛠️ Admin Portal Static HTML dashboard for viewing venue and game data with filters

Tech Stack

Layer Technology
Framework React Native with Expo (SDK 54)
Navigation Expo Router (file-based routing)
Database Supabase (Postgres + Row Level Security)
Auth Firebase Authentication (Google + Apple Sign-In)
API / Cron Vercel (serverless functions + scheduled cron jobs)
Sports Data ESPN API (NBA, NFL, NHL, MLB, WNBA + 6 NCAA leagues)
Venue Media Nominatim (geocoding) + Wikimedia Commons (images)
Language TypeScript

Architecture

├── app/                        # Expo Router screens (file-based routing)
│   ├── (auth)/                 # Auth screens (login, onboarding)
│   ├── (tabs)/                 # Main tab screens
│   │   ├── feed.tsx            # Activity feed
│   │   ├── logbook.tsx         # Personal logbook with filters/sort
│   │   ├── add-log.tsx         # Log new event (search, browse by sport)
│   │   ├── search.tsx          # Explore & discover events
│   │   └── profile.tsx         # User profile
│   └── _layout.tsx             # Root layout with auth guard
├── components/                 # Reusable UI components
│   ├── ui/                     # GlassCard, EventDetailModal, EditLogModal,
│   │                           # SharedModal, SettingsModal, SocialModal,
│   │                           # PageHeader, etc.
│   └── ...
├── server-lib/                 # Shared server utilities
│   ├── espn.ts                 # Shared ESPN fetch/parse/upsert for all sports
│   ├── venue-lookup.ts         # findOrCreateVenue() + auto-enrichment
│   ├── nba-venues.ts           # Static NBA arena mappings (30 teams)
│   ├── nfl-venues.ts           # Static NFL stadium mappings (32 teams)
│   ├── nhl-venues.ts           # Static NHL arena mappings (32 teams)
│   └── supabase-admin.ts       # Supabase service-role client
├── api/                        # Vercel serverless functions
│   ├── cron/                   # Scheduled sync jobs
│   │   ├── sync-nba.ts         # Daily NBA game sync (ESPN)
│   │   ├── sync-nfl.ts         # Daily NFL game sync (ESPN)
│   │   ├── sync-nhl.ts         # Daily NHL game sync (ESPN)
│   │   ├── backfill-nba.ts     # Historical NBA season backfill
│   │   ├── backfill-nfl.ts     # Historical NFL season backfill
│   │   └── backfill-nhl.ts     # Historical NHL season backfill
│   ├── events/                 # Event search & box score APIs
│   ├── logs/                   # Log CRUD APIs
│   └── scripts/                # One-off scripts (venue backfill)
├── admin/                      # Static HTML admin dashboard
│   └── index.html              # Venue & game data viewer with filters
├── store/                      # Zustand state stores
├── constants/                  # Design tokens, colors, typography
├── supabase/migrations/        # Database migrations (numbered SQL files)
├── docs/                       # Planning & reference documentation
│   ├── event-types/            # Workflow guides for adding new event types
│   └── *.md                    # Product, tech stack, data models, API, etc.
└── assets/                     # Images, fonts, and icons

Getting Started

Prerequisites

  • Node.js 18+
  • Expo CLI
  • Xcode 15+ (for iOS builds)
  • Supabase project with Postgres
  • Firebase project with Auth enabled
  • Vercel account (for API deployment)

Setup

# Clone the repo
git clone https://github.com/jonahr4/LogIt.git
cd LogIt

# Install dependencies
npm install

# Create your .env.local file
cp .env.example .env.local
# Fill in Supabase, Firebase, and Vercel credentials

# Start the dev server
npx expo start

# Run on iOS simulator
npx expo run:ios

Environment Variables

Variable Description
NEXT_PUBLIC_SUPABASE_URL Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anon/public key
SUPABASE_SERVICE_ROLE_KEY Supabase service-role key (server only)
FIREBASE_API_KEY Firebase API key
FIREBASE_AUTH_DOMAIN Firebase auth domain
CRON_SECRET Secret for Vercel cron job auth

Documentation

All planning and reference docs live in docs/:

Document Purpose
PRODUCT_OVERVIEW.md Vision, positioning, and MVP scope
DATA_MODELS.md Database schema and entity relationships
TECH_STACK.md Architecture, tech choices, and project structure
UI_AND_FLOWS.md Screens, navigation, and design system
API_DESIGN.md API endpoints and request/response contracts
FEATURE_ROADMAP.md Phased feature breakdown with progress
SOCIAL_FEATURES.md Privacy model, friend system, and social layer
EXTERNAL_SERVICES.md Data ingestion and external API integration
ADMIN_DASHBOARD.md Admin portal setup, features, and RLS policies
event-types/sports.md Workflow for adding new sports leagues

Roadmap

Phase Focus
MVP (v1.0) Auth, NBA game search, log creation with photos, logbook, event detail, feed
v1.5 Multi-sport (NFL ✅, NHL ✅, MLB ✅, WNBA ✅, 6 NCAA ✅), friend system, stats, map view
v2.0 Shared attendance, event discovery & reviews, comments/reactions, beyond sports

Status

🟢 MVP core complete — Auth, onboarding, full UI (Spatial Green v2 design with unified SharedModal system), 11 sports leagues syncing from ESPN (NBA, NFL, NHL, MLB, WNBA + 6 NCAA), Supabase-backed event search with fuzzy matching and league filtering, log creation with companions, personal logbook with sort/filter, venue auto-enrichment, Letterboxd-style profile with Top 4 + stats + highlights, global settings + social modals accessible from every screen, and admin data portal.


Changelog

Date Update
2026-05-28 UI refactor — SharedModal unified modal system, global PageHeader (settings + social on all screens), Letterboxd-style profile (Top 4, stats, highlights), sticky headers on feed/logbook/explore, SettingsModal + SocialModal + StatDetailModal all using SharedModal shell
2026-04-02 WNBA integration — sync + backfill + 13 WNBA teams in browse UI, cron at 6:20 AM UTC
2026-04-02 MLB integration — sync + backfill + 30 MLB teams in browse UI, cron at 6:10 AM UTC
2026-04-02 NHL integration — sync + backfill + 32 NHL teams in browse UI, cron at 6:10 AM UTC
2026-03-31 Season metadata — season_type + playoff round tracking, multi-sport box score, team browse with season headers
2026-03-31 NFL integration — shared ESPN utility, sync + backfill scripts, 32 NFL teams in browse UI
2026-03-31 Admin portal — static HTML dashboard for venues & games with filters, pagination, sorting
2026-03-31 Venue auto-enrichment — Nominatim geocoding + Wikimedia Commons images
2026-03-30 Logbook & Add Log — connected to Supabase, real API search, log creation
2026-03-29 Event Detail Modal — ticket-style UI, box score, delete log
2026-03-28 NBA game sync — ESPN cron job, venue normalization, sports_events child table
2026-03-27 UI foundation — Spatial Green v2 design system, glassmorphism, floating nav
2026-03-27 Auth — Firebase Google + Apple Sign-In, cross-platform hybrid strategy

Log it. Remember it. Own it.

About

Log the events you live. A mobile-first logbook for sports games, concerts, movies, and more.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages