+{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","href":"/docs/intro","label":"Introduction","docId":"intro","unlisted":false},{"type":"category","label":"General Practices","items":[{"type":"link","href":"/docs/general-practices/backend-endpoints","label":"Backend Endpoints","docId":"general-practices/backend-endpoints","unlisted":false},{"type":"link","href":"/docs/general-practices/frontend-forms","label":"Frontend Forms","docId":"general-practices/frontend-forms","unlisted":false},{"type":"link","href":"/docs/general-practices/frontend-hooks-and-apis","label":"Frontend Hooks and APIs","docId":"general-practices/frontend-hooks-and-apis","unlisted":false},{"type":"link","href":"/docs/general-practices/postman-api-testing","label":"Postman API Testing","docId":"general-practices/postman-api-testing","unlisted":false},{"type":"link","href":"/docs/general-practices/prisma-schema-shared-types","label":"Prisma Schema and Shared Types","docId":"general-practices/prisma-schema-shared-types","unlisted":false},{"type":"link","href":"/docs/general-practices/query-args-and-transformers","label":"Query Args and Transformers","docId":"general-practices/query-args-and-transformers","unlisted":false},{"type":"link","href":"/docs/general-practices/react-components","label":"React Components","docId":"general-practices/react-components","unlisted":false},{"type":"link","href":"/docs/general-practices/repository-overview","label":"Repository Overview","docId":"general-practices/repository-overview","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"general-practices/backend-endpoints":{"id":"general-practices/backend-endpoints","title":"Backend Endpoints","description":"Guide for creating backend API endpoints in FinishLine following the Route → Controller → Service pattern with multi-tenant security. Use when creating new endpoints, adding API routes, implementing controllers or services, building backend request handlers, or when asked how the backend works.","sidebar":"tutorialSidebar"},"general-practices/frontend-forms":{"id":"general-practices/frontend-forms","title":"Frontend Forms","description":"Guide for building forms in FinishLine using React Hook Form with MUI components and the NERFormModal abstraction. Covers useForm setup, Controller wrapping, create vs edit mode, form-modal reset lifecycle, and shared form field components. Use when creating new forms, adding form fields, building create/edit modals, working with React Hook Form, or debugging form state issues. NEVER use useEffect to sync form state.","sidebar":"tutorialSidebar"},"general-practices/frontend-hooks-and-apis":{"id":"general-practices/frontend-hooks-and-apis","title":"Frontend Hooks and APIs","description":"Guide for creating React Query hooks and Axios API client functions in FinishLine. Covers query hooks, mutation hooks, API functions, query keys, cache invalidation, toast notifications, and frontend transformers. Use when creating new hooks, adding API calls, writing query or mutation hooks, working with React Query, implementing cache invalidation, or when asked how frontend data fetching works.","sidebar":"tutorialSidebar"},"general-practices/postman-api-testing":{"id":"general-practices/postman-api-testing","title":"Postman API Testing","description":"Guide for using Postman to test and interact with the FinishLine API during development. Use when testing API endpoints, debugging backend issues, verifying request/response formats, or when asked how to use Postman with the local development environment.","sidebar":"tutorialSidebar"},"general-practices/prisma-schema-shared-types":{"id":"general-practices/prisma-schema-shared-types","title":"Prisma Schema and Shared Types","description":"Guide for defining Prisma data models and keeping shared TypeScript types in sync in FinishLine. Covers schema conventions, enum patterns, multi-tenant organizationId scoping, the migration workflow, and the shared type barrel export. Use when adding new database models, creating or editing Prisma schema, defining shared types or interfaces, adding enums, running migrations, or when asked how the data layer works.","sidebar":"tutorialSidebar"},"general-practices/query-args-and-transformers":{"id":"general-practices/query-args-and-transformers","title":"Query Args and Transformers","description":"Guide for Prisma query args and transformer functions in FinishLine. Query args define reusable select/include objects for Prisma queries. Transformers convert Prisma results into shared types for the API. Use when creating query args, writing transformers, fetching data from Prisma for API responses, or when asked how data flows from the database to the frontend.","sidebar":"tutorialSidebar"},"general-practices/react-components":{"id":"general-practices/react-components","title":"React Components","description":"Guide for building and organizing React components in FinishLine. Covers shared vs page-specific component decisions, prop interface design, MUI sx styling, styled() MUI extensions, stateless component patterns, and the container/view split. Use when creating new React components, refactoring UI code, deciding where a component belongs, or when asked about component architecture or styling conventions.","sidebar":"tutorialSidebar"},"general-practices/repository-overview":{"id":"general-practices/repository-overview","title":"Repository Overview","description":"High-level overview of the FinishLine monorepo structure, tech stack, tools, and how they work together. Use when onboarding to the codebase, asking about the project structure, wondering what technology FinishLine uses, asking where files live, or needing to understand how the frontend, backend, and shared packages relate to each other.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Welcome to the FinishLine developer documentation","sidebar":"tutorialSidebar"}}}}
0 commit comments