A simple web app for managing a cheese collection. Add, view, and delete cheeses with name, origin, milk type, and description.
- Backend: Node.js, Express 5, Mongoose, MongoDB
- Frontend: Vanilla HTML, CSS, JavaScript
- Add cheeses via form (Archive and Add Cheese tabs)
- Import from URL — paste a link to scrape cheese info and pre-fill the form (uses Gemini for descriptions when
GEMINI_API_KEYis set) - View all cheeses in a card grid
- Delete cheeses with confirmation
- Dark theme UI
-
Clone the repo and install dependencies:
npm install
-
Create a
.envfile:MONGODB_URI=mongodb+srv://... GEMINI_API_KEY=... # Optional: enables LLM-generated descriptions when scraping (free key at aistudio.google.com/apikey) -
Run the server:
node server.js
-
Open
http://localhost:3000
When you paste a URL in Add Cheese → Import from URL and click Fetch, the app scrapes the page for cheese info. If GEMINI_API_KEY is set in .env, it uses Google Gemini to generate a coherent 3-sentence description (origin, flavour, texture). Otherwise it falls back to heuristic extraction. Get a free API key at Google AI Studio.
- Deployment