Add Explore topics page
## What does this MR do? In GitLab, you can add arbitrary **topics** to a project (in the project settings). But as far as I know, these topics are not yet so well known. **So let's give a boost to the use of project topics!** This MR makes it possible to **explore topics** using the new `Explore topics` page in the `Projects` area (http://gdk.test:3000/explore/projects/topics). - The topics are sorted by popularity (number of projects with this topic). For database performance reasons no other sorting is available. This would also not be a common use case. - The topics can be searched by name and are then sorted by similarity (and by popularity). - By clicking on the desired topic, you will get to the `Explore projects` page containing the corresponding projects of the topic. Once https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71830 is merged, the link should redirect to the details page of the corresponding topic instead. :tools: with :heart: at Siemens /cc @bufferoverflow ## Screenshots ![image](/uploads/4fb79e05f1b68186c39d9acdab43121f/image.png) <details><summary>Outdated videos</summary> 1. version: ![Project_topics](/uploads/27b7f2be4e18f4cdcffc55b748d46402/Project_topics.mov) 2. version: ![Project_topics_new](/uploads/06d6799d780a5e020c6b1b1f2f56130f/Project_topics_new.mov) </details> ## Does this MR meet the acceptance criteria? <!-- Feel free to delete any tasks that are not applicable. --> ### Conformity - [x] I have included a changelog entry, or it's not needed. ([Does this MR need a changelog?](https://docs.gitlab.com/ee/development/changelog.html#what-warrants-a-changelog-entry)) - [ ] I have added/updated documentation, or it's not needed. ([Is documentation required?](https://about.gitlab.com/handbook/engineering/ux/technical-writing/workflow/#when-documentation-is-required)) - [x] I have properly separated EE content from FOSS, or this MR is FOSS only. ([Where should EE code go?](https://docs.gitlab.com/ee/development/ee_features.html#separation-of-ee-code)) - [x] I have added [information for database reviewers in the MR description](https://docs.gitlab.com/ee/development/database_review.html#required), or it's not needed. ([Does this MR have database related changes?](https://docs.gitlab.com/ee/development/database_review.html)) - [x] I have self-reviewed this MR per [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html). - [x] This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. ([Merge request performance guidelines](https://docs.gitlab.com/ee/development/merge_request_performance_guidelines.html)) - [x] I have followed the [style guides](https://docs.gitlab.com/ee/development/contributing/style_guides.html). ### Availability and Testing <!-- What risks does this change pose? How might it affect the quality/performance of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing? See the test engineering process for further guidelines: https://about.gitlab.com/handbook/engineering/quality/test-engineering/ --> - [x] I have added/updated tests following the [Testing Guide](https://docs.gitlab.com/ee/development/testing_guide/index.html), or it's not needed. (Consider [all test levels](https://docs.gitlab.com/ee/development/testing_guide/testing_levels.html). See the [Test Planning Process](https://about.gitlab.com/handbook/engineering/quality/test-engineering).) - [x] I have tested this MR in [all supported browsers](https://docs.gitlab.com/ee/install/requirements.html#supported-web-browsers), or it's not needed. - [x] I have informed the Infrastructure department of a default or new setting change per [definition of done](https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done), or it's not needed. ### Security Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in [the security review guidelines](https://about.gitlab.com/handbook/engineering/security/#when-to-request-a-security-review)? If not, then delete this Security section. - [-] Label as ~security and @ mention `@gitlab-com/gl-security/appsec` - [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods - [-] Security reports checked/validated by a reviewer from the AppSec team
issue