{"id":20624157,"url":"https://github.com/gardimy/ror_recipe_app","last_synced_at":"2026-04-16T20:38:37.861Z","repository":{"id":207043934,"uuid":"718179961","full_name":"Gardimy/ror_recipe_app","owner":"Gardimy","description":"For this milestone, I created a Recipe app that keeps track of all my recipes. It will allow you to save ingredients, keep track of what you have, create recipes, and generate a shopping list based on what you have and what you are missing from a recipe. Also, since sharing recipes is an important part of cooking the app should allow you to make th","archived":false,"fork":false,"pushed_at":"2023-11-17T17:33:23.000Z","size":160,"stargazers_count":0,"open_issues_count":25,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-01-13T14:54:33.234Z","etag":null,"topics":["devise","ruby","ruby-on-rails","testing-framework"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gardimy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-13T14:49:39.000Z","updated_at":"2023-11-17T21:53:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc723546-15c3-44a2-b7d5-bd9e3b64cc1c","html_url":"https://github.com/Gardimy/ror_recipe_app","commit_stats":null,"previous_names":["gardimy/ror_recipe_app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gardimy%2Fror_recipe_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gardimy%2Fror_recipe_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gardimy%2Fror_recipe_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gardimy%2Fror_recipe_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gardimy","download_url":"https://codeload.github.com/Gardimy/ror_recipe_app/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242332581,"owners_count":20110345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devise","ruby","ruby-on-rails","testing-framework"],"created_at":"2024-11-16T12:29:51.764Z","updated_at":"2026-04-16T20:38:37.831Z","avatar_url":"https://github.com/Gardimy.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT DESCRIPTION --\u003e\n\n# \u003ca name=\"about-project\"\u003e Recipe App \u003c/a\u003e\n\nFor this milestone, I created a Recipe app that keeps track of all my recipes. It will allow you to save ingredients, keep track of what you have, create recipes, and generate a shopping list based on what you have and what you are missing from a recipe. Also, since sharing recipes is an important part of cooking the app should allow you to make them public so anyone can access them..For now I only focus on the recipe part.\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n## Table of Contents\n\n- [Tech Stack](#tech-stack) 🛠️\n- [Key Features](#key-features) ✨\n- [Getting Started](#getting-started) 🚀\n  - [Setup](#setup) 🔧\n  - [Installation](#installation) ⚙️\n  - [Usage](#usage) 🧰\n  - [Tests](#tests) :heavy_check_mark:\n  - [Troubleshooting](#troubleshooting) :nut_and_bolt:\n- [Authors](#authors) 🖋️\n- [Future Features](#future-features) 🌟\n- [Contributing](#contributing) 🤝\n- [Support](#support) 🆘\n- [Acknowledgments](#acknowledgments) 🙏\n- [License](#license) 📄\n\n\u003c!-- TECH STACK --\u003e\n\n## Tech Stack 🛠️ \u003ca name=\"tech-stack\"\u003e\u003c/a\u003e\n\n  \u003cul\u003e\n     \u003cli\u003e\u003ca href=\"https://www.ruby-lang.org/en/\"\u003eRuby\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://rubyonrails.org/\"\u003eRuby On Rails\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://tailwindcss.com/\"\u003eTailwind\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://www.postgresql.org/\"\u003ePostgreSQL\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://rspec.info/\"\u003eRSpec\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://github.com/teamcapybara/capybara\"\u003eCapybara\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise\"\u003eDevise\u003c/a\u003e\u003c/li\u003e\n     \u003cli\u003e\u003ca href=\"https://github.com/CanCanCommunity/cancancan\"\u003eCanCanCan\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- FEATURES --\u003e\n\n## ✨ Key Features\u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n- [x] Four main models: User, Food, Recipe, and Recipe Food, following the ERD diagram.\n- [x] Associations between models, including one-to-many and many-to-one relationships.\n- [x] Generated corresponding migration files for each model with appropriate attributes.\n- [x] Added foreign keys and indexes to ensure data integrity and optimize database queries.\n- [x] Utilized timestamps for tracking creation and update times automatically.\n- [x] Followed naming conventions for models, tables, and columns as per Rails standards.\n- [x] Generated migration files to create necessary tables, columns, and associations.\n- [x] Data validations and tests for models to ensure data integrity.\n- [x] Model methods to process data and tests to validate their functionality.\n- [x] CRUD actions in controllers for managing model instances.\n- [x] View templates to render data and user interfaces.\n- [x] Implemented forms for user input and data submission.\n- [x] Optimized queries to handle n+1 problem.\n- [x] Integrated Devise gem for user authentication and registration.\n- [x] Integrated CanCanCan gem for user authorization (CRUD control).\n- [x] Tests to verify the behavior of controller actions and responses.\n- [x] Integration tests to cover user interactions.\n   - Allow User to create food\n   - allow user to save ingredients\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## 🚀 Getting Started\u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n\n### Setup 🔧\u003ca name=\"setup\"\u003e\u003c/a\u003e\n\n1. Ensure you have Ruby installed on your system. You can check your Ruby version in the terminal by running:\n\n```\nruby -v\n```\n\nIf Ruby is not installed, you can download and install it from the official Ruby website.\n\n2. Ensure you have Ruby on Rails (RoR) installed on your system. You can check your Rails version in the terminal by running:\n\n```\nrails -v\n```\n\nIf Rails is not installed, you can install it using the following command:\n\n```\ngem install rails\n```\n\n3. To get a local copy up and running, follow these steps.\nChoose the directory on your local machine where you want to copy project. For example:\n\n```\ncd /home/user/name-of-your-directory\n```\n\nClone the project using one of the options.\n\nUsing SSH-key:\n\n```\ngit clone https://github.com/Gardimy/ror_recipe_app\n```\nUsing HTTPS:\n\n```\ngit clone https://github.com/Gardimy/ror_recipe_app\n```\n\nYou can also create the new directory just adding the name of it in the end of command. For example:\n\n```\ngit clone \\https://github.com/Gardimy/ror_recipe_app\n```\n### Installation ⚙️\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\nTo run this project locally, follow these steps:\n\n1. Open your terminal or command prompt.\n\n2. Navigate to the directory where you have cloned or downloaded the Ultimate Recipe Assistant repository.\n\n3. Run the following command to install any required dependencies:\n```bundle install```\n\n### Usage 🧰\u003ca name=\"usage\"\u003e\u003c/a\u003e\n\n1. Once the setup is complete, ensure you are still in the directory containing the Ultimate Recipe Assistant files.\n\n2. To set up the database and seed initial data, run the following commands:\n\n```\nrails db:create\nrails db:migrate\n```\n\nThis will create the database and apply migrations.\n\nIf you want to populate the database you can run (this step is not required):\n\n```\nrails db:seed\n```\n\n3. To precompile assets for production deployment, execute the following command:\n\n```\nrails assets:precompile\n```\n\nPrecompiling assets is essential for improved performance and loading times in a production environment.\n\n4. To run the app in development mode, execute the following command:\n\n```\nrails server\n```\n\n5. The app will be accessible at `http://localhost:3000` in your web browser.\n\n  If you encounter any issues with the email verification process, please refer to the Devise documentation or seek assistance from the Devise community.\n\n7. If you have future features like GUI or interactive mode, follow the specific instructions provided for those features in the app's documentation.\n\n### Troubleshooting :nut_and_bolt:\u003ca name=\"troubleshooting\"\u003e\u003c/a\u003e\n\n#### Rendering\n\nIf you encounter any issues related to missing assets or unexpected behavior after making changes, try the following steps:\n\n1. Delete the `tmp` directory located in the root of your project:\n\n```\nrm -rf tmp/\n```\n\nThis can help clear any cached data that might be causing issues.\n\n2. Delete the `public/assets` directory:\n\n```\nrm -rf public/assets/\n```\nThis ensures that any previously precompiled assets are removed, and new ones will be generated during the next precompilation.\n\n#### Database\n\n If you encounter any problems related to data or database inconsistencies, you can follow these steps to reset your database:\n\n1. Ensure Server/Process Shutdown: Make sure that your Rails server or any related processes are not running. You should not have any active connections to the database.\n\n2. Drop the Database:\n\n```\nrake db:drop\n```\n\nor\n\n```\nrails db:drop\n```\n\n3. Recreate the Database [how to](#usage)\n\nAfter dropping the database, you can recreate it from scratch. Run migrations to set up the schema.\n\nIf problems persist, you can refer to the official [Ruby on Rails Guides](https://guides.rubyonrails.org/getting_started.html) for more troubleshooting tips and guidance.\n\n### Tests :heavy_check_mark:\u003ca name=\"tests\"\u003e\u003c/a\u003e\n\nTo run the tests for the Ultimate Recipe Assistant requests and models, ensure you are in the directory containing the test files.\n\n1. Install RSpec:\n\nFind your gemfile and add the RSpec gem in the development, test group:\n\n```\ngroup :development, :test do\n  gem 'rspec-rails'\nend\n```\n\n2. Then in your terminal run the command:\n\n```\nbundle install\n```\n\n3. To set up RSpec in your app and create the Spec folder run:\n\n```\nrails generate rspec:install\n```\n\n4. Run the tests for all the models using the following command:\n\n```\nrspec spec/models\n```\n\n5. Alternatively, you could run tests for any specific suit using the following command (an example for Food model):\n\n```\nrspec spec/models/food.rb\n```\n\n6. All tests should pass without any errors or failures, ensuring that all models and their methods are functioning correctly.\n\n\u003c!-- AUTHORS --\u003e\n\n## 🖋️ Authors \u0026 Contributors\u003ca name=\"authors\"\u003e\u003c/a\u003e\n\n\u003e 👤 **Gardimy Charles**\n\n- GitHub: [@Gardimy](https://github.com/Gardimy)\n- Twitter: [@gardyelontiga45](https://twitter.com/gardyelontiga45)\n- LinkedIn: [Gardimy charles](https://www.linkedin.com/in/gardimycharles/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🌟 Future Features \u003ca name=\"future-features\"\u003e\u003c/a\u003e\n\n- [ ] Infinite scrolling pagination\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## 🤝 Contributing \u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\nI welcome contributions to enhance the functionality and user experience of the Ultimate Recipe Assistant Application. If you have any ideas, suggestions, or bug reports, feel free to open an issue or submit a pull request. Let's share ideas!\n\nIf you'd like to contribute to this project, please follow these steps:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Make your changes and commit them with descriptive commit messages.\n4. Push your changes to your forked repository.\n5. Submit a pull request to the main repository, explaining your changes in detail.\n\nPlease adhere to the coding conventions and guidelines specified in the project.\n\nFeel free to check the [issues page](https://github.com/Gardimy/ror_recipe_app/issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- SUPPORT --\u003e\n\n## 🆘 Support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you encounter any issues or have any questions or suggestions, please open an issue on the [issue tracker](https://github.com/Gardimy/ror_recipe_app/issues).\nFurthermore, if you would like to get in touch with me, you can find our contact information in the \u003ca href=\"#authors\"\u003eAuthors\u003c/a\u003e section.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## 🌲 Acknowledgements \u003ca name=\"acknowledgments\"\u003e\u003c/a\u003e\n\n- I would like to thank the entire community who are always willing to help and contribute.\n\n[Ruby official](https://www.ruby-lang.org/) :  Special thanks to Yukihiro Matsumoto, the creator of the Ruby programming language, for giving me this powerful and elegant tool to build amazing applications. I am also grateful to the Ruby Core Team and the passionate Ruby community for their continuous support and contributions.\n\n[Ruby on Rails](https://rubyonrails.org/): A big thank you to the creators, contributors, and maintainers of the Ruby on Rails framework. Your efforts have empowered countless developers to build powerful and scalable web applications.\n\n\u003c!-- LICENSE --\u003e\n\n## 📄 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT](./MIT.md) licensed.gre\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgardimy%2Fror_recipe_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgardimy%2Fror_recipe_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgardimy%2Fror_recipe_app/lists"}