Skip to content

A fast, no-sign-in web app for groups to rank options through head-to-head matchups using an Elo-based system. 🚀

Notifications You must be signed in to change notification settings

noahtf13/Optima

Repository files navigation

Optima

Overview

Optima is a lightweight, single-session web application designed for groups to efficiently reach a consensus on a list of items using a margin-sensitive Elo algorithm. The application ensures a snappy, distraction-free UX and requires no sign-in or persistent data storage.

Features

  • Single-session, ephemeral usage (no user accounts or data storage)
  • Fast, responsive UI optimized for desktop and mobile
  • Deterministic decision-making with an Elo-based ranking system
  • Simple and intuitive workflow for entering items, voting, and ranking
  • Automatic elimination of weak options for efficient decision-making

User Flow

  1. Home Screen: Users enter a list of items to be ranked.
  2. Voter Entry: Participants enter their names to vote.
  3. Voting Round: Items are matched up in an A vs. B format for voting.
  4. Ranking Calculation: An Elo-based algorithm determines the strongest options.
  5. Final Results: A ranked list is displayed with an option to copy results or restart.

Technology Stack

  • Frontend: Next.js (React, TypeScript, Tailwind CSS)
  • State Management: React Context / useState
  • Deployment: Vercel

Installation & Development

Prerequisites

  • Node.js
  • npm or yarn

Setup

  1. Clone the repository:
    git clone https://github.com/noahtf13/Optima
    cd Optima
  2. Install dependencies:
    npm install  # or yarn install
  3. Run the development server:
    npm run dev  # or yarn dev
  4. Open the app in your browser at http://localhost:3000.

Deployment

To deploy on Vercel:

  1. Install the Vercel CLI:
    npm install -g vercel
  2. Deploy the project:
    vercel

Contribution

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature-name)
  3. Commit your changes (git commit -m "Added new feature")
  4. Push the branch (git push origin feature-name)
  5. Submit a pull request

License

This project is licensed under the MIT License.

Contact

For any questions or feedback, please open an issue in the repository or reach out to the maintainer.

Credit

Harper Reed's Blog on their codegen workflow was intstrumental here as I'm a Data Scientist by day and am completely unfamiliar with frontend work outside of basic HTML/CSS. I'd love to learn best practice as much as possible, so if you see me deviating from it submit an issue or PR, or just send me an email to [email protected]

About

A fast, no-sign-in web app for groups to rank options through head-to-head matchups using an Elo-based system. 🚀

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages