recipe-manager/frontend
Paul Huliganga dbdbcf43fa feat(tags): implement tag management with create, assign, and display functionality
Backend:
- Add Tag type definitions (Tag, CreateTagInput, UpdateTagInput)
- Implement TagRepository with CRUD and recipe assignment methods
- Implement TagService with business logic and validation
- Create tag API routes (GET, POST, PUT, DELETE /api/tags)
- Add recipe-tag assignment endpoints (POST/DELETE /api/tags/recipes/:id/tags)
- Write 18 integration tests for tag functionality (all passing)
- Mount tag routes in main Express app

Frontend:
- Extend API client with tag CRUD and assignment methods
- Create useTags hook for tag state management
- Create TagSelector component for tag selection with inline tag creation
- Update RecipeForm to accept initialTags and pass selected tags to onSubmit
- Update RecipeDetailPage to fetch, display, and manage recipe tags
- Update RecipeCard to display tags with custom colors
- Add tag filter UI to RecipeListPage (note: backend filtering pending)
- Display tags in recipe detail view with color styling

Testing:
- All 34 backend tests passing (16 recipe + 18 tag tests)
- Frontend builds successfully with TypeScript strict mode
- Tag assignment and removal working end-to-end

Note: Tag filtering in recipe list shows UI but doesn't filter results yet.
Backend support for tag-based filtering can be added in future iteration.
2026-03-24 04:02:51 -04:00
..
public feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
src feat(tags): implement tag management with create, assign, and display functionality 2026-03-24 04:02:51 -04:00
.gitignore feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
README.md feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
eslint.config.js feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
index.html feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
package-lock.json feat(frontend): configure Tailwind CSS v4 with PostCSS 2026-03-24 00:42:34 -04:00
package.json feat(frontend): configure Tailwind CSS v4 with PostCSS 2026-03-24 00:42:34 -04:00
postcss.config.js feat(frontend): configure Tailwind CSS v4 with PostCSS 2026-03-24 00:42:34 -04:00
tailwind.config.js feat(frontend): configure Tailwind CSS v4 with PostCSS 2026-03-24 00:42:34 -04:00
tsconfig.app.json feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
tsconfig.json feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
tsconfig.node.json feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00
vite.config.ts feat(frontend): initialize React + Vite project with TypeScript 2026-03-24 00:27:17 -04:00

README.md

Recipe Manager - Frontend

React + TypeScript frontend for the Recipe Manager application.

Tech Stack

  • React 19 - UI framework
  • TypeScript - Type safety
  • Vite - Build tool and dev server
  • React Router 7 - Client-side routing

Development

# Install dependencies
npm install

# Start dev server (http://localhost:5173)
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Lint code
npm run lint

Project Structure

src/
├── components/     # Reusable UI components
├── hooks/          # Custom React hooks
├── pages/          # Route pages
├── services/       # API client and business logic
├── types/          # TypeScript interfaces
├── App.tsx         # Root component
└── main.tsx        # Application entry point

Next Steps

  • Configure Tailwind CSS
  • Set up React Router
  • Create recipe list page
  • Create recipe detail/edit page
  • Implement cook mode UI

Architecture

See /ARCHITECTURE.md for full system architecture and patterns.