Best laravel framework open-source packages.

RecipeManagerApi

A tool to manage your families and friends recipes like a chef.
Updated 3 months ago

RecipeManager

Api and Frontend to Manage your recipes. Written with Laravel and Vue.js.

A tool to manage your families and friends recipes like a chef.

Recipes Overview

Why is this so awesome?

  • Manage your recipes You and your friends can save, edit and delete recipes.
  • Share recipes You can share recipes by one click via Telegram or E-Mail.
  • Calculate yield amounts Calculate yield amounts directly in the recipe on the fly.
  • Exactly define recipe properties ..like author, category, tags, ingredients, units and more.
  • Disable/Enable functionalities Disable or enable dynamically cookbooks and/or tags.
  • Great and easy API Access the easy-to-use REST-API.

What features are planned?

  • Unit and feature tests
  • Improve and add advanced searching and filtering
  • An advanced User-Role-System
  • Import & more export types of recipes
  • Nutrition informations
  • Rating system (the API code is already written ;-) )
  • Social login with Socialite
  • A feature you think is missing...

Getting Started

Get the latest release or clone the repo with

git clone https://github.com/ammannbe/RecipeManager.git

Prerequisites

  • LAMP Stack or Docker for production use
  • Requirements for laravel
  • GD and WebP for image manipulation
  • Composer
  • NPM
  • MeiliSearch
  • Redis (optional but not recommended)

Installation

It's recommended to install and update this software with docker/docker-compose. See here for more information.

Alternatively or for development purposes you can make a manual installation on any linux/unix machine:

Manual installation

  • Install composer packages composer install
  • Install NPM packages npm install
  • Copy .env.example to .env and modify it to your needs
  • Generate storage symlink php artisan storage:link
  • Generate an app key php artisan key:generate
  • Migrate the database php artisan migrate
  • Add following to your crontab:
  *  *  *  *  *  www-data   cd /path-to-the-project && php artisan schedule:run >> /dev/null 2>&1
  • Run the server php artisan serve

Manual development deployment

  • If not already done, install everything
  • Run the server php artisan serve
  • Run the queue worker php artisan queue:work
  • Watch for style and js changes: npm run watch

Manual production deployment

  • If not already done, install everything
  • Optimize composer autoload composer install --optimize-autoloader --no-dev
  • Enable caching:
php artisan config:cache
php artisan route:cache
php artisan view:cache
  • Run the queue worker php artisan queue:work (or setup via e.g. systemd)
  • Optimize npm packages: npm run prod

Update

Translations

All application related files are translated with laravel-translation-manager and laravel-translations-loader.

You should run these commands only on a development machine.

You need to run the migrations for this package:

php artisan vendor:publish --provider="Barryvdh\TranslationManager\ManagerServiceProvider" --tag=migrations
php artisan migrate
  • Import translations composer run translations:import
  • Open <your-domain>/translations in a browser
  • PHP: short keys within resources/lang/<lang>/<group>.php
  • Vue.js: translation strings within /resources/lang/<lang>.json (these files will be imported into the _json group)
  • Export & generate translations composer run translations:export

Other commands:

  • Export translations php artisan translations:export \*
  • Reset translations php artisan translations:reset

IDE helpers

You get better IDE IntelliSense support with the laravel-ide-helper package.

You need to generate the helpers by yourself:

composer run ide-helper:generate

After that, you should run the commands from Testing / Code Quality.

Testing / Code Quality

  • Optional: seed the database with test data
# Seed the database with test data
php artisan db:seed

# Freshly migrate and seed the database
php artisan migrate:fresh --seed

# The secret of the seeded users is 'password'
  • Run static code analytics composer run phpstan
  • Run PHP Coding Standards Fixer composer run php-cs-fixer

Built With

PHP Production:

PHP Development:

JS:

Contributing

Please see CONTRIBUTING for details.

Authors

  • Benjamin Ammann - Initial work - ammannbe

License

This project is licensed under the AGPLv3 or later - see the LICENSE file for details

Gallery

Recipes Overview - Mobile Account - Mobile Recipe - Mobile
Tags api rest api