{"id":17562480,"url":"https://github.com/developertariq/my-blog","last_synced_at":"2025-03-29T12:11:26.090Z","repository":{"id":152421936,"uuid":"620355561","full_name":"developertariq/my-blog","owner":"developertariq","description":"Blog app will be a classic example of a blog website. I will create a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts. Everything will be based on the given UML class diagram. The data will be stored in postgreSQL database.","archived":false,"fork":false,"pushed_at":"2023-04-19T06:35:11.000Z","size":559,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-02-04T12:48:39.970Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developertariq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE/MIT.md","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-03-28T14:16:50.000Z","updated_at":"2023-04-06T08:01:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"c57d9dc2-8ccf-45d8-a538-265d10900291","html_url":"https://github.com/developertariq/my-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developertariq%2Fmy-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developertariq%2Fmy-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developertariq%2Fmy-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developertariq%2Fmy-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developertariq","download_url":"https://codeload.github.com/developertariq/my-blog/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246180923,"owners_count":20736460,"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":[],"created_at":"2024-10-21T12:43:50.352Z","updated_at":"2025-03-29T12:11:26.066Z","avatar_url":"https://github.com/developertariq.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📗 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    - [Run](#run)\n    - [Test](#test)\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# 📖 Blog app \u003ca name=\"about-project\"\u003e\u003c/a\u003e\n\n**Blog app** will be a classic example of a blog website. I will create a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts. Everything will be based on the given UML class diagram. The data will be stored in postgreSQL database. \n\nThe project is divided in eleven (11) milestones and one exercise.\n\n- Milestone 1: Setup and controllers\n- Milestone 2: Controllers specs\n- Milestone 3: Creating a data model\n- Milestone 4: Processing data in models\n- Milestone 5: Views\n- Milestone 6: Forms\n- Milestone 7: Validations, Model specs, and n+1 problems\n- Milestone 8: Add Devise\n- Milestone 9: Add authorization rules\n- Milestone 10: Integration specs for views\n- Milestone 11: Add API endpoints\n- Exercise: API documentation\n  \nThe app is built to match the following Entity Relationship Diagram:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./images/blog_app_erd.png\" alt=\"Data model\"  width=\"500px\"  /\u003e\n\u003c/p\u003e\n\nThis project is designed following these wireframes:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./images/blog_login.png\" alt=\"Login page wireframe\" width=\"250px\" /\u003e\n  \u003cimg src=\"./images/blog_root_users.png\" alt=\"All users page wireframe\"  width=\"250px\"  /\u003e\n  \u003cimg src=\"./images/blog_user_page.png\" alt=\"Single user page wireframe\"  width=\"250px\"  /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./images/blog_user_all_posts.png\" alt=\"All posts by a given user page wireframe\"  width=\"250px\"  /\u003e\n  \u003cimg src=\"./images/blog_single_post.png\" alt=\"Single post page wireframe\"  width=\"250px\"  /\u003e\n\u003c/p\u003e\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\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://www.rubyonrails.org/\"\u003eRuby on Rails\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.postgresql.org/\"\u003ePostgreSQL\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n### Key Features \u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n- Create a post\n- List all posts by users\n- Post details\n- User details\n- Like posts\n- Comment posts\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 💻 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n\n### Prerequisites\n\n\n  * Make sure you have Ruby installed in your system. You can install it [here](https://www.ruby-lang.org/en/documentation/installation/)\n\n  * Get started with [Ruby on Rails](https://guides.rubyonrails.org/getting_started.html).\n\n  * Make sure you have [PostgreSQL](https://www.postgresql.org/) installed and running.\n\n### Setup\n\n  * Clone this repository by running `git clone https://github.com/developertariq/my-blog` in your command line.\n\n  * Navigate to the repository by running `cd my-blog`.\n\n  * Run `bundle install` to install all the gems.\n### Run\n  *  Change/include `host, username, password` according to your database server.\n  *  Run `rails db:create` and `rails db:migrate`\n  *  Run `rails db:seed` to populate the database with some sample data.\n  *  Run `rails s` to start the server.\n  *  In your browser, go to `http://localhost:3000`.\n\n### Test\n\n  * Run `gem install rspec` to install Rspec,\n  * Run `rspec spec` to run all the test cases, and\n  * Run `rspec spec/models` to run test cases for `models`.\n  * Run `rspec spec/requests` to run test cases for `controllers`.\n  * Run `rspec spec/features` to run test cases for `views`.\n  * Run `rspec spec/filepath/filename.rb` to run test cases individually.\n     \n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 👥 Authors \u003ca name=\"authors\"\u003e\u003c/a\u003e\n\n👤 **Md Tariq-ul Islam**\n\n- GitHub: [@developertariq](https://github.com/developertariq)\n- Twitter: [@developer-tariq](https://twitter.com/developer_tariq)\n- LinkedIn: [@developer_tariq](https://www.linkedin.com/in/developer-tariq/)\n\n👤 **Newton Alumasa**\n\n- [Github](https://github.com/altontonn/)\n- [Twitter](https://twitter.com/AlumasaNewton)\n- [Linkedin](https://www.linkedin.com/in/newton-alumasa/)\n  \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- [ ] **Optimized Database**\n- [ ] **Better UI Experience**\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\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](../../issues/).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you like this project, please consider giving it a star.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\n- I would like to thank all code reviewers for making this project better.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 📝 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT](./LICENSE/MIT.md) licensed.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopertariq%2Fmy-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopertariq%2Fmy-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopertariq%2Fmy-blog/lists"}