{"id":18894290,"url":"https://github.com/ramzitannous/medium-graphql-backend","last_synced_at":"2025-04-15T00:32:04.714Z","repository":{"id":40256156,"uuid":"365323449","full_name":"ramzitannous/medium-graphql-backend","owner":"ramzitannous","description":"Graphql Medium like backend server using django \u0026 graphene","archived":false,"fork":false,"pushed_at":"2021-12-18T21:35:47.000Z","size":884,"stargazers_count":68,"open_issues_count":1,"forks_count":28,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T13:02:37.829Z","etag":null,"topics":["django","graphene","graphene-django","graphql","postgresql","pytest","pytest-django","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ramzitannous.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-07T18:39:16.000Z","updated_at":"2024-11-12T05:08:11.000Z","dependencies_parsed_at":"2022-06-27T06:05:47.891Z","dependency_job_id":null,"html_url":"https://github.com/ramzitannous/medium-graphql-backend","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/ramzitannous%2Fmedium-graphql-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramzitannous%2Fmedium-graphql-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramzitannous%2Fmedium-graphql-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramzitannous%2Fmedium-graphql-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ramzitannous","download_url":"https://codeload.github.com/ramzitannous/medium-graphql-backend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248984426,"owners_count":21193750,"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":["django","graphene","graphene-django","graphql","postgresql","pytest","pytest-django","python"],"created_at":"2024-11-08T08:20:38.761Z","updated_at":"2025-04-15T00:32:01.884Z","avatar_url":"https://github.com/ramzitannous.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n \n# [Graphql RealWorld Example App] \n\n\n\u003e ### [Graphene-Django](https://docs.graphene-python.org/projects/django/en/latest/#graphene-django) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld) spec and API.\n\nA Graphql server implementation using [Graphene-Django](https://docs.graphene-python.org/projects/django/en/latest/#graphene-django)\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/logo.png\" height=\"200\" width=\"400\"/\u003e\n\nThis codebase was created to demonstrate a fully fledged fullstack application built with Django including CRUD operations, authentication, routing, pagination, and more.\n\nFor more information on how to this works with other frontends/backends, head over to the [RealWorld](https://github.com/gothinkster/realworld) repo.\n## Screenshots\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/example_images/article_query.png\" width=\"800\" height=\"400\"/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/example_images/add_article.png\" width=\"800\" height=\"400\"/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/example_images/add_comment.png\" width=\"800\" height=\"400\"/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/example_images/get_profile.png\" width=\"800\" height=\"400\"/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/ramzitannous/medium-graphql-backend/master/example_images/current_user.png\" width=\"800\" height=\"400\"/\u003e\n\n# How it works\nA Graphql Implementation using facebook relay specs\n\nFull graphql schema can be found at [`schema.graphql`](https://github.com/ramzitannous/medium-graphql-backend/blob/master/schema.graphql)\n\n**Folder Structure:**\n1) `core`: contains all core functionalites ex (BaseModel, BaseMutation)\n2) `users` contains user related mutation, models, types, queries\n3) `articles` contains all article related models, mutation, types, queries\n4) `tests` all test related stuff\n5) `medium` contains all django urls, settings, and others.\n\n# Getting started\n\n1) Install dependancies\n`poetry install`\n\n2) create `.env` file with this content\n`DEBUG=True ` \n`SECRET_KEY=test-secret-key`\n `DATABASE_URL=postgresql://postgres:password@localhost:5432/medium`\n 3) run migration\n `poetry run python manage.py migrate`\n4) run server\n`poetry  run python manage.py runserver 8000`\n5) open graphql playground using http://localhost:8000/playground\n6) to connect to it via API use http://localhost:8000/graphql\n\n\n## Third Party Packages\n1) `graphene-django`: Add Graphql to a django server\n2) `python-decouple`: manage django settings using .env file\n3) `django-graphql-jwt`: Add JWT authentication\n4) `graphene-django-optimizer`: Optimize database queries to avoid N+1 problem\n5) `graphene-file-upload`: Add mutlipart file upload mutations to graphene\n\n## Testing\nsome tests were added to `tests` directory, packages used for testing:\n1) `pytest`\n2) `pytest-django`\n3) `factory-boy`\n****\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framzitannous%2Fmedium-graphql-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framzitannous%2Fmedium-graphql-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framzitannous%2Fmedium-graphql-backend/lists"}