Implement Sponsors Program Support
- Dominant language
- Python
- Stars
- 451
- Forks
- 707
- Avg merge
- 22h 59m
- Merged PRs (30d)
- 91
Description
Community & Support: [LinkedIn Group](https://www.linkedin.com/groups/14656108/) · [Slack #project-nest](https://owasp.slack.com/archives/project-nest)
Active project leaders: Arkadii Yakovets -- [GitHub](https://github.com/arkid15r/) · [LinkedIn](https://www.linkedin.com/in/arkid15r/) · [Slack](https://owasp.slack.com/team/U060W3NKLTF); Kate Golovanova -- [GitHub](https://github.com/kasya/) · [LinkedIn](https://www.linkedin.com/in/kate-golovanova/) · [Slack](https://owasp.slack.com/team/U07PWB1JZ6Z)
[Contributing](https://github.com/owasp/nest/blob/main/CONTRIBUTING.md) · [Code of Conduct](https://github.com/owasp/nest/blob/main/CODE_OF_CONDUCT.md) · [GSoC Mentors](https://github.com/owasp/nest/blob/main/MENTORS.md)
---
**Describe the solution you'd like**
Related discussion:
[https://github.com/OWASP/Nest/discussions/3451](https://github.com/OWASP/Nest/discussions/3451)
### Overview
This issue proposes implementing the initial technical foundation for sponsor management within the Nest platform.
The goal is to provide a **simple but extensible sponsorship framework** that allows organizations and individuals to support the project while receiving appropriate visibility within the platform.
This implementation should intentionally leave **room for creativity** around how sponsorship visibility is presented, while maintaining a **clean and user-friendly experience**.
The core functionality should focus on managing sponsors and enabling future integrations.
---
## Core Requirements
### 1. Sponsor Model Support
Extend the existing owasp_sponsors model to support sponsorship records with optional entity associations.
No new table needed; extend the current model.
Support multiple sponsorship levels (e.g., Silver, Gold, Platinum).
Include a status field:
- draft
- active
- archived
Introduce optional entity fields to link a sponsor to specific OWASP entities: chapter (nullable, FK to OWASP chapters) / project (nullable, FK to OWASP projects)
Other fields (if not already present): name. website. logo. description, contact_email, created_at
Notes:
This allows a sponsor to be associated with a specific chapter or project, or remain general/global if no entity is specified.
Management of sponsor records and levels can still be handled via Django Admin.
---
### 2. Sponsors Page
Create a public page listing current sponsors (so far this is for OWASP Nest only, we can introduce per chapter/project endpoints and pages later if needed).
Proposed route:
```
/sponsors
```
Requirements:
* Display **active sponsors only**
* Sponsors should be **grouped or ordered by sponsor level**
* Each sponsor entry may include:
* logo
* organization name
* link to website
* short description (optional)
The design should remain **clean and professional**, avoiding an advertisement-heavy layout.
---
### 3. Sponsor Application Page
Create a page allowing organizations to apply to become a sponsor.
Proposed route:
```
/sponsors/apply
```
Requirements:
* Implement a **contact/application form**
* Submitting the form should create a new record in `sponsors` with:
```
status = draft
```
Suggested fields:
* organization name
* website
* contact email
* sponsorship interest / message
Final approval and activation should be handled through **Django Admin**.
---
### 4. REST API Endpoint
Provide a **REST API endpoint** exposing sponsor information.
This endpoint is intended for **external integrations**, such as:
* GitHub Actions
* automation scripts
* external dashboards
Notes:
* GraphQL in Nest is currently used for **internal interactions**, so this endpoint should be REST-based.
* The endpoint should return **active sponsors only**.
Example route:
```
/api/v0/projects/nest/sponsors
```
---
## Bonus Ideas (Creativity Encouraged)
Contributors are encouraged to propose **creative but tasteful ways** to surface sponsor visibility across the platform.
The key principle:
> Sponsorship visibility should enhance the platform without harming the user experience.
Ideas may include:
* Sponsor highlights on relevant pages
* Sponsor badges or acknowledgments
* Integration with the **OWASP Nest GitHub repository**
* e.g., automated sponsor acknowledgements in README
* GitHub Action integration using the REST API
* Sponsor mentions in analytics reports or platform summaries
* Optional sponsor spotlight sections
Avoid:
* intrusive banners
* pop-ups
* aggressive advertising
The experience should remain **clean, community-first, and professional**.
---
## Implementation Notes
* Keep the initial implementation **simple and extensible**.
* Focus on the **data model and core workflow** first.
* UI improvements and creative sponsor integrations can evolve later.
**Are you going to work on implementing this?**
- [ ] Yes
- [x] No
**Additional context**
Must make sure existing pages/workflows around OWASP mentors displayed on OWASP Nest are not affected by any potentially related changes.
Contributor guide
Assessment
This issue has not been assessed yet.