- Python 60.7%
- HTML 35.7%
- Dockerfile 3.4%
- CSS 0.2%
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .markdownlint.rb | ||
| .pre-commit-config.yaml | ||
| CONTRIBUTING.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
QPortal
This repository houses the code for the QPortal project.
Development
This project was based on the Lithium starter template.
Linters and Checkers
Frontend stuff
Django Plugins
Getting Started
Most of the project's configuration done through environment variables as outlined by the 12-factor guide. During development, these can be set by creating a .env file (by copying the .env.example, for example). When the app is deployed, the environment variables should be set/injected by the underlying platform.
Every developer is free to setup their development environment as they please. The following example assumes the following:
- Development is done locally, not through a (dev)container
- For now, a sqlite database is used when working locally until a more advanced database is required
- uv is used as package manager
- Your shell has the (uv) virtualenv activated (otherwise just prefix all commands with
uv run) - pre-commit is configured to check the code before you commit
- You have some Django knowledge (or are willing to learn)
# Install the project
uv sync && source .venv/bin/activate
# Setup pre-commit so we don't forget it later on
pre-commit install --install-hooks
# Run the database migrations
python manage.py migrate
# Create a superuser
python manage.py createsuperuser
# Run the devserver
python manage.py runserver
You can know open the project in your browser via the URLs in the output.
django-allauth
django-allauth is configured as the authentication plugin. Its most important setup can be found in the projects settings.py. At the moment is configured to only allow loging in via (Qstars) Google. When someone logs in for the firt time it will create a new user in the database.
Commits
Commits should follow the Conventional Commits standard.