{"id":21199145,"url":"https://github.com/nitbravoa92/blog-app","last_synced_at":"2025-09-28T14:31:27.893Z","repository":{"id":195675412,"uuid":"693302251","full_name":"NitBravoA92/blog-app","owner":"NitBravoA92","description":"Blog App is a website built with Ruby on Rails and PostgreSQL that allows users to create and publish posts, write comments, and like posts.","archived":false,"fork":false,"pushed_at":"2023-10-06T23:49:42.000Z","size":253,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-04-05T11:22:39.361Z","etag":null,"topics":["mvc-architecture","object-oriented-programming","postgresql-database","rspec","ruby","ruby-on-rails","solid-principles"],"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/NitBravoA92.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-09-18T18:52:48.000Z","updated_at":"2023-10-03T17:49:59.000Z","dependencies_parsed_at":"2023-09-19T06:52:09.057Z","dependency_job_id":"afaaa2d7-88f0-45d2-b632-d04263adb44e","html_url":"https://github.com/NitBravoA92/blog-app","commit_stats":null,"previous_names":["nitbravoa92/blog-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NitBravoA92/blog-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitBravoA92%2Fblog-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitBravoA92%2Fblog-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitBravoA92%2Fblog-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitBravoA92%2Fblog-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NitBravoA92","download_url":"https://codeload.github.com/NitBravoA92/blog-app/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitBravoA92%2Fblog-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277379954,"owners_count":25808429,"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","status":"online","status_checked_at":"2025-09-28T02:00:08.834Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["mvc-architecture","object-oriented-programming","postgresql-database","rspec","ruby","ruby-on-rails","solid-principles"],"created_at":"2024-11-20T19:57:02.731Z","updated_at":"2025-09-28T14:31:27.529Z","avatar_url":"https://github.com/NitBravoA92.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003cb\u003eBlog App | Ruby on Rails Project\u003c/b\u003e\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n# 📗 Table of Contents\n\n- [📗 Table of Contents](#-table-of-contents)\n- [Blog App ](#blog-app-)\n  - [🛠 Built With ](#-built-with-)\n    - [Tech Stack ](#tech-stack-)\n    - [Key Features ](#key-features-)\n  - [💻 Getting Started ](#-getting-started-)\n    - [Prerequisites](#prerequisites)\n    - [Setup](#setup)\n    - [Install](#install)\n    - [Usage](#usage)\n    - [Run tests](#run-tests)\n  - [👥 Authors ](#-authors-)\n  - [🔭 Future Features ](#-future-features-)\n  - [🤝 Contributing ](#-contributing-)\n  - [⭐️ Show your support ](#️-show-your-support-)\n  - [🙏 Acknowledgments ](#-acknowledgments-)\n  - [📝 License ](#-license-)\n\n---\n\n\u003c!-- PROJECT DESCRIPTION --\u003e\n\n# Blog App \u003ca name=\"about-project\"\u003e\u003c/a\u003e\n\n**\"Blog App\"** is a website built with Ruby on Rails and PostgreSQL that allows users to create and publish posts, write comments, and like posts.\n\n---\n\n## 🛠 Built With \u003ca name=\"built-with\"\u003e\u003c/a\u003e\n\n### Tech Stack \u003ca name=\"tech-stack\"\u003e\u003c/a\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eBackend\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://guides.rubyonrails.org/\"\u003eRuby on Rails (v7.0.8)\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.postgresql.org/docs/\"\u003ePostgreSQL\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFrontend\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.w3schools.com/html/\"\u003eHTML5\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.w3schools.com/css/\"\u003eCSS\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.rubyguides.com/2018/11/ruby-erb-haml-slim/\"\u003eERB template\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003c!-- Features --\u003e\n\n### Key Features \u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n\u003cul\u003e\n  \u003cli\u003eRuby on Rails framework\u003c/li\u003e\n  \u003cli\u003e\n    Use Linters to check code quality\n    \u003cul\u003e\n      \u003cli\u003eRubocop\u003c/li\u003e\n      \u003cli\u003eStylelint\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eMVC architectural/design pattern\u003c/li\u003e\n  \u003cli\u003eData persistent in PostgreSQL\u003c/li\u003e\n  \u003cli\u003eTest the application with rspec and capybara gems\u003c/li\u003e\n  \u003cli\u003eAuthentication system build with devise gem\u003c/li\u003e\n  \u003cli\u003eAuthorization rules using CanCanCan gem\u003c/li\u003e\n  \u003cli\u003eRESTful API\u003c/li\u003e\n  \u003cli\u003eFollow Microverse's list of best practices\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---\n\n\u003c!-- GETTING STARTED --\u003e\n\n## 💻 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n\nTo get a local copy up and running, follow these steps.\n\n### Prerequisites\n\nIn order to run this project you need:\n\n\u003cul\u003e\n    \u003cli\u003e\u003cp\u003eA code editor (we recommend Visual Studio Code)\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cp\u003eGit and a GitHub account\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cp\u003eMailCatcher (This is optional)\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n### Setup\n\nClone this repository to your desired folder by using this 👇️ command :\n\n```\ngit clone https://github.com/NitBravoA92/blog-app.git\n```\n\n### Install\n\nGo to the project directory:\n\n```\n cd blog-app\n```\n\nBefore to run the program, verify that you have Ruby on Rails installed on your OS running the following command:\n\n```\n rails --version\n```\n\nIt should show you the version of ruby on rails ​​installed. If this does not happen and only an error message is displayed, then you should either verify your installation or install Ruby on Rails from scratch.\n\n[Download and Install Ruby on Rails](https://guides.rubyonrails.org/getting_started.html)\n\nOnce you have verified that you have Ruby on Rails installed, run the following command to install the necessary gems:\n\n```\n bundle install\n```\n\nAfter installing the gems, run the following command to create the database:\n\n```\n rails db:create\n```\n\nThen run the following command to migrate the database:\n\n```\n rails db:migrate\n```\n\n**Note:** This is completely optional but if you want to test the functionality of sending confirmation email and password reset locally, it is recommended that you install the `MailCatcher` gem. This tool runs a super simple SMTP server which catches any message sent to it to display in a web interface.\n\nTo install it, it is as simple as running the following command in your terminal:\n\n```\n gem install mailcatcher\n```\n\nOnce installed, run the following command to start the server:\n\n```\n mailcatcher\n```\n\nThis will start the local SMTP server on port 1025. You can now open your browser and go to http://localhost:1080/ to see the messages sent to the SMTP server.\n\nSo when you register a new user in the application, a confirmation email will automatically be sent to the user which you can check in your mailcatcher inbox. Emails for password reset can also be verified in mailcacher.\n\n\nIf you want to know more about this gem, visit its official documentation: [Mailcacher](https://mailcatcher.me/)\n\n### Usage\n\nRun the following command inside the project folder to start the application:\n\n```\n rails s\n```\n\nThis will start the application on your local server. You can now open your browser and go to http://localhost:3000/ to see the application running.\n\n### Run tests\n\nTo execute the tests, run the following command inside the project folder:\n\n```\n rspec\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- AUTHORS --\u003e\n\n## 👥 Authors \u003ca name=\"authors\"\u003e\u003c/a\u003e\n\n👤 **Nitcelis Bravo**\n\n- GitHub: [Nitcelis Bravo](https://github.com/NitBravoA92)\n- Twitter: [@softwareDevOne](https://twitter.com/softwareDevOne)\n- LinkedIn: [Nitcelis Bravo Alcala](https://www.linkedin.com/in/nitcelis-bravo-alcala-b65340158)\n\n👤 **Cesar Herrera**\n-   GitHub: [@CesarHerr](https://github.com/CesarHerr)\n-   LinkedIn: [Cesarherr](https://www.linkedin.com/in/cesarHerr/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- FUTURE FEATURES --\u003e\n\n## 🔭 Future Features \u003ca name=\"future-features\"\u003e\u003c/a\u003e\n\nUpcoming improvements:\n\n- [x] Creating a data model\n- [x] Processing data in models\n- [x] Validations and model specs\n- [x] Controllers\n- [x] Views\n- [x] Add Forms to create a new post and comments\n- [x] Add the functionality to save likes\n- [x] Add the integration tests using capybara gem\n- [x] Authentication using devise gem\n- [x] Authorization using CanCanCan gem\n- [x] Add API endpoints for posts and comments\n- [ ] Create the API documentation using rswag\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## 🤝 Contributing \u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\nContributions, issues, and feature requests are welcome!\n\nFeel free to check the [issues page](https://github.com/NitBravoA92/blog-app/issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- SUPPORT --\u003e\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you like this project and know someone who might find it helpful, please share it.\nOr give it a **star** ⭐️ if you like this project!\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\nI thank Microverse for this fantastic opportunity, and the code reviewers for their advice and time.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003c!-- LICENSE --\u003e\n\n## 📝 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT](./LICENSE) licensed.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitbravoa92%2Fblog-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitbravoa92%2Fblog-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitbravoa92%2Fblog-app/lists"}