Current project mainly makes use of Hotwire feature of Rails 7 and it is used in certain pages for effective/performant rerendering.
- Ruby on Rails (v 7)
- Postgresql (v 15.1)
- 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.
- SIGN UP via (email / Gmail / Facebook / Twitter),
- READ shared/all Recipes,
- VIEW Recipes based on selected tag.
- 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.
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