This repository contains the source code for the QGIS Resources Hub Web Portal and its Analytics Dashboard, which manage and deliver styles, models, and other resources for the QGIS ecosystem.
- 🌍 https://hub.qgis.org
- 🌍 https://styles.qgis.org
- 🌍 https://projects.qgis.org
- 🌍 https://models.qgis.org
- 🌍 https://3d-models.qgis.org
- 🌍 https://qlr.qgis.org
- 🌍 https://maps.qgis.org
- 🌍 https://hub-analytics.qgis.org
Here you'll find everything you need to build, develop, and contribute to these sites.
This repository is only for the QGIS Resources Hub Web Portal (hub.qgis.org and each resources subdomain) and the related Analytics Dashboard (https://hub-analytics.qgis.org).
If you are looking for the source code or want to contribute to other QGIS websites, please visit their respective repositories below. Each website has its own codebase and contribution process:
- qgis.org (GitHub: QGIS-Website) – QGIS Main Wesite
- feed.qgis.org (GitHub: qgis-feed) – QGIS Resources Hub
- plugins.qgis.org (GitHub: QGIS-Plugins-Website) – QGIS Plugins Repository
- planet.qgis.org (GitHub: QGIS-Planet-Website) – QGIS Planet Blog Aggregator
- members.qgis.org (GitHub: QGIS-Members-Website) – QGIS Sustaining Members Portal
- certification.qgis.org (GitHub: QGIS-Certification-Website) – QGIS Certification Programme Platform
- changelog.qgis.org (GitHub: QGIS-Changelog-Website) – QGIS Changelog Manager
- uc2025.qgis.org (GitHub: QGIS-UC-Website) – QGIS User Conference Website
Table of Contents
This project is licensed under the GPL-2.0 License. See the COPYING file for details.
QGIS-Hub-Website/
├── 🐳 dockerize/ # Docker-related setup and configuration
├── 🖼️ img/ # Images and media assets for this README
├── 🛰️ qgis-app/ # Main Django application source code
├── 🗝️ auth.json # Authentication credentials for the Playwright test
├── 🧪 codecov.yml # Codecov configuration for test coverage reporting
├── 📜 COPYING # Project license file (GPL-2.0)
├── 📘 CONTRIBUTING.md # Contribution guidelines
├── 📘 HUB_API.md # Hub API Documentation
├── 📝 list-vscode-extensions.sh* # Script to list recommended VSCode extensions for Nix shell environment
├── 📖 README.md # Project overview and documentation (this file)
├── 📦 REQUIREMENTS-dev.txt # Python dependencies for development
├── ⚙️ setup.cfg # Flake8 configuration file
├── 🧊 shell.nix # Nix shell environment definition
└── 🖥️ vscode.sh* # VSCode helper script for Nix shell environment
We are fine with using LLM's and Generative Machine Learning to act as general assistants, but the following three guidelines should be followed:
- Repeatability: Although we understand that repeatability is not possible generally, whenever you are verbatim using LLM or Generative Machine Learning outputs in this project, you must also provide the prompt that you used to generate the resource.
- Declaration: Sharing the prompt above is implicit declaration that a machine learning assistant was used. If it is not obvious that a piece of work was generated, include the robot (🤖) icon next to a code snippet or text snippet.
- Validation: Outputs generated by a virtual assistant should always be validated by a human and you, as contributor, take ultimate responsibility for the correct functionality of any code and the correct expression in any text or media you submit to this project.
This application is based on Django, written in Python and deployed on the server using docker-compose.
Below is the Entity-Relationship Diagram (ERD) illustrating the core data model for the QGIS Hub Website.
For a detailed view, click on the image below or see the full-size diagram in erd.svg:
- For full API documentation, see HUB_API.md and the Swagger Documentation.
- The API enables programmatic access to styles, models, and other resources.
- Authentication and usage guidelines are provided in the documentation.
- Contributions and feedback on the API are welcome!
Please refer to the Nix section in CONTRIBUTING.md.
We welcome contributions! Please read the CONTRIBUTING.md for guidelines on how to get started.
Have questions or feedback? Feel free to open an issue or submit a Pull Request!
- Tim Sutton – Original author and lead maintainer of the QGIS Plugins/Hub Website project
- Kontur Team – Responsible for the design of the current theme
- Lova Andriarimalala – Core developer and ongoing maintainer
- QGIS Contributors – See the full list of amazing contributors who have helped make this website possible.
Made with ❤️ by Tim Sutton (@timlinux), Lova Andriarimalala (@Xpirix) and QGIS Contributors.