[go: nahoru, domu]

Skip to content

Commit

Permalink
Added/updated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
ThatXliner committed Mar 3, 2024
1 parent 4c04f2e commit baf1a9b
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 26 deletions.
44 changes: 44 additions & 0 deletions docs/future.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Roadmap and future

This document aims to describe the future of WarriorBorg's scouting app.

## Naming and terms

- WarriorHappy: The mobile app members download onto their mobile devices
- WarriorSad: Originally stood for Scouting Admin Dashboard. It is the dashboard resides at [warriob.org](https://warriorb.org), used by team leads to assign scouting assignments, view scouting analytics and data for pick lists, etc.

Current date as this document is last updated: **2024-03-03**

## Optimum experience

### Scouting

### WarriorSad

TK.

### WarriorHappy

TK.

## What works right now

- WarriorHappy
- Fetching matches and teams assigned to the account you logged in
- Being able to input and do scouting for a specified match
- WarriorSad
- Auto assign **algorithm**
- Downloading matches from an event via TheBlueAlliance API
- Drag and drop assignments to members **into DB**

## What to do before East Bay regional

TK.

## Optimum app (what it should look like in the future)

TK.

## Steps needed to get there

TK.
50 changes: 28 additions & 22 deletions docs/structure.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
# Structure

- Expo app:
- client side app for members
- attendance
- scouting
- qualitative
- quantative
- pit
- per match, students are assigned to watch robots (quantitative) or go around the pit to collect data
- a certain number of people are assigned to qualitative scouting, for thinks like driver ranking, et al
- this data is uploaded to the server via tRPC
- peer-to-peer data sharing
- nextjs app
- app for leads + strategy
- you have 3 views:
- per-team (shows data averaged for a team)
- per-match (shows data collected per-robot for a match)
- overall (all teams averaged)
- assign per match
- match predictions
- picklist generator
- See [https://www.citruscircuits.org/uploads/6/9/3/4/6934550/2023_whitepaper.pdf](https://www.citruscircuits.org/uploads/6/9/3/4/6934550/2023_whitepaper.pdf) (page 54)

The original idea was that we would combine a lot of the software logistics we use into the single suite. We are currently only focused on getting a functional scouting app (dubbed Emotions), so please ignore any mention of strategy or attendance. This is an old, informal document subject to removal, but kept here for historical purposes and may potentially serve as a useful overview of the app. See [FUTURE](./future.md) for more information on what the app should be, what it is now, and how to get there.

- WarriorHappy (Mobile App):
- Client side app for members, using Expo
- Local-first
- Mobile-first
- attendance (scan QR code)
- scouting
- qualitative
- quantative
- pit
- per match, students are assigned to watch robots (quantitative) or go around the pit to collect data
- a certain number of people are assigned to qualitative scouting, for thinks like driver ranking, et al
- this data is uploaded to the server via tRPC
- peer-to-peer data sharing
- WarriorSAD (Scouting Admin Dashboard):
- Using NextJS
- Desktop-first
- app for leads + strategy
- you have 3 views:
- per-team (shows data averaged for a team)
- per-match (shows data collected per-robot for a match)
- overall (all teams averaged)
- assign per match
- match predictions
- picklist generator
- See [https://www.citruscircuits.org/uploads/6/9/3/4/6934550/2023_whitepaper.pdf](https://www.citruscircuits.org/uploads/6/9/3/4/6934550/2023_whitepaper.pdf) (page 54)
8 changes: 4 additions & 4 deletions docs/tooling.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ This document will explain the reasoning behind our tooling and how to use it.

Linting and auto-formatter to avoid bike-shedding

## Next.js/turbo
## Next.js/Turbo

I personally hate Next.js but it's too late now. It's our full-stack React.js meta-framework that includes things such as routing and SSR. Turbo for speed!
I personally hate Next.js but it's too late now. It's our full-stack React.js meta-framework that includes things such as routing and SSR. Turbo for speed! For UI, we use [ShadCN](https://ui.shadcn.com/).

## pnpm

pnpm is a fast JavaScript package manager ~~but [Bun](https://bun.sh) is faster.~~ It's faster than the native `npm` package manager, doesn't have [weird philosophies](https://yarnpkg.com/features/pnp), saves space, and supports monorepos pretty well (none of us actually use [Lerna](https://lerna.js.org) or [Nx](https://nx.dev)).

## tRPC

We need to use tRPC because we also have an Expo app (but also it's because Josh is used to tRPC and doesn't like how Supabase does things). It's great for a TypeScript-based RPC router
We need to use tRPC because we also have an Expo app ~~(but also it's because Josh is used to tRPC and doesn't like how Supabase does things)~~. It's great for a TypeScript-based RPC router. After developing on it for a while now, I can assure you that tRPC is amazing. tRPC + Zod provides the best-in-class DX (Developer experience), but it because of tRPC that we're able to update the internal algorithms/functionality (e.g. how assignments are fetched) without needing to push an update to the scouting app (which is a long an tedious process) as long as the tRPC procedure protocols stayed the same.

## Supabase

Expand All @@ -26,4 +26,4 @@ Awesome database with Auth. Remember to set up RLS properly (otherwise you may a

Make sure you have [installed](https://supabase.com/docs/guides/cli/getting-started#installing-the-supabase-cli) the Supabase CLI.

When you've cloned the repo and checked out to your branch (following the [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-branch)), be sure to run `pnpm install`, `supabase start`, and `supabase db reset`.
When you've cloned the repo and checked out to your branch (following the [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-branch)), be sure to run `pnpm install`, go to `tooling`, and run `supabase start` and `supabase db reset`. If you need troubleshooting, see [here](https://github.com/EvanZhouDev/zyma/blob/main/CONTRIBUTING.md#troubleshooting).

0 comments on commit baf1a9b

Please sign in to comment.