# GEMINI.md ## Project Overview This is a Next.js application built with TypeScript that classifies shoes using a machine learning model. The application uses the device's camera to capture images of shoes and then uses a pre-trained model to classify them. The classification results are displayed to the user and can be saved in a history for later review. The project uses `pnpm` as the package manager and is structured as a typical Next.js application with the `app` directory for routing. It uses `tailwindcss` for styling and `lucide-react` for icons. The UI is built with a combination of custom components and components from the `shadcn/ui` library. ## Building and Running To build and run this project, you will need to have Node.js and `pnpm` installed. 1. **Install dependencies:** ```bash pnpm install ``` 2. **Run the development server:** ```bash pnpm run dev ``` 3. **Build the project:** ```bash pnpm run build ``` 4. **Start the production server:** ```bash pnpm run start ``` 5. **Lint the project:** ```bash pnpm run lint ``` ## Development Conventions * **Styling:** The project uses `tailwindcss` for styling. Utility classes are preferred over custom CSS. * **Components:** The project uses a combination of custom components and components from the `shadcn/ui` library. Custom components are located in the `components` directory. * **State Management:** The project uses React's built-in state management (`useState`, `useRef`, `useEffect`, `useCallback`) for managing component state. * **Linting:** The project uses ESLint for linting. The configuration is in the `eslint.config.mjs` file. * **TypeScript:** The project is written in TypeScript. The configuration is in the `tsconfig.json` file.