Skip to content

qgis/QGIS-Plugins-Website

🌐 QGIS Plugins Website DPG Badge

image

👋 Welcome to plugins.qgis.org!

This repository hosts the source code for the official QGIS Plugins Repository Website:
🌍 https://plugins.qgis.org

Here you'll find everything you need to build, develop, and contribute to the QGIS Plugins Website.

⚠️ Note on Other QGIS Websites

This repository is only for the main QGIS Plugins Repository Website (plugins.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:

For issues related to specific plugins or other concerns, please use their respective bug tracker (see the metadata/details of the concerned plugin).

-----------------------------------------------------

📖 Table of Contents

Table of Contents
  1. 🚀 Project Overview
  2. 🚥 QA Status
  3. 📜 License
  4. 📂 Folder Structure
  5. 🤖 Using 'AI' (Large Language Models)
  6. 🛠️ Tech Stack
  7. 🗄️ Data Model
  8. 🔑 Token-based Authentication
  9. 🧊 Using the Nix Shell
  10. ✨ Contributing
  11. 🙋 Have Questions?
  12. 🧑‍💻👩‍💻 Contributors

-----------------------------------------------------

🚀 Project Overview

Overview

-----------------------------------------------------

🚥 QA Status

🪪 Badges

Badge Description
Lint and Django Unit Tests Lint and Django Unit Tests
Build and Push Docker Image to DockerHub Build and Push Docker Image to DockerHub
Website Status Website availability status
License Repository license
Open issues count
Closed issues count
Open pull requests count
Closed pull requests count

⭐️ Project Stars

Stars

-----------------------------------------------------

📜 License

This project is licensed under the GPL-2.0 License. See the COPYING file for details.

-----------------------------------------------------

📂 Folder Structure

QGIS-Plugins-Website/
├── 🐳 dockerize/               # Docker-related setup and configuration
├── 🖼️ img/                     # Images and media assets for this README
├── 🤖 playwright/              # End-to-end tests using Playwright
├── 🛰️ 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
├── 📝 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

-----------------------------------------------------

🤖 Using 'AI' (Large Language Models)

We are fine with using LLM's and Generative Machine Learning to act as general assistants, but the following three guidelines should be followed:

  1. 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.
  2. 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.
  3. 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.

-----------------------------------------------------

🛠️ Tech Stack

image

This application is based on Django, written in Python and deployed on the server using docker-compose.

-----------------------------------------------------

🗄️ Data Model

Below is the Entity-Relationship Diagram (ERD) illustrating the core data model for the QGIS Plugins Website.
For a detailed view, click on the image below or see the full-size diagram in erd.svg:

ERD

-----------------------------------------------------

🔑 Token-based Authentication

Users can generate a Simple JWT token by providing their credentials, which can then be utilized to access endpoints requiring authentication. Users can create specific tokens for a plugin at https://plugins.qgis.org/<package_name>/tokens/.

# A specific plugin token can be used to upload or update a plugin version. For example:
curl \
  -H "Authorization: Bearer the_access_token" \
  https://plugins.qgis.org/plugins/api/<package_name>/version/add/

curl \
  -H "Authorization: Bearer the_access_token" \
  https://plugins.qgis.org/plugins/api/<package_name>/version/<version>/update

-----------------------------------------------------

🧊 Using the Nix Shell

Please refer to the Nix section in CONTRIBUTING.md.

-----------------------------------------------------

✨ Contributing

We welcome contributions! Please read the CONTRIBUTING.md for guidelines on how to get started.

-----------------------------------------------------

🙋 Have Questions?

Have questions or feedback? Feel free to open an issue or submit a Pull Request!

-----------------------------------------------------

🧑‍💻👩‍💻 Contributors

  • Tim Sutton – Original author and lead maintainer of the QGIS Plugins 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.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 35