yes this is chatgpted
Our comprehensive solution for tracking everything!
- Outreach Tracking - Log and track team member outreach hours, with approval workflows for mentors
- Scouting - Collect data on other teams' robot performance during competitions to help with alliance selection
- More Coming Soon! - Plans for tool management
- 📊 Outreach Management: Track member hours, event participation, and generate reports
- 🤖 Robot Scouting: Customizable forms to collect match and pit scouting data
- 📱 Mobile Friendly: Works well on phones and tablets for pit scouting
- 📈 Data Visualization: Charts and graphs for analyzing team performance
- Frontend: Next.js 15 with React 19 and TypeScript
- Backend: PocketBase (handles auth, API, and database)
- UI: Tailwind CSS with shadcn/ui components
- Database: SQLite (via PocketBase)
- Bun (recommended) or npm
- PocketBase
- Supabase local stack (for migration testing)
-
Clone the repository
git clone https://github.com/your-username/optix-toolkit.git cd optix-toolkit -
Install dependencies
bun install # or npm install -
Set up environment variables
Create a
.env.localfile in the root directory:# PocketBase (legacy backend) NEXT_PUBLIC_PB_URL=http://localhost:30090 # Supabase (in-progress migration) NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000 NEXT_PUBLIC_SUPABASE_ANON_KEY=your-local-anon-key SUPABASE_SERVICE_ROLE_KEY=your-local-service-role-key
The repository bundles a self-hosted Supabase stack under
otoolkit-sb/; copy the development keys fromotoolkit-sb/.envwhen running everything locally. -
Start PocketBase
Navigate to the PocketBase directory and start the server:
cd otoolkit-pb # On Windows with WSL: wsl ./LocalStart.sh # Or manually: ./pocketbase serve --dir=. --dev
PocketBase will run on
http://localhost:30090Note: Supabase development services are expected to run on
http://localhost:8000. Start them viasupabase start(or the provided docker-compose configuration) once the migration reaches Phase 2. -
Start the development server
bun run dev # or npm run devThe app will be available at
http://localhost:3000
- Visit
http://localhost:30090/_/to access PocketBase admin - Create an admin account
- Import the database schema (migrations should run automatically)
- Create your first user account in the app
src/
├── app/ # Next.js App Router pages
│ ├── outreach/ # Outreach tracking pages
│ ├── scouting/ # Robot scouting forms
│ └── auth/ # Authentication pages
├── components/ # Reusable React components
├── lib/ # Utilities and configurations
└── middleware.ts # Route protection
otoolkit-pb/ # PocketBase configuration
├── pb_data/ # Database files
├── pb_migrations/ # Database migrations
└── pocketbase # PocketBase binary
# Start development server with Turbopack
bun run dev
# Build for production
bun run build
# Start production server
bun start
# Lint code
bun run lint
# Start PocketBase (from otoolkit-pb directory)
wsl ./LocalStart.shWe welcome contributions from other FRC teams and developers!
- Fork the repository
- Create a feature branch (
git checkout -b feat/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feat/new-feature) - Create a Pull Request
Please follow TypeScript best practices and ensure your code passes linting.
This project is licensed under the MIT License - see the LICENSE file for details.
If you use this software, please provide attribution by mentioning:
- "Optix Toolkit by FRC Team Optix 3749"
- Include a link back to this repository
We are a FIRST Robotics Competition team from Del Norte High School in San Diego, California. This toolkit was built by our students and mentors to help streamline team operations and improve our competitive performance.
- Created by: FRC Team Optix 3749
- Main Contributors: Neel Adem
Questions or Issues? Open an issue on GitHub or contact our team through our website.