OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
Check campus gym occupancy, class schedules, and crowd insights
Translation pending
AI summary · README
Sports & fitnessTypeScript · PLpgSQLGitHub @ramjhawar-altOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
OSKILIFTS is a production-style, full-stack app that improves how students access campus fitness data.
It unifies live weight room occupancy, class schedules, and crowd insights in one cross-platform product (web + mobile).
RecWell usage data is publicly available but fragmented across separate tools and pages.
OSKILIFTS turns those fragmented sources into a single, fast, mobile-first experience with reliability safeguards (timeouts, caching, environment fallbacks) that mirror real production constraints.Read the full README ↗OSKILIFTS is a production-style, full-stack app that improves how students access campus fitness data.
It unifies live weight room occupancy, class schedules, and crowd insights in one cross-platform product (web + mobile).
RecWell usage data is publicly available but fragmented across separate tools and pages.
OSKILIFTS turns those fragmented sources into a single, fast, mobile-first experience with reliability safeguards (timeouts, caching, environment fallbacks) that mirror real production constraints.
src/): Navigation, screens, and typed service layer for all API calls.server/): Data adapters, orchestration endpoints, and analysis services.dist/ for single-service hosting.Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY on the Render service (and in .env locally). Run the SQL in server/migrations/001_capacity_snapshots.sql once in the Supabase SQL editor. Without these variables, the API still runs but snapshots are not persisted.
Render free tier: instances sleep after ~15 minutes of no traffic, which pauses the 5‑minute snapshot job. For steadier coverage, use an external uptime ping (e.g. cron-job.org or UptimeRobot) every ~10 minutes against GET /api/health.
GET /api/health - service health and timestampGET /api/weightroom - occupancy snapshotGET /api/classes?startDate=YYYY-MM-DD - class feedGET /api/hoopers - current hoopers crowd estimatePOST /api/hoopers/checkin and POST /api/hoopers/checkout - user crowd signalsGET /api/peak-hours - derived usage analyticssrc/ - Expo app UI, navigation, and API clientsserver/ - Express routes, integrations, and analytics jobsdist/ - optional web export artifactsTECHNICAL_DOCUMENTATION.md - detailed architecture and endpoint notesMost recruiters and reviewers can use the deployed app directly.
If you want to run locally:
npm install
cp env.example .env
npm run server
# in another terminal
npm start
Optional web export:
npm run web:build
OSKILIFTS is an independent project and is not affiliated with or endorsed by UC Berkeley, RecWell, Density, or Mindbody.
It consumes only publicly exposed endpoints used by official public-facing pages.