Cookrr - tech stack and functionality
Published: 2023-10-30
Updated: 2023-10-30
Tech Stack
- Heavy Lifting
- Svelte (reactive frontend)
- Sveltekit (routing, API)
- Prisma (ORM)
- Luicia Auth (User management)
- Deployment
- Docker
- NGINX Proxy manager (Reverse proxy)
- NPM/JS
- Pico CSS (UI)
- Archiver/Unzipper (working with zip files)
- Axios (headless browsing)
- DOMPurify/Sanitise HTML
- Marked (markdown rendering)
- Fuse (fuzzy searching)
- Testing
- Vitest
- Testing Library
- Jest DOM
Functionality
- User
- Login/Logout
- Update password in settings
- Accounts
- Settings
- Admin area
- User management
- Site management
- Sharing
- Public/Private profiles
- Public/Private recipes
- Recipe Import/Export
- Scrape from other websites by pasting the URL into a form
- Tests working for around 240 websites
- Bookmarklet to do the scraping
- Import from Paprika recipe manager files (gzip containing zipped JSON files)
- Import via Paprika API
- Import your categories
- Maintaining the hierarchy
- Export your recipes to Paprika format
- Recipe pages
- Create, edit, delete recipes
- Add multiple photos
- Use of markdown for ingredients, notes, description, directions sections
- This is sanitised server and browser side
- Ingredient conversion from and to US Cups/Imperial
- Database with densities (grams per cup) for 4000+ ingredients
- Parse directions for temperatures to convert
- Scaling recipes
- Category add/update
- Ratings edit/view
- Recipe list
- Search
- Sort
- Date created
- Category
- Name
- Filter using categories