{"id":22901479,"url":"https://github.com/mateoramirezrubio1/mini-blog-rest-api","last_synced_at":"2026-05-02T03:32:56.221Z","repository":{"id":247388173,"uuid":"825710412","full_name":"MateoRamirezRubio1/mini-blog-rest-api","owner":"MateoRamirezRubio1","description":"A mini blog Django project demonstrating the implementation of the Services and Repositories design pattern for a blog application.","archived":false,"fork":false,"pushed_at":"2024-07-28T09:54:33.000Z","size":43,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T05:42:49.018Z","etag":null,"topics":["api","api-rest","django","django-rest-framework","pytest","python","rest","rest-api","test","testing"],"latest_commit_sha":null,"homepage":"https://mateoramirezr.hashnode.dev/django-services-and-repositories-design-pattern-with-rest-api","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/MateoRamirezRubio1.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-08T10:58:51.000Z","updated_at":"2025-02-03T03:13:26.000Z","dependencies_parsed_at":"2024-07-21T09:46:30.967Z","dependency_job_id":"3a153246-7f13-4052-97f5-45e05b9565d0","html_url":"https://github.com/MateoRamirezRubio1/mini-blog-rest-api","commit_stats":null,"previous_names":["mateoramirezrubio1/mini-blog-rest-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MateoRamirezRubio1/mini-blog-rest-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MateoRamirezRubio1%2Fmini-blog-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MateoRamirezRubio1%2Fmini-blog-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MateoRamirezRubio1%2Fmini-blog-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MateoRamirezRubio1%2Fmini-blog-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MateoRamirezRubio1","download_url":"https://codeload.github.com/MateoRamirezRubio1/mini-blog-rest-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MateoRamirezRubio1%2Fmini-blog-rest-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32522245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"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":["api","api-rest","django","django-rest-framework","pytest","python","rest","rest-api","test","testing"],"created_at":"2024-12-14T01:33:32.207Z","updated_at":"2026-05-02T03:32:56.203Z","avatar_url":"https://github.com/MateoRamirezRubio1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"This project is a Django-based mini blog application designed to illustrate the implementation of the Services and Repositories design pattern. It features a clear separation of concerns, making the codebase easier to maintain and extend.\n\n**You can follow the step by step of the making of the app on my blog: [My blog](https://mateoramirezr.hashnode.dev/django-services-and-repositories-design-pattern-with-rest-api).**\n\u003c/br\u003e\n**You can see the application test here: [Testing App](https://mateoramirezr.hashnode.dev/preview/669dcc8df7b0290261679dad).**\n\n## Features\n- **Posts and Comments:** Users can create, update, and delete blog posts and comments.\n- **RESTful API:** Provides endpoints for interacting with the application programmatically.\n- **Web Interface:** Offers a basic user-friendly interface for managing posts and comments.\n- **Service Layer:** Contains business logic and orchestrates interactions between views and repositories.\n- **Repository Layer:** Encapsulates data access logic, providing a clean API for the service layer.\n- **Django Admin:** Allows administrative management of posts and comments.\n\n## Project Structure\nThe project follows a modular structure, with each app having its own models, views, serializers, services, and repositories.\n\nmy_project_blog/ \u003cbr\u003e\n├── apps/ \u003cbr\u003e\n│   ├── comments/ \u003cbr\u003e\n│   │   ├── models.py \u003cbr\u003e\n│   │   ├── repositories/ \u003cbr\u003e\n│   │   ├── services/ \u003cbr\u003e\n│   │   ├── templates/ \u003cbr\u003e\n│   │   ├── views/ \u003cbr\u003e\n│   ├── posts/ \u003cbr\u003e\n│   │   ├── models.py \u003cbr\u003e\n│   │   ├── repositories/ \u003cbr\u003e\n│   │   ├── services/ \u003cbr\u003e\n│   │   ├── templates/ \u003cbr\u003e\n│   │   ├── urls/ \u003cbr\u003e\n│   │   ├── views/ \u003cbr\u003e\n├── my_project_blog/ \u003cbr\u003e\n│   ├── settings.py \u003cbr\u003e\n│   ├── urls.py \u003cbr\u003e\n│   ├── wsgi.py \u003cbr\u003e\n├── manage.py \u003cbr\u003e\n\n## Architectural pattern\n![PatronArquitectura](https://github.com/MateoRamirezRubio1/mini-blog-rest-api/assets/100296963/c7df2c24-06a5-404c-8349-c635a82bfc93)\n\n## Getting Started\nTo get started with this project, follow these steps:\n\n1. **Clone the repository:**\n```\ngit clone https://github.com/MateoRamirezRubio1/mini-blog-rest-api.git\ncd my_project_blog\n```\n\n2. **Set up a virtual environment:**\n```\npython -m venv venv\nsource `venv\\Scripts\\activate` # This is for windows\n\n```\n\n3. **Install dependencies:**\n```\npip install -r requirements.txt\n```\n\n4. **Apply migrations:**\n```\npython manage.py makemigrations\npython manage.py migrate\n```\n\n5. **Create a superuser:**\n```\npython manage.py createsuperuser\n```\n\n6. **Run the development server:**\n```\npython manage.py runserver\n```\n\n7. **Access the application:** \u003cbr\u003e\nOpen your web browser and go to `http://127.0.0.1:8000/api/posts/` to start creating posts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateoramirezrubio1%2Fmini-blog-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmateoramirezrubio1%2Fmini-blog-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateoramirezrubio1%2Fmini-blog-rest-api/lists"}