{"id":21663391,"url":"https://github.com/charlyjazz/graphql-medium-clone","last_synced_at":"2025-04-11T23:43:55.010Z","repository":{"id":39702117,"uuid":"118137923","full_name":"CharlyJazz/GraphQL-Medium-Clone","owner":"CharlyJazz","description":"GraphQL API of a Medium clone. Ready to use in your front end application :star: ","archived":false,"fork":false,"pushed_at":"2023-07-12T16:38:08.000Z","size":533,"stargazers_count":29,"open_issues_count":5,"forks_count":8,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-25T19:41:33.358Z","etag":null,"topics":["apollo","blog","blog-engine","graphql","medium","rails","rbenv","react","ruby","ruby-on-rails"],"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/CharlyJazz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-01-19T14:52:42.000Z","updated_at":"2023-10-31T12:39:47.000Z","dependencies_parsed_at":"2024-01-13T15:47:41.969Z","dependency_job_id":"1fced26c-0066-4ca8-b150-6c768d7f8a23","html_url":"https://github.com/CharlyJazz/GraphQL-Medium-Clone","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/CharlyJazz%2FGraphQL-Medium-Clone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlyJazz%2FGraphQL-Medium-Clone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlyJazz%2FGraphQL-Medium-Clone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlyJazz%2FGraphQL-Medium-Clone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharlyJazz","download_url":"https://codeload.github.com/CharlyJazz/GraphQL-Medium-Clone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248497895,"owners_count":21113983,"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":["apollo","blog","blog-engine","graphql","medium","rails","rbenv","react","ruby","ruby-on-rails"],"created_at":"2024-11-25T10:21:34.520Z","updated_at":"2025-04-11T23:43:54.990Z","avatar_url":"https://github.com/CharlyJazz.png","language":"Ruby","readme":"## \u003ca href=\"https://ibb.co/cuWEim\"\u003e\u003cimg width=\"100%\" src=\"https://preview.ibb.co/kkCy9R/project_logo.png\" alt=\"project_logo\" border=\"0\"\u003e\u003c/a\u003e\n\n[![Build Status](https://travis-ci.org/CharlyJazz/Rails-Graphql-React-Apollo.svg?branch=master)](https://travis-ci.org/CharlyJazz/Rails-Graphql-React-Apollo)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n\nA project to learn a lot of tecnologies and build something awesome and great inspired on Medium the blog website.\n\n**You can use this API to create your own front end to study new frameworks of stacks.**\n\nYou can inspect the API in Graphiql in the url: http://localhost:3000/graphiql\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"650px\" src=\"https://user-images.githubusercontent.com/12489333/253039348-17477d43-0903-49b3-81c5-4d6b91a05eb9.png\"\u003e\n\u003c/p\u003e\n\n## Getting Started\n\nThe easy way to start is to clone this repo, read the prerequisites and then get a Ruby package manager to install everything. We recommend rbenv or RVM to handler this task.\n\n### Prerequisites\n\n- Ruby v2.4.2\n- Gem v2.6.14+\n- Bundler v1.16.1+\n\n### Installing\n\nGet only one package manager and install Ruby depending of your choice\n\n- rbenv - [Install Guide](https://github.com/rbenv/rbenv)\n\n```\n$ rbenv install 2.4.2\n```\n\n- RVM - [Install Guide](https://rvm.io/rvm/install)\n\n```\n$ rvm install 2.4.2\n```\n\n#### Then follow the next instrucctions:\n\n1. Integrate bundler :\n\n```\n$ gem install bundler\n```\n\n2. Go to the Project's directory and install all the dependencies with:\n\n```\n$ bundle install\n```\n\n3. Configurate the Data Base with:\n\n```\n$ rails db:schema:load \u0026\u0026 rails db:seed\n```\n\n### Docker Compose\n\nResource: https://www.digitalocean.com/community/tutorials/containerizing-a-ruby-on-rails-application-for-development-with-docker-compose\n\n```bash\n$ docker-compose up -d\n$ docker-compose exec app bundle exec rake db:setup db:migrate db:seed\n```\n\n\n### How to build the Dockerfile without Docker Compose\n\n```bash\n$ docker run --name database_for_ruby -e POSTGRES_DB=medium_graphql -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:9.4\n$ docker build . -t ruby \u0026\u0026 docker run --env-file ./.env -p 3000:3000 --link database_for_ruby ruby -t ruby_graphql_backend\n```\n\nCheck http://localhost:3000/graphiql\n\n### Built With\n\n- Ruby on Rails\n- Graphql - Query language for APIs\n- JWT\n\n### You can build your own front end, some ideas:\n\n- React - JavaScript library for building user interfaces\n- Apollo - Get everything you need from Graphql.\n- React Native - Cross platform mobile framework\n- Angular\n- Svelte\n- Electron\n\n\n### GraphQL Mutations and Queries:\n\n\n| GraphQL Mutation                                      | Description                                                                                                                                                                                                                                                  |\n|-------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| addOrRemovePostsToCollection                           | Add or remove posts from a collection based on the provided post IDs.                                                                                                                                                                                        |\n| addOrRemoveTagsToPost                                 | Add or remove tags from a post based on the provided tag IDs.                                                                                                                                                                                                |\n| createBookmark                                        | Create a bookmark to save a post for later reading.                                                                                                                                                                                                          |\n| createClap                                            | Add claps to a post with the specified number of claps.                                                                                                                                                                                                     |\n| createCollection                                      | Create a collection and add posts to it.                                                                                                                                                                                                                    |\n| createComment                                         | Create a comment on a post.                                                                                                                                                                                                                                 |\n| createPost                                            | Create a new post with the specified title, body, picture, topic, and tags.                                                                                                                                                                                 |\n| createUser                                            | Create a new user with the provided username, first name, last name, bio, picture, and credentials.                                                                                                                                                       |\n| deleteBookmark                                        | Permanently delete a bookmark with the provided ID.                                                                                                                                                                                                         |\n| deleteCollection                                      | Permanently delete a collection with the provided ID.                                                                                                                                                                                                       |\n| deleteComment                                         | Permanently delete a comment with the provided ID.                                                                                                                                                                                                          |\n| deletePost                                            | Permanently delete a post with the provided ID.                                                                                                                                                                                                             |\n| editCollection                                        | Edit the title, description, and/or picture of a collection.                                                                                                                                                                                                |\n| editComment                                           | Edit the body of a comment.                                                                                                                                                                                                                                 |\n| editPost                                              | Edit the title, body, picture, and/or topic of a post.                                                                                                                                                                                                      |\n| refreshPassword                                       | Update the password using an email, password, and token for password recovery.                                                                                                                                                                              |\n| signInUser                                            | Authenticate a user using email and password and retrieve a token.                                                                                                                                                                                          |\n| updateToken                                           | Update the token for password recovery using the email.                                                                                                                                                                                                     |\n\n| GraphQL Query                                         | Description                                                                                                                                                                                                                                                  |\n|-------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| allCollections                                        | Get all collections based on the provided filter.                                                                                                                                                                                                           |\n| allPosts                                              | Get all posts based on the provided filter.                                                                                                                                                                                                                 |\n| allTags                                               | Get all tags based on the provided filter.                                                                                                                                                                                                                  |\n| allTopics                                             | Get all topics.                                                                                                                                                                                                                                             |\n| allUsers                                              | Get all users based on the provided filter.                                                                                                                                                                                                                 |\n| searchBookmark                                        | Search for a bookmark with the provided ID.                                                                                                                                                                                                                 |\n| searchCollection                                      | Search for a collection with the provided ID.                                                                                                                                                                                                               |\n| searchComment                                         | Search for a comment with the provided ID.                                                                                                                                                                                                                  |\n| searchPost                                            | Search for a post with the provided ID.                                                                                                                                                                                                                     |\n| searchTopic                                           | Search for a topic with the provided ID.                                                                                                                                                                                                                    |\n| searchUser                                            | Search for a user with the provided ID or username.                                                                                                                                                                                                         |\n\n### Project Status\n\nBackend ready to use, tested. But you can improve this, some ideas:\n\n- Cache Strategies\n- Send emails for events like register, recover password.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlyjazz%2Fgraphql-medium-clone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlyjazz%2Fgraphql-medium-clone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlyjazz%2Fgraphql-medium-clone/lists"}