Website for Brackt.com
Find a file
Chris Parsons 3210ab265f
Change participant expectedValue from integer to decimal (#1)
* feat: sync odds-based EV to participants table for draft room ranking

When admin enters futures odds or manual probabilities, the calculated EV
is now synced from participantExpectedValues to participants.expectedValue.
This closes the gap where EVs were calculated but never reflected in the
draft room ranking. Also changes expectedValue from integer to decimal(10,2)
for better precision, and displays "—" for participants with no odds data.

https://claude.ai/code/session_01JWG2zg2EMzCn6RgEufPC1T

* fix: correct expectedValue type to string in participants route

Missed instance of `expectedValue: 0` (number) that failed typecheck
after schema change from integer to decimal.

https://claude.ai/code/session_01JWG2zg2EMzCn6RgEufPC1T

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-19 11:26:40 -08:00
.github/workflows ci: reorganize workflow dependencies and remove standalone test workflow 2025-10-21 12:57:03 -07:00
app Change participant expectedValue from integer to decimal (#1) 2026-02-19 11:26:40 -08:00
cypress ci: reorganize workflow dependencies and remove standalone test workflow 2025-10-21 12:57:03 -07:00
database Change participant expectedValue from integer to decimal (#1) 2026-02-19 11:26:40 -08:00
drizzle Change participant expectedValue from integer to decimal (#1) 2026-02-19 11:26:40 -08:00
plans feat: add FIFA World Cup 48-team bracket template with group stage and projected scoring 2026-02-14 22:30:12 -08:00
public feat: add icon support for sports with file upload and active seasons display 2025-10-13 10:30:47 -07:00
scripts refactor: migrate server code from JavaScript to TypeScript with build pipeline 2025-10-18 22:16:04 -07:00
server feat: implement daily standings snapshot system with admin management interface 2025-11-14 09:15:58 -08:00
.dockerignore Initial commit from create-react-router 2025-10-10 23:04:50 -07:00
.env.example refactor: consolidate migration and app containers into single production image 2025-10-13 11:01:12 -07:00
.gitignore ci: add test job to GitHub workflow and setup testing dependencies 2025-10-21 12:47:11 -07:00
.mcp.json feat: Implement event management for sports seasons with CRUD operations and UI 2025-10-31 22:13:12 -07:00
CLAUDE.md feat: implement sports season expected value calculations and probability updates 2025-11-21 22:05:50 -08:00
components.json feat: add theme system with dark mode support and navbar component 2025-10-10 23:30:26 -07:00
cypress.config.js ci: add test job to GitHub workflow and setup testing dependencies 2025-10-21 12:47:11 -07:00
docker-compose.yml feat: add FIFA World Cup 48-team bracket template with group stage and projected scoring 2026-02-14 22:30:12 -08:00
Dockerfile refactor: reorganize Docker file structure and import types separately in server.ts 2025-10-18 22:20:06 -07:00
drizzle.config.ts Initial commit from create-react-router 2025-10-10 23:04:50 -07:00
package-lock.json feat: add recharts library and implement PointProgressionChart component for historical views 2025-11-14 21:18:34 -08:00
package.json feat: add recharts library and implement PointProgressionChart component for historical views 2025-11-14 21:18:34 -08:00
react-router.config.ts feat: implement middleware and context provider for Express integration 2025-10-11 20:56:00 -07:00
README.md Initial commit from create-react-router 2025-10-10 23:04:50 -07:00
server.ts refactor: reorganize Docker file structure and import types separately in server.ts 2025-10-18 22:20:06 -07:00
TESTING.md ci: add test job to GitHub workflow and setup testing dependencies 2025-10-21 12:47:11 -07:00
tsconfig.json refactor: update import paths to use absolute paths for better clarity and maintainability 2025-10-24 21:20:19 -07:00
tsconfig.node.json feat: implement Expected Value System with ICM probability calculator 2025-11-17 22:19:46 -08:00
tsconfig.server.json feat: Refactor autopick logic to use unified executeAutoPick function and enhance eligibility checks 2025-10-25 10:14:36 -07:00
tsconfig.vite.json refactor: update import paths to use absolute paths for better clarity and maintainability 2025-10-24 21:20:19 -07:00
vite.config.ts Revert Phase 8 and 9 implementations back to 0bef91e 2025-10-16 10:17:31 -07:00
vitest.config.ts refactor: update import paths to use absolute paths for better clarity and maintainability 2025-10-24 21:20:19 -07:00

Welcome to React Router!

A modern, production-ready template for building full-stack React applications using React Router.

Features

  • 🚀 Server-side rendering
  • Hot Module Replacement (HMR)
  • 📦 Asset bundling and optimization
  • 🔄 Data loading and mutations
  • 🔒 TypeScript by default
  • 🎉 TailwindCSS for styling
  • 💾 PostgreSQL + DrizzleORM
  • 📖 React Router docs

Getting Started

Installation

Install the dependencies:

npm install

Development

Copy .env.example to .env and provide a DATABASE_URL with your connection string.

Run an initial database migration:

npm run db:migrate

Start the development server with HMR:

npm run dev

Your application will be available at http://localhost:5173.

Building for Production

Create a production build:

npm run build

Deployment

Docker Deployment

To build and run using Docker:

# For npm
docker build -t my-app .

# Run the container
docker run -p 3000:3000 my-app

The containerized application can be deployed to any platform that supports Docker, including:

  • AWS ECS
  • Google Cloud Run
  • Azure Container Apps
  • Digital Ocean App Platform
  • Fly.io
  • Railway

DIY Deployment

If you're familiar with deploying Node applications, the built-in app server is production-ready.

Make sure to deploy the output of npm run build

├── package.json
├── package-lock.json (or pnpm-lock.yaml, or bun.lockb)
├── server.js
├── build/
│   ├── client/    # Static assets
│   └── server/    # Server-side code

Styling

This template comes with Tailwind CSS already configured for a simple default starting experience. You can use whatever CSS framework you prefer.


Built with ❤️ using React Router.