Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 3.31 KB

README.md

File metadata and controls

77 lines (56 loc) · 3.31 KB

RECIPES

🍝 Welcome to the Recipes Web App. 🍝


Main page


ℹ️ About the project

Current project mainly makes use of Hotwire feature of Rails 7 and it is used in certain pages for effective/performant rerendering.


Technologies used

  • Ruby on Rails (v 7)
  • Postgresql (v 15.1)

Gems used

  • devise: to enable flexible authentication solution for our app,
  • figaro: to make it easy to securely configure Rails applications, and hide env variables.
  • letter_opener: for previewing emails locally.
  • bootstrap-email: to be able to to write emails like you would a website.
  • acts-as-taggable-on: to allow for custom tagging models within a Rails application.
  • acts_as_list: for managing lists. Within our application, to be able to manage recipe instructions like regular lists.
  • will_paginate: for pagination purposes, paginating Recipes.
  • friendly_id: for using slugs, to find recipes, instead of using ids.
  • omniauth: to enable multi-provider authentication for our web application.
  • omniauth-google-oauth2: to allow Oauth2 strategy for authentication with Google.
  • omniauth-facebook: to allow Oauth2 strategy for authentication with Facebook.
  • omniauth-twitter: to allow Oauth2 strategy for authentication with Twitter.
  • omniauth-rails_csrf_protection: to provide CSRF protection on OmniAuth request endpoint on our Rails application.
  • faker: for generating fake data such as recipe names, list titles, and similar content.
  • rspec-rails: to be able to test our app with RSpec framework.
  • shoulda-matchers: to use one-liner tests for common Rails functionality.
  • bullet: to help kill N+1 queries and unused eager loading.

Features

Guest can:

  • SIGN UP via (email / Gmail / Facebook / Twitter),
  • READ shared/all Recipes,
  • VIEW Recipes based on selected tag.

User can:

  • SIGN IN via (email / Gmail / Facebook / Twitter),
  • CREATE / READ / UPDATE / DELETE its own Recipes,
  • READ own, liked, shared Recipes,
  • LIKE / UNLIKE others Recipes,
  • COOKMARK / UNCOOKMARK others Recipes (mark as cooke / unmark as cooked),
  • FOLLOW / UNFOLLOW other Users,
  • CREATE / READ / UPDATE / DELETE its own Lists,
  • ADD / REMOVE other Users' Recipes to its own lists,
  • ADD / UPDATE / REMOVE instructions to its own recipes,
  • ADD / UPDATE / REMOVE ingredients to its own recipes.

Setup

To run this project:

  • install required gems with - bundle install:
  • run the project locally with - rails s
# install required gems
$ bundle install

# run the project locally
$ rails s