Frontend Repository for our Fantasy Football Assistant Manager FFOracle.
- Backend Repository: https://github.com/EricNohara/FFOracle-Backend/
- Updater Repository https://github.com/EricNohara/FFOracle-Updater/
- Production: Deployed on Vercel
- Framework: Next.js (App Router)
- Language: TypeScript / React
- Styling: Tailwind CSS 4, custom CSS in
app/globals.css - Auth & data: Supabase (
lib/supabase/*) - Payments: Stripe (
app/components/Payment/*)
Only the most relevant paths are listed here; see the repo for full details.
app/– Next.js App Router entry point and all routes/componentsapp/layout.tsx– root layout wrapperapp/page.tsx– landing page
lib/– shared libraries and utilitieslib/supabase/– Supabase client and auth helperslib/utils/– app-specific utilities (cached advice, formatting, roster slots)
public/– static assets (fonts, images)eslint.config.mjs– ESLint configurationtsconfig.json– TypeScript configurationnext.config.ts– Next.js configuration
Under app/:
app/dashboard/page.tsx– main user dashboardapp/dashboard/advice/page.tsx– AI fantasy advice viewapp/performance/page.tsx– player performance pageapp/settings/page.tsx– settings hubapp/stats/page.tsx– stats viewapp/signin/page.tsx– sign-in pageapp/signup/page.tsx– sign-up pageapp/articles/page.tsx– player news & articles
app/api/deleteUser/route.ts– API route to delete a user account
app/components/Navigation/– nav bars (AppNav,LandingNav,Navigation)app/components/Overlay/– overlays & modals (player stats, swap, advice reasoning, etc.)app/components/Payment/– Stripe checkout and payment completion UIapp/components/Settings/– settings tab componentsapp/components/Tour/– dashboard product tourapp/context/AuthProvider.tsx– authentication context providerapp/context/UserDataProvider.tsx– user data context providerapp/hooks/– custom hooks (e.g.usePlayersByPosition,useRedirectIfLoggedIn)app/interfaces/– TypeScript interfaces for API and app data shapes
From the project root (FFOracle-Frontend):
npm installYou'll need the appropriate environment variables configured for Supabase and Stripe in .env.local:
NEXT_PUBLIC_API_URL=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
NEXT_SUPABASE_SERVICE_ROLE_KEY=
NEXT_PUBLIC_BACKEND_BASE_URL=
Contact us for the relevant API keys.
Start the development server:
npm run devThen open http://localhost:3000 in your browser.
The main entry is app/page.tsx. Any changes in files under app/ will hot-reload.
To build for production:
npm run buildTo run the production build locally:
npm run start