https://github.com/guitar0-net/backend
REST API for the guitar0.net learning platform powering the web and mobile applications.
https://github.com/guitar0-net/backend
django django-rest-framework guitar0 rest-api
Last synced: 27 days ago
JSON representation
REST API for the guitar0.net learning platform powering the web and mobile applications.
- Host: GitHub
- URL: https://github.com/guitar0-net/backend
- Owner: guitar0-net
- Created: 2025-11-02T10:48:27.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-05-23T15:03:49.000Z (about 1 month ago)
- Last Synced: 2026-05-23T15:23:32.690Z (about 1 month ago)
- Topics: django, django-rest-framework, guitar0, rest-api
- Language: Python
- Homepage: https://api.guitar0.net/api/v1/docs/redoc/
- Size: 438 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSES/AGPL-3.0-or-later.txt
- Security: SECURITY.md
Awesome Lists containing this project
README
# Guitar0 backend
[](https://github.com/guitar0-net/server/actions/workflows/ci.yml)
[](https://codecov.io/gh/guitar0-net/backend)
[](https://python.org)

[](./LICENSES/AGPL-3.0-or-later.txt)
[](https://api.reuse.software/info/github.com/guitar0-net/backend)
REST API backend for the [Guitar0](https://guitar0.net) guitar education platform, serving mobile and web clients.
The service provides user accounts, song and chord libraries, structured guitar courses, and other learning content for mobile and web clients.
## Tech Stack
| Layer | Technology |
| --------- | -------------------------------- |
| Language | Python 3.14 |
| Framework | Django 6 · Django REST Framework |
| Database | PostgreSQL 16 |
| Server | Gunicorn |
| Packaging | PDM |
| Linting | Ruff · Mypy (strict) |
| Testing | pytest · coverage (≥ 90%) |
| Security | Bandit · pip-audit |
## Prerequisites
- Python 3.14+
- [PDM](https://pdm-project.org)
- PostgreSQL 16 — or Docker (see below)
## Quick Start
**Local:**
```bash
cp .env.example .env.development # fill in DB credentials
pdm install
make migrate
make run
```
**Docker:**
```bash
make docker-up
```
API is available at `http://localhost:8000`.
## Development Commands
```
make help list all available commands
make lint ruff + mypy
make test pytest with coverage report
make ci lint + test (mirrors CI pipeline)
make migrate apply migrations
make shell Django shell
make docker-up start app + DB via Docker Compose
make docker-down stop containers
make docker-logs tail logs
```
## Project Structure
```
apps/
accounts/ user accounts
announcements/ news and announcements
chords/ chord library
courses/ courses
lessons/ lessons
songs/ song library
schemes/ fretboard schemes
metrics/ Prometheus metrics endpoint
config/ Django settings and URL routing
infrastructure/ Docker, Ansible, observability
```
## License
[GNU Affero General Public License v3.0 or later](./LICENSES/AGPL-3.0-or-later.txt).
All source files carry SPDX headers and are [REUSE compliant](https://reuse.software).