/App-Food

Primary LanguageRubyMIT LicenseMIT

📗 Index

📖 [Food App] [Ruby On Rails]

The Ruby on Rails Food application exemplifies the MVC architecture and leverages the Devise gem for authentication and the CanCanCan gem for authorization. Demonstrating the robust capabilities of Ruby on Rails, this app seamlessly interacts with a database to deliver an impressive user experience.

With a focus on food-related functionalities, the app offers a comprehensive view interface encompassing foods, recipes, and inventories. Through this interface, users are empowered to perform a range of actions. They can effortlessly add, delete, or edit items, provided they possess the necessary authorization based on their assigned role within the system.

The app also introduces a unique feature: the ability to generate a shopping list. By activating a modal and selecting items from the inventory, users can craft a personalized shopping list tailored to their requirements.

Furthermore, the app supports enhanced sharing capabilities. Users have the option to make their recipes public, extending access to all users — even those who aren't authenticated. This inclusivity encourages an exchange of culinary knowledge and ideas, fostering a collaborative environment within the app's user community.

In summary, the Ruby on Rails Food app is a showcase of the dynamic potential of the Ruby on Rails framework. By adhering to the MVC pattern and integrating authentication, authorization, and innovative features, it seamlessly orchestrates database interactions and provides users with a feature-rich platform for managing food-related content and enhancing their culinary experiences.

🛠 Built With

Tech Stack

Client
Database

Key Features

  • [MVC Pattern] Follows the MVC(Model, View, Controller) pattern which allows it to be easy to manage
  • [Authentication] Counts with an authentication system using Devise Gem which allows the user to have an unique account with its own email and password, and also allows the user to edit its own profile
  • [Migration of Database using Rails method] All the data storaged is actually being managed by a Database, and the migration of the database is being done using the rails method
  • [Testing] All the views are being tested using RSpec and Capybara
  • [Linters] It follows the rules of 2 very well knowed linters Rubocop & Stylelint, which helps to keep the code clean and easy to read
  • [Gitflow] Used Gitflow as a workflow which allows to have a clean and organized version control

(back to top)

🚀 Preview

Will be implemented in the future

(back to top)

💻 Getting Started

To get a local copy up and running, follow these steps.

Prerequisites

In order to run this project you need:

sh To have ruby installed with the last version of rails

Setup

Clone this repository to your desired folder:

sh Run bundle install to install all the gems and dependencies

Usage

To run the project, execute the following command:

sh Executing the command 'rails s' will start the server of this RoR app

Testing

To run integration tests, you have to follow these steps:

sh Executing the command bundle install will install all the necessary dependencies to run the tests of this RoR app

sh To run all the tests, execute the command 'rspec'

sh To run tests by using rspec

Deployment

No deployment necessary

(back to top)

👥 Authors

👤 Fredo St Fleur

👤 Daniel Carrera

👤 Alejandro Velasquez

🔭 Future Features

  • [Responsive Design] Build a fully responsive design
  • [Live Demo] Deploy the app in a live server
  • [User Profile] Add a user profile page

(back to top)

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

⭐️ Show your support

If you like this project, be pending on our profiles. We are open to listen your opinion!

(back to top)

🙏 Acknowledgments

We extend our heartfelt gratitude to the Microverse Team and our valued partners, whose collaboration and support have been instrumental in bringing this project to fruition.

(back to top)

📝 License

This project is MIT licensed.

(back to top)