{"id":19227820,"url":"https://github.com/aleksac/drf-starter","last_synced_at":"2025-04-21T01:31:47.368Z","repository":{"id":48904729,"uuid":"266388886","full_name":"AleksaC/drf-starter","owner":"AleksaC","description":"Opinionated yet extensible Django Rest Framework boilerplate","archived":true,"fork":false,"pushed_at":"2021-07-06T08:13:40.000Z","size":316,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-17T08:33:32.945Z","etag":null,"topics":["django","django-rest-framework","project-template","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AleksaC.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}},"created_at":"2020-05-23T17:45:17.000Z","updated_at":"2024-07-18T22:22:19.000Z","dependencies_parsed_at":"2022-09-23T23:34:09.997Z","dependency_job_id":null,"html_url":"https://github.com/AleksaC/drf-starter","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/AleksaC%2Fdrf-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AleksaC%2Fdrf-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AleksaC%2Fdrf-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AleksaC%2Fdrf-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AleksaC","download_url":"https://codeload.github.com/AleksaC/drf-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249982536,"owners_count":21355714,"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","django-rest-framework","project-template","rest-api"],"created_at":"2024-11-09T15:25:30.655Z","updated_at":"2025-04-21T01:31:47.012Z","avatar_url":"https://github.com/AleksaC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# drf-starter\n\n[![license](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/AleksaC/drf-starter/blob/master/LICENSE)\n[![drf-starter](https://circleci.com/gh/AleksaC/drf-starter.svg?style=svg)](https://circleci.com/gh/AleksaC/drf-starter)\n[![Coverage Status](https://coveralls.io/repos/github/AleksaC/drf-starter/badge.svg?branch=master\u0026t=sEMXG5)](https://coveralls.io/github/AleksaC/drf-starter?branch=master)\n\u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\u003c/a\u003e\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/AleksaC/drf-starter/blob/master/.pre-commit-config.yaml)\n\n## About 📖\n\nThis repository contains [Django Rest Framework](https://github.com/encode/django-rest-framework/tree/master)\nboilerplate I use as a starting point for building most of my REST APIs.\n\n### Architecture 📏\nWhile I'm vaguely familiar with many design patterns and approaches to building\nsoftware I do not strictly adhere to any of them. I follow best practices for\nobvious stuff and do what makes sense to me for the less obvious stuff.\n\n### Code style 💅\nI'm mostly sticking to PEP8 guidelines and Django style guide. The tools I use\nfor maintaining the style are black, flake8 and isort. I've set up pre-commit\nhooks that make sure all the rules are followed on each commit. This is also a\npart of the CI pipeline.\n\n### Dependencies\nI like keeping the number of dependencies in my project as low as possible.\nHowever django has rich ecosystem of high-quality, well-maintained third party\napps with few dependencies themselves which makes them pretty safe to use.\n[Dependabot](https://dependabot.com/) is in charge of keeping all the\ndependencies up to date.\n\n### Testing 👩‍🔬\nI prefer using `pytest` on my other projects, but I haven't found enough\ncompelling reasons to use it over django's built-in testing system. Since from\nmy experience a project that doesn't start out with a decent test coverage\nrarely ever reaches it I tried to provide test for everything that I thought\nshould be tested. Tests are included in CI. To run them locally use:\n```shell script\n./runtests.sh\n```\n\n## Future improvements\n\nI'm currently building a templating engine for Python projects and I'll use it\nfor this project (I could've used cookiecutter but there are several problems\nwith it which my engine will solve). I'm testing out azure pipelines and may use\nthem in future instead of CircleCI. I'm also working on a few drf projects so\nall relevant improvements in those projects will also be integrated here.\n\n## Say hi 🙋‍♂️\n- [Personal website](https://aleksac.me)\n- \u003ca target=\"_blank\" href=\"http://twitter.com/aleksa_c_\"\u003e\u003cimg alt='Twitter followers' src=\"https://img.shields.io/twitter/follow/aleksa_c_.svg?style=social\"\u003e\u003c/a\u003e\n- aleksacukovic1@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleksac%2Fdrf-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faleksac%2Fdrf-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faleksac%2Fdrf-starter/lists"}