Kodi Community Forum

Full Version: GSoC 2019 - Interested in Addon Submissions Website
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hope you're all having a wonderful day!

My name is Ankush Vij (I go by Kush), a CS Undergrad from University of North Carolina at Chapel Hill, United States. I'm looking forward to building a website for submit addons to Kodi repo. 

I did not know about Google Summer of Code until recently and I'm very excited to jump into it! I'm writing this as a brief introduction to my proposal and what I plan to do for my project. I strongly encourage mentors and everyone else to give me feedback/suggestions. I do realize the time-constraint and I sincerely apologize but I'm truly very excited to jump into this.

REASONS TO DO A WEBSITE
The reason I'm choosing to make a website is due to its convenience and accessibility on all sorts of devices. A command-line interface will encourage more errors and a Java UI is limited and I find it a bit clunky to implement with other tools.

Here are some GOALS I wish to complete throughout this project:
  • Reduce the clutter of repos. This is probably the most important thing for me. I remember using Kodi through all of my years and always found the extra step of adding a repo to the File Manager tedious. Uploading the essential addons straight to the main Kodi repo will make the process more convenient and accessible.
  • Reduce the work load of developers by automating basic syntax checks. Not only developers will have less steps to worry about, this will encourage more people to create addons and give them a platform to share their hard work.
  • Better quality submissions. Since the website will also aim to offer suggestions to the code that will be committed on the client side, there are less chance of errors.

IMPLEMENTATION
  • I plan to use Django REST Framework for the back end, which will also be compatible with Android/iOS devices. For GitHub Authentication, according to my knowledge currently there is something like "social-auth-app-django" library which can be used to connect to GitHub and later branch it to Kodi's Github. 
  • I also seek to embed the Kodi add-on generator tool on the website as well and connect the folder to the user's personal github. The interface of the tool is very simple and I think with some knowledge and guidance, it can be easily implemented.
  • For the front end, theme wise I'm thinking about implementing something similar to Angular Material Starter SPA due to its simplistic look and interface, and obviously make it Kodi-themed  Wink

CODE ANALYSIS
  • I was thinking, wouldn't it be easier to use our very own Kodi's addon checker to check for new repository submissions? I'm sure it also includes code analysis as well, so it takes care of multiple issues all at once Smile I don't know how exactly I would go with implementing it, so any suggestions will be great Smile
  • If not, I think someone mentioned in another thread CodeMirror is a great open source editor with syntax-highlighting so it is a great choice to implement!
    
**BONUS ADDITION**
Last thing I want to work on is having a list of addons from the Kodi repository displayed on the website. The website display should be very similar to the organization in the official repository, with categories and search query to search addons that are available for Kodi. I will most likely implement a Grid-view style with thumbnails from the repository itself and small descriptions listed underneath it. The database will update once every couple hours which will also push updates to the website with new lists.
    
TL;DR The website will be basically a display of Team Kodi addons, with an addition to PR author's repo and branch it to Team Kodi's repo.
 
These are my ideas so far for now. Any other updates along with a proposal along with the way, but for now any feedback/suggestion is appreciated! Thank you to all for your time and good luck on the proposals!

LinkedIn: https://www.linkedin.com/in/avij/
GitHub: https://github.com/vijankush/
Another thing I want to add, I'm very impressed by @goggle proposal as well, who took the approach of making a command-line tool. I personally think his proposal is excellent! I think the idea of "First time setup" vs "Updating an already existing addon to a new version" is a great addition that I will consider.

However, I personally think a web interface will align more with the goals listed for the project "A tool that lowers the bar for addon authors to get started with repo submissions, so we get more submissions with better quality." 
  • A command-line approach will ignore the cross-platform issues that may arise, especially in a case when a developer makes constant updates to an addon and finds it easier to upload, lets say, from their personal smartphone. A website will take care of the issue.
  • I do agree that a web application most likely will need to run on the server side. I don't personally see the issue of making a pull request from the author's name since the Authentication should be able to get access to do that. Add-ons are uploaded in specific folder with access to both by the user and Team Kodi, and in theory it should be fine in my opinion.
  • Regarding code injection on the server, that is definitely a good point! I believe as long as we have a regular system of backup, and the website will, in theory, only have access to the Repository which is already freely accessible. I'm definitely not fully acquainted with the specific coding injection issues, but as long as its a closed loop between the server and the repo, I don't see it being an issue. Also, is it possible tha code injection can occur from a command-line tool as well?
  • The goal I seek to achieve aligns with the goal of the team. A web interface will definitely "lower the bar" and encourage developers to contribute to Kodi more. Downloading tools to operating systems comes with its own issues of installing dependencies and frameworks. While command-line will lower the bar, it may not encourage beginners because of all the prerequisites that come with it. With a command-line, one will need to install git, the Kodi Addon Tool and the Kodi Addon submitter, and there will be differences implemented in the command-line tool to be made for different operating systems. With all the complications, a developer might find it easier to just make their own repository and promote that, instead of submitting it to Team Repo. I think that will defeat the whole purpose of the project.

These are some concerns I had with a command-line tool that I thought it should be important to clarify. Please feel free to ask questions or give suggestions!
Hoping for any suggestions/questions from you @Razze. Thank you.