Giter Club home page Giter Club logo

recipe-manager's Introduction

๐Ÿฅ Recipe Manager

Very basic recipe manager, built with Vue 3, Vite and Tailwind (and Vue Router + Vuex).

Demo

I wanted to keep the project as light-weight as possible, yet flexible enough to be extended if need be. I also wanted to keep it "database free", so deployment would be a straight-forward procedure.

Recipes are stored as JSON files in src/data/recipes.

โš ๏ธ The project's .gitignore currently ignores all recipe files that do not contain the name .example in the file name.

There's a dark & light theme implemented.

Screenshot of recipe manager with dark theme

Screenshot of recipe manager with light theme

Feature list

  • Clicking on ingredients/steps marks them as done (improve tracking of mise en place/cooking steps)
  • Recipes stored in JSON format (no external database)
  • Basic internationalization
  • Basic recipe metadata (rating, category, cooking time, yield, nutrition)
  • Add print stylesheets
  • Route transitions
  • Scale recipe ingredients

To Do

Deployment

Build the project through the build script in package.json. The current settings are set to up to run the project from a root directory (like a subdomain), but this can be configured through vite.config.js and by setting the base path.

Translations/i18n

This is also kept really low-level in this project. Language JSON files are stored in the folder src/locales.

To create a new language, copy the contents of an existing language file and replace the strings to your liking.

The JSON file is imported in main.js as so:

// ๐ŸŒ Change language here
import locale from './locales/en.json';

The language is then registered and made globally available through app.config.globalProperties.locale = locale; in main.js.

Currently there's ๐Ÿ‡บ๐Ÿ‡ธ English, ๐Ÿ‡ธ๐Ÿ‡ช Swedish and ๐Ÿ‡ซ๐Ÿ‡ฎ Finnish present.

  • The <title> tag needs to be changed manually in index.html, or from the .env file (Vite is adding citation marks)
  • The <html lang=""> attribute needs to be changed manually in index.html

Tech notes

Stack

This project runs on Vue 3 + Vite + Tailwind + Vue Router + Vuex (and Prettier for linting).

Upgrading Vue

To upgrade project dependencies, run vue upgrade.

recipe-manager's People

Contributors

dependabot[bot] avatar postmodernistx avatar

Stargazers

 avatar

Watchers

 avatar

recipe-manager's Issues

Single recipe view

  • Recipe metadata, like yields, time to cook, total time, passive time
  • Ingredients list
  • Calories/nutritional value
  • Categories
  • Step-by-step instructions
  • Drink recommendations, if present
  • Extra information, if present
  • Description/recipe introduction
  • Source (link to source, date?)

๐Ÿฅ‡ Difficulty?

I've never really utilized the difficulty feature in Paprika, so I think this is a low priority issue.

:bell: Timer from time tag

In the recipe view, if you click on a time tag, it could start a countdown under that step.
Incl. counting down, and audio.

image

:computer: UI for adding recipes

Low priority, but would be convenient if recipes could be added through an admin panel.

This would however also require an additional level of authentication.

Another alternative is to have the UI, but then download the recipe info in correct JSON format.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.