Skip to main content

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
      • Annotate the 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
      • Name
      • Source
      • Ingredients
    • Sort
      • Date created
      • Category
      • Name
    • Filter using categories