Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
IMAGE_NAME=scouting-database
CONTAINER_NAME=season-test
CONTAINER_NAME=port-quals_1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules/
dist/
venv/
2 changes: 1 addition & 1 deletion client/.env
Original file line number Diff line number Diff line change
@@ -1 +1 @@
VITE_SCOUT_VERSION=2025
VITE_SCOUT_VERSION=PORT_HUENEME
30 changes: 15 additions & 15 deletions client/src/apps/match/MatchApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -407,20 +407,20 @@ function MatchApp() {
{ <CheckBoxMatch
checked={ground1}
onChange={setGround1}
className={`${blueAlliance ? 'top-[660px] left-[285px]' :'top-[675px] left-[455px] ' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
className={`${blueAlliance ? 'top-[660px] left-[285px]' :'top-[670px] left-[440px] ' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
</CheckBoxMatch>
// ground 1
}
<CheckBoxMatch
checked={ground2}
onChange={setGround2}
className={`${blueAlliance ? 'top-[740px] left-[285px]' :'top-[760px] left-[455px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
className={`${blueAlliance ? 'top-[740px] left-[285px]' :'top-[760px] left-[440px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
</CheckBoxMatch>
{/* ground 2 */}
<CheckBoxMatch
checked={ground3}
onChange={setGround3}
className={`${blueAlliance ? 'top-[820px] left-[285px]' :'top-[840px] left-[455px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
className={`${blueAlliance ? 'top-[820px] left-[285px]' :'top-[840px] left-[440px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
</CheckBoxMatch>
{/* ground 3 */}
<CheckBoxMatch
Expand Down Expand Up @@ -459,38 +459,38 @@ function MatchApp() {
<CoralSectionButton
onChange={setDeposit1}
value={deposit1}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.45em] top-[44.3em]':'bg-green-300 absolute left-[20.15em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.45em] top-[44.3em]':'bg-red-300 absolute left-[20.15em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.45em] top-[44.3em]':'bg-green-300 absolute left-[18.5em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.45em] top-[44.3em]':'bg-red-300 absolute left-[18.5em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit2}
value={deposit2}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[29.4em] top-[47.1em]':'bg-green-300 absolute left-[22em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[29.4em] top-[47.1em]':'bg-red-300 absolute left-[22em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[29.4em] top-[47.1em]':'bg-green-300 absolute left-[20.2em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[29.4em] top-[47.1em]':'bg-red-300 absolute left-[20.2em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit3}
value={deposit3}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.6em] top-[49.9em]':'bg-green-300 absolute left-[20.2em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.6em] top-[49.9em]':'bg-red-300 absolute left-[20.2em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.6em] top-[49.9em]':'bg-green-300 absolute left-[18.5em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.6em] top-[49.9em]':'bg-red-300 absolute left-[18.5em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit4}
value={deposit4}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.35em] top-[49.9em]':'bg-green-300 absolute left-[16.95em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.35em] top-[49.9em]':'bg-red-300 absolute left-[16.95em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.35em] top-[49.9em]':'bg-green-300 absolute left-[15.2em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.35em] top-[49.9em]':'bg-red-300 absolute left-[15.2em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit5}
value={deposit5}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[22.85em] top-[47.3em]':'bg-green-300 absolute left-[15.4em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[22.85em] top-[47.3em]':'bg-red-300 absolute left-[15.4em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[22.85em] top-[47.3em]':'bg-green-300 absolute left-[13.75em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[22.85em] top-[47.3em]':'bg-red-300 absolute left-[13.75em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit6}
value={deposit6}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.3em] top-[44.4em]':'bg-green-300 absolute left-[17em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.3em] top-[44.4em]':'bg-red-300 absolute left-[17em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.3em] top-[44.4em]':'bg-green-300 absolute left-[15.4em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.3em] top-[44.4em]':'bg-red-300 absolute left-[15.4em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
</CoralSectionButton>

<p
Expand Down
104 changes: 104 additions & 0 deletions client/src/apps/match/components/FieldAutoButton.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
import { useState } from "react";
import { RobotPosition } from "requests";
import CheckBoxMatch from './CheckBoxButton';
import CoralSectionButton from "./CoralSectionButton";
import bluesidematch from 'path/to/bluesidematch.png';
import redsidematch from 'path/to/redsidematch.png';

const FieldAutoButton = () => {
const [robotPosition] = useState<RobotPosition>();
const [ground1, setGround1] = useState(false);
const [ground2, setGround2] = useState(false);
const [ground3, setGround3] = useState(false);
const [source1, setSource1] = useState(false);
const [source2, setSource2] = useState(false);
const [start1, setStart1] = useState(false);
const [start2, setStart2] = useState(false);
const [start3, setStart3] = useState(false);
const [deposit1, setDeposit1] = useState(false);
const [deposit2, setDeposit2] = useState(false);
const [deposit3, setDeposit3] = useState(false);
const [deposit4, setDeposit4] = useState(false);
const [deposit5, setDeposit5] = useState(false);
const [deposit6, setDeposit6] = useState(false);
const blueAlliance = (
['blue_1', 'blue_2', 'blue_3'] as (string | undefined)[]
).includes(robotPosition);

return (
<>
<img src={`${blueAlliance ? bluesidematch : redsidematch}`} width={500} height={600} className="justify-self-center my-7" />
<CheckBoxMatch
checked={ground1}
onChange={setGround1}
className={`${blueAlliance ? 'top-[660px] left-[285px]' : 'top-[675px] left-[455px]'} absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`}>
</CheckBoxMatch>
<CheckBoxMatch
checked={ground2}
onChange={setGround2}
className={`${blueAlliance ? 'top-[740px] left-[285px]' :'top-[760px] left-[455px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={ground3}
onChange={setGround3}
className={`${blueAlliance ? 'top-[820px] left-[285px]' :'top-[840px] left-[455px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={source1}
onChange={setSource1}
className={`${blueAlliance? 'top-[570px] left-[250px]' :'top-[585px] left-[485px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={source2}
onChange={setSource2}
className={`${blueAlliance? 'top-[910px] left-[250px]' :'top-[930px] left-[485px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={start1}
onChange={setStart1}
className={`${blueAlliance? 'top-[645px] left-[565px]' :'top-[660px] left-[160px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={start2}
onChange={setStart2}
className={`${blueAlliance? 'top-[740px] left-[565px]' :'top-[760px] left-[160px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CheckBoxMatch
checked={start3}
onChange={setStart3}
className={`${blueAlliance? 'top-[835px] left-[565px]' :'top-[858px] left-[160px]' } absolute z-20 h-10 w-10 overflow-hidden rounded-full text-left`} />
<CoralSectionButton
onChange={setDeposit1}
value={deposit1}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.45em] top-[44.3em]':'bg-green-300 absolute left-[20.15em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.45em] top-[44.3em]':'bg-red-300 absolute left-[20.15em] top-[45.3em]'} h-[1em] w-[4.5em] rotate-[6.83rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit2}
value={deposit2}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[29.4em] top-[47.1em]':'bg-green-300 absolute left-[22em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[29.4em] top-[47.1em]':'bg-red-300 absolute left-[22em] top-[48.4em]'} h-[1em] w-[4em] rotate-90`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit3}
value={deposit3}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[27.6em] top-[49.9em]':'bg-green-300 absolute left-[20.2em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[27.6em] top-[49.9em]':'bg-red-300 absolute left-[20.2em] top-[51.1em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit4}
value={deposit4}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.35em] top-[49.9em]':'bg-green-300 absolute left-[16.95em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.35em] top-[49.9em]':'bg-red-300 absolute left-[16.95em] top-[51em]'} h-[1em] w-[4em] rotate-[6.83rad]`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit5}
value={deposit5}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[22.85em] top-[47.3em]':'bg-green-300 absolute left-[15.4em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[22.85em] top-[47.3em]':'bg-red-300 absolute left-[15.4em] top-[48.05em]'} h-[1em] w-[4em] rotate-90`}>
</CoralSectionButton>
<CoralSectionButton
onChange={setDeposit6}
value={deposit6}
selectClassName={`${blueAlliance? 'bg-green-300 absolute left-[24.3em] top-[44.4em]':'bg-green-300 absolute left-[17em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}
unselectClassName={`${blueAlliance? 'bg-red-300 absolute left-[24.3em] top-[44.4em]':'bg-red-300 absolute left-[17em] top-[45.3em]'} h-[1em] w-[4em] rotate-[2.6rad]`}>
</CoralSectionButton>
</>
);
};

export default FieldAutoButton;
34 changes: 31 additions & 3 deletions client/src/apps/pit/PitApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,17 @@ function PitApp() {
<h1 className='mb-4 text-center text-3xl font-bold text-[#48c55c]'>
Pit App
</h1>

<h1 className='text-center text-3x1 text-white'>Pit Scouting Guide!</h1>
<p className='text-center text-x1 text-white'>1. Introduce yourself to the team!</p>
<p className='text-center text-x1 text-white'>Ex: "Hi I'm (name) and I'm from Team 4201.</p>
<p className='text-center text-x1 text-white'>What are you guys working on?"</p>
<p className='text-center text-x1 text-white'>2. Be curious! Engage with the members and</p>
<p className='text-center text-x1 text-white'> don't treat them as if you're just surveying them. </p>
<p className='text-center text-x1 text-white'>3. Compliment their robot and be friendly. </p>
<p className='text-center text-x1 text-white'>Ease into questions about the robot. </p>
<p className='text-center text-x1 text-white'>4. Be confident and uphold Gracious Professionalism.</p>
<p className='text-center text-x1 text-white'>Good luck!!</p>
</div>

<div className='fixed left-4 top-4 z-20 flex flex-col gap-2 rounded-md bg-slate-200 p-2'>
Expand Down Expand Up @@ -120,10 +131,8 @@ function PitApp() {
/>
</div>
</div>





<div className='mb-8 flex items-center justify-center'>
<div className='flex h-72 w-2/4 flex-col items-center justify-center rounded-lg border-4 border-[#2f3646] bg-[#2f3646] '>
<h1 className='text-center text-white'>
Expand All @@ -141,6 +150,25 @@ function PitApp() {
placeholder='0'></input>
</div>
</div>
<div className='mb-8 flex items-center justify-center'>

<div className='flex h-72 w-2/4 flex-col items-center justify-center rounded-lg border-4 border-[#2f3646] bg-[#2f3646]'>
<h1 className='text-center text-2xl text-white font-bold'>
Intake?
</h1>
<h1 className= 'text-left text-white mr-2 '>
Hopper?
</h1>
<input type='checkbox' className='form-checkbox h-5 w-5 text-blue-600'/>


<h1 className= 'text-left text-white'>
Funnel/Coral Intakes?
</h1>
<input type='checkbox' className='form-checkbox h-5 w-5 text-blue-600'/>
</div>

</div>

<h1 className='my-2 text-center text-white '>Robot Image</h1>
<ImageUploader value={robotImage} onChange={setRobotImage} />
Expand Down
12 changes: 6 additions & 6 deletions client/src/apps/super/SuperApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,14 +210,14 @@ function SuperApp() {
</h1>

<div className='fixed left-4 top-4 z-20 flex flex-row gap-3 rounded-md bg-slate-200 p-1'>
<LinkButton link='/' className='snap-none'>
<LinkButton link='/'>
<MaterialSymbol
icon='home'
size={60}
fill
grade={200}
color='green'
className='snap-none'

/>
</LinkButton>

Expand All @@ -234,7 +234,7 @@ function SuperApp() {
scouterName && superPosition
? 'text-green-400'
: 'text-gray-400'
} snap-none`}
}`}
/>
</button>
)}>
Expand All @@ -252,14 +252,14 @@ function SuperApp() {

<button
onClick={undoHistoryCount}
className='z-10 aspect-square snap-none rounded bg-[#f07800] p-1 font-bold text-black '>
className='z-10 aspect-square rounded bg-[#f07800] p-1 font-bold text-black '>
<MaterialSymbol
icon='undo'
size={60}
fill
grade={200}
color='black'
className='snap-none'

/>
</button>
</div>
Expand Down Expand Up @@ -311,7 +311,7 @@ function SuperApp() {
<button
onClick={() => {
handleSubmit();
scrollTo(0, 0);

}}
className='m-5 w-full max-w-80 rounded-md bg-[#48c55c] px-4 py-2 text-lg'>
Submit
Expand Down
2 changes: 2 additions & 0 deletions client/src/apps/super/components/CannedComments.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ const commentOptions: SelectOption<CommentValues>[] = [
{ label: 'good driving', value: 'good_driving', color: '#50a1c7' },
{ label: 'source only', value: 'source_only', color: '#c78450' },
{ label: 'knock pieces', value: 'knock_pieces', color: '#c107f0' },
{ label: 'coral stuck', value: 'coral stuck', color: '#c107f0' },
{ label: 'algae stuck', value: 'algae stuck', color: '#c107f0' },
{ label: 'clogging', value: 'clogging', color: '#c78450' },
{
label: 'effective defense',
Expand Down
Loading