This project is a Nuxt 3/4 starter application named "FoodSmash," designed to showcase the capabilities of the Gemini CLI. It allows users to discover and create unique food combinations.
- Purpose: Educational starter app for Gemini CLI.
- Framework: Nuxt 4 (Compatibility date: 2025-07-15).
- Frontend: Vue 3 with Composition API and Script Setup.
- Icons: Lucide Vue Next.
- Testing: Vitest with @nuxt/test-utils.
- Styling: Vanilla CSS located in
app/assets/css/main.css.
app/: Contains the main source code of the Nuxt application.assets/css/: Global stylesheets.layouts/: Nuxt layout components.pages/: Application pages (auto-routed by Nuxt).
public/: Static assets like icons and robots.txt.test/nuxt/: Component and integration tests using Nuxt's test environment.
- Node.js (Latest LTS recommended)
- npm
- Install Dependencies:
npm install - Development Server:
npm run dev(starts on http://localhost:3000) - Production Build:
npm run build - Static Generation:
npm run generate - Preview Production Build:
npm run preview - Run Tests:
npm testornpx vitest
- Component Testing: Use
mountSuspendedfrom@nuxt/test-utils/runtimefor testing pages and components within the Nuxt environment. - State Management: Currently uses local component state with
ref. - Styling: Adhere to the existing vanilla CSS patterns in
app/assets/css/main.css. - File Naming: Use lowercase with hyphens for directories and PascalCase or lowercase for Vue files as per project current state (e.g.,
create.vue,index.vue). - Imports: Prefer explicit imports for Vue and Vitest utilities.
- Do not use semicolons for any JS/TS file.
- Do not use Tailwind classes in component templates.
- Keep project dependencies minimal.
- Use relative imports and NOT a path alias.