Dhruv.Contact
Back home

Hooply

Hooply icon
2025TypeScriptStartupFeatured

Abstract

A cross-platform basketball social and stats platform built like Strava for pickup ball. NestJS + Expo power real-time tracking, ELO rankings, game organization, and AI coaching — sub-200ms PostgreSQL queries, JWT/RBAC APIs, and 500+ waitlist users across active communities.

Highlights

  • Cross-platform mobile + web with sub-200ms PostgreSQL queries via optimized indexing
  • JWT auth, RBAC, ELO rankings, AI coaching, and real-time game organization
  • 500+ waitlist users and 10+ communities — NestJS API + Expo React Native
NestJSExpoReact NativeTypeScriptPostgreSQL

Hooply

Strava for Pickup Basketball — The definitive digital identity for amateur basketball players.

Overview

Hooply combines stat tracking, social networking, analytics, AI coaching, game organization, ELO rankings, computer vision, and local basketball communities into one platform.

Architecture

hooply/
├── apps/
│   ├── api/          # NestJS REST API + WebSockets
│   ├── mobile/       # Expo React Native iOS/Android app
│   └── admin/        # Next.js admin dashboard
├── packages/
│   └── shared/       # Shared TypeScript types, utils, constants
├── infrastructure/
│   └── docker/       # Docker Compose + Dockerfiles
└── docs/             # Documentation

Tech Stack

LayerTechnology
MobileReact Native, Expo, Expo Router, NativeWind, Zustand, React Query
BackendNestJS, Prisma, PostgreSQL, Redis, Socket.io, BullMQ
AdminNext.js 15, Tailwind CSS
AuthJWT + Clerk integration
AIOpenAI GPT-4o-mini
CI/CDGitHub Actions, Docker

Design System

Orange (#FF6B00) and black (#0A0A0A) professional styling throughout the app, inspired by Apple and Linear design principles.

Quick Start

Prerequisites

  • Node.js 20+
  • pnpm 9+
  • Docker (for PostgreSQL and Redis)

Setup

# Install dependencies
pnpm install

# Start infrastructure
pnpm docker:up

# Copy environment variables
cp .env.example .env

# Generate Prisma client and run migrations
pnpm db:generate
pnpm db:migrate

# Seed database
pnpm db:seed

# Start all apps in development
pnpm dev

Development URLs

ServiceURL
APIhttp://localhost:3001
Swagger Docshttp://localhost:3001/api/docs
Admin Dashboardhttp://localhost:3000
Mobile (Expo)http://localhost:8081

API Modules

  • Auth — Registration, login, JWT refresh, Clerk sync
  • Users — Profiles, search, stats
  • Games — Create, join, live scoring, box scores
  • Courts — Discovery, reviews, occupancy
  • Social — Feed, posts, friends, follows
  • ELO — Rankings with dynamic K-factor, placement games
  • Analytics — PER, TS%, usage rate, heatmaps
  • AI Coach — Game summaries, training plans, weekly reports
  • Computer Vision — Video stat detection with confidence scoring
  • Realtime — Live games, chat, presence via WebSockets
  • NBA — Scores, standings, schedules
  • Fantasy — Private leagues, standings
  • Admin — Analytics, user management, feature flags
  • Notifications — Push tokens, in-app notifications

Testing

pnpm test

Deployment

See docs/DEPLOYMENT.md for production deployment guide.

License

Proprietary — All rights reserved.

Connect with Dhruv Hegde

More of Dhruv Hegde's open-source work on GitHub and LinkedIn.

More projects

← Project gallery