GSoC 2022 - Improve plugin search and discoverability
Contributor: Retr0ve
Mentors: JackGruber and PackElend
This project was to build a Plugin Discovery Website to help Joplin users to find the plugins they want easily.
What Was Done
1. Add support for screenshots in plugin manifest.json
Details
- Added screenshots field in plugin manifest.json
- Wrote several rules in the packing script to validate the screenshots
Status: Completed and merged
2 . Separate allPossibleCategories to @joplin/lib
Details
- Refactor
allPossibleCategories
field from hard code to a customized json in @joplin/lib - Updated packing script to access
allPossibleCategories
field
Status: Completed and merged
3. Plugin Website
Repository: https://github.com/joplin/website-plugin-discovery
Details
- Built a static website generator.
- Utilized Github Action to automate the building process.
- Used jest for testing.
- Implemented UI using HTML, CSS(Bootstrap), and JavaScript.
Status: To be reviewed.
What's left to be done
- Merging code from the demo repo to the main repo.
- Implementing the comment section of the website.
Challenges and learnings
The most important thing I have learned from this project is the maintainability of the codebase. If we added too many newest cool techs, it can cause a maintenance problem in the future.
For other aspects, I learned:
- Using jest to write unit test
- Typescript can be helpful in maintenance
- Trying to hear more voices from the community
- Understand the user's demand rather than pushing them to accept your idea
In the end, I want to thank my mentors JackGruber and PackElend for sparing their valuable time to give me support and guidance. And also thanks to all the community members for giving their advice.