Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Enhancement: Enhanced Project Data, Search, and Tagging #2682

Open
DonnieBLT opened this issue Aug 27, 2024 · 0 comments · May be fixed by #2729
Open

Feature Enhancement: Enhanced Project Data, Search, and Tagging #2682

DonnieBLT opened this issue Aug 27, 2024 · 0 comments · May be fixed by #2729

Comments

@DonnieBLT
Copy link
Collaborator

Objective:

Expand the existing projects section within the OWASP BLT project by incorporating additional project metadata such as freshness, stars, forks, and external links. This enhancement will also include advanced search and tagging capabilities, making it easier for users to find and engage with relevant projects.

Detailed Description:

  1. Additional Project Metadata:

    • Project Freshness:

      • Implement a "freshness" indicator based on recent activity in the repository, such as the date of the last commit, pull request, or issue update.
      • Display this freshness metric visually (e.g., a color-coded freshness bar or timestamp) to quickly convey how active the project is.
    • Stars and Forks:

      • Automatically collect and display the number of stars and forks from the repository hosting platform (e.g., GitHub, GitLab).
      • This data provides an indication of the project's popularity and community engagement.
    • External Links:

      • Allow the inclusion of additional relevant links for each project, such as documentation, demo sites, CI/CD pipelines, or community forums.
      • Display these links prominently alongside the existing repository and contributor information.
  2. Search and Filter Capabilities:

    • Enhanced Search Functionality:

      • Expand the search bar to allow queries based on multiple criteria, including project name, description, freshness, stars, forks, and tags.
      • Implement fuzzy search logic to account for typos and variations in search terms, ensuring users can find relevant projects even with imperfect queries.
    • Advanced Filtering Options:

      • Introduce filtering options that enable users to narrow down search results by criteria such as:
        • Freshness (e.g., recently updated, inactive)
        • Popularity (e.g., stars, forks)
        • Tags (e.g., programming language, project type, security focus)
        • Contributor count or activity level.
      • Allow users to combine multiple filters to find precisely the type of projects they are interested in.
  3. Tagging System:

    • Manual and Automatic Tagging:

      • Enable project maintainers and contributors to manually add tags to their projects, such as relevant technologies, OWASP principles, or specific use cases.
      • Complement manual tagging with an AI-powered automatic tagging system that suggests or auto-assigns tags based on project content, repository activity, and existing metadata.
    • Tag Management:

      • Provide an interface for managing tags, including adding, editing, and deleting tags, as well as viewing the most popular or frequently used tags across all projects.
      • Allow for tag hierarchies or categories to organize tags into broader groups (e.g., languages, security topics, tools).
  4. User Interface Enhancements:

    • Project Listing Page:

      • Redesign the project listing page to include the additional metadata (freshness, stars, forks, and links) alongside the existing project details.
      • Implement sortable columns or tabs, enabling users to quickly sort projects based on criteria such as popularity, freshness, or alphabetically by name.
    • Project Detail Page:

      • Update the project detail page to display all new metadata fields clearly and concisely.
      • Include a section dedicated to tags, making it easy to see and click on relevant tags to find similar projects.
  5. Data Refresh and Synchronization:

    • Automated Data Updates:

      • Set up automated processes to periodically update the stars, forks, and freshness data from the repository platforms.
      • Ensure that any manual changes (e.g., tag updates or new links) are immediately reflected in the project database.
    • Real-Time Syncing:

      • Consider implementing real-time syncing for crucial metrics like stars and forks to keep the project information as up-to-date as possible.
  6. Administrative Tools:

    • Admin Dashboard:

      • Provide an admin dashboard where project maintainers can view and manage the enhanced data for their projects.
      • Allow for bulk editing of tags, links, and other metadata to streamline the management process.
    • Feedback Mechanism:

      • Implement a feedback system where users can suggest new tags or report outdated metadata, ensuring the project data remains accurate and relevant.

Benefits:

  • Improved Discoverability:

    • Users can quickly find projects that match their specific criteria, making it easier to engage with relevant projects.
  • Increased Engagement:

    • By showcasing project popularity metrics like stars and forks, potential contributors can more easily identify projects with active communities.
  • Enhanced User Experience:

    • A more informative and interactive project section increases the overall usability and value of the OWASP BLT project for all users.
  • Better Project Management:

    • Project maintainers have more control and flexibility in presenting their projects, helping them attract more contributors and users.

Future Enhancements:

  • User-Generated Tags:

    • Allow the community to contribute tags or upvote existing ones, creating a more dynamic and user-driven tagging system.
  • Advanced Analytics:

    • Introduce analytics dashboards that track trends in stars, forks, and project activity over time, providing deeper insights for maintainers and contributors.
  • Integration with Additional Platforms:

    • Expand metadata collection to include repositories hosted on other platforms (e.g., Bitbucket, AWS CodeCommit), ensuring comprehensive coverage.
DonnieBLT added a commit that referenced this issue Sep 19, 2024
Fixes #2682

Add additional project metadata and enhanced search and filtering capabilities.

* **Models**:
  - Add fields for stars, forks, and external links to the `Project` model in `website/models.py`.
  - Add methods to fetch stars, forks, and freshness indicators from the repository hosting platform.

* **Serializers**:
  - Update the `ProjectSerializer` in `website/serializers.py` to include fields for stars, forks, and external links.
  - Add methods to fetch and serialize the additional metadata.

* **Views**:
  - Update the `ProjectViewSet` in `website/api/views.py` to fetch and display the additional metadata.
  - Add methods to handle enhanced search and filtering capabilities.

* **Templates**:
  - Update `website/templates/website/project_detail.html` to display additional metadata (freshness, stars, forks, and links).
  - Add sections for tags and related projects.
  - Update `website/templates/website/project_list.html` to display additional metadata and add sections for tags and related projects.

* **Management Command**:
  - Update `website/management/commands/update_projects.py` to set stars, forks, and external links for projects.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/OWASP-BLT/BLT/issues/2682?shareId=XXXX-XXXX-XXXX-XXXX).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

Successfully merging a pull request may close this issue.

1 participant