{"id":42487073,"url":"https://github.com/joshkotrous/devume-backend","last_synced_at":"2026-01-28T11:29:52.141Z","repository":{"id":231975958,"uuid":"780713581","full_name":"joshkotrous/devume-backend","owner":"joshkotrous","description":"The backend API for the Devumé application. Built with Python and Django REST Framework. ","archived":false,"fork":false,"pushed_at":"2024-06-04T07:39:09.000Z","size":13629,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-04T08:57:32.833Z","etag":null,"topics":["api","backend","django","django-rest-framework","python","webapp"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/joshkotrous.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-04-02T02:43:45.000Z","updated_at":"2024-06-04T07:35:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"027ab5ac-e000-4154-98cb-25d5245422d5","html_url":"https://github.com/joshkotrous/devume-backend","commit_stats":null,"previous_names":["joshkotrous/devume-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joshkotrous/devume-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshkotrous%2Fdevume-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshkotrous%2Fdevume-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshkotrous%2Fdevume-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshkotrous%2Fdevume-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshkotrous","download_url":"https://codeload.github.com/joshkotrous/devume-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshkotrous%2Fdevume-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28845088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T10:53:21.605Z","status":"ssl_error","status_checked_at":"2026-01-28T10:53:20.789Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","backend","django","django-rest-framework","python","webapp"],"created_at":"2026-01-28T11:29:51.468Z","updated_at":"2026-01-28T11:29:52.136Z","avatar_url":"https://github.com/joshkotrous.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build](https://github.com/joshkotrous/devume-backend/actions/workflows/ci.yml/badge.svg)\n![Code Quality](https://github.com/joshkotrous/devume-backend/actions/workflows/code_quality.yml/badge.svg)\n[![codecov](https://codecov.io/gh/joshkotrous/devume-backend/graph/badge.svg?token=Y1D5M3L4OW)](https://codecov.io/gh/joshkotrous/devume-backend)\n# Devumé\n## Prerequisites\n1. Python 3.10\n2. PostgreSQL\n\n## Database Setup\n1. [Install PostgreSQL](https://www.postgresql.org/download/)\n2. Start PostgreSQL\n`brew services start postgresql`\n3. Access the PostgreSQL CLI\n`psql -U postgres`\n4. Create the database\n`CREATE DATABASE \u003cdatabase_name\u003e;`\n\n## Project Setup\n1. [Install Python 3.10](https://www.python.org/downloads/release/python-31014/)\n2. Clone the project\n3. Open the project in a terminal and create a Python virtual environment\n`python -m venv venv`\n4. Activate your virtual environment\n`source venv/bin/activate`\n5. Install dependencies\n`pip install -r requirements.txt`\n6. Create your `.env` file\n`cp .env.development .env`\n7. Configure your `.env` variables\n8. Create a super user\n`python manage.py createsuperuser`\n9. Migrate database models\n`python manage.py makemigrations`\n`python manage.py migrate`\n10. Run the server\n`python manage.py runserver`\n\n## Where are things?\n```.\n├── app\n└── devume\n    ├── authentication\n    ├── models\n    ├── permissions\n    ├── serializers\n    ├── tests\n    ├── utils\n    └── views\n```\n- `app` - Contains `settings.py` and `urls.py`\n- `devume/authentication` - custom authentication classes for API key authentication and bearer token authentication\n- `devume/models` - database models\n- `devume/permissions` - custom permission classes\n- `devume/serializers` - data serializers for each models\n- `devume/tests` - unit tests. Can be run with\n`python manage.py test`. Tests are run upon opening a PR and coverage is reported to CodeCov\n- `devume/utils` - utility functions. Contains general exception handler\n- `devume/views` - all application views\n\n\n## Authenticating Requests\nDevumé supports Bearer Token authentication, session authentication, and API key authentication. For most requests, you will need to use API key authentication. In order to generate an API key:\n1. Get the Bearer token for your super user with `POST http://localhost:8000/api/token` with your username and password in the JSON body:\n```\n{\n    'username': \u003cSuperUserUsername\u003e,\n    'password': \u003cSuperUserPassword\u003e\n}\n```\n2. Create an API key using your bearer token for authentication with\n`POST http://localhost:8000/api/key/create`\n\n3. The API key can be used within a `x-api-key` header stored in the frontend `.env` for authentication or for testing requests\n\n## Pre-commit hooks\nPre-commit is configured to run Flake8 and Black to ensure code consistency.\n\n## Contributing\nAnyone is welcome to contribute to this repository. If you'd like to contribute, please review the open issues and open a corresponding PR for your change. Pre-commit hooks will be run upon opening your PR and will be required to pass before it can be merged.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshkotrous%2Fdevume-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshkotrous%2Fdevume-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshkotrous%2Fdevume-backend/lists"}