public:gsoc:flutterrutorrent2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
public:gsoc:flutterrutorrent2 [2021/02/13 19:08]
cfsmp3 created
public:gsoc:flutterrutorrent2 [2021/03/14 21:07] (current)
Line 1: Line 1:
-====== rutorrent mobile interface ======+====== rutorrent mobile interface (II) ======
  
 **Introduction**\\ **Introduction**\\
Line 9: Line 9:
 rutorrent => A web interface for rtorrent that uses that API. It also does other things, for example, it can download torrents from an RSS feed. You configure RSS feeds in rutorrent's web interface, but there's also a backend service (written in PHP) that is part of rutorrent to do the actual download.  rutorrent => A web interface for rtorrent that uses that API. It also does other things, for example, it can download torrents from an RSS feed. You configure RSS feeds in rutorrent's web interface, but there's also a backend service (written in PHP) that is part of rutorrent to do the actual download. 
  
 +Last year we started this project, and it's gone quite well, with the userbase growing and a number of contributions being made by other developers.
  
 **Your job**\\ **Your job**\\
-The job is to write a Flutter based web interface that uses rutorrent's backend service to provide a native interface. +Your job is add a number of features to this project.
- +
-The basic things (for example, torrent listing) are easy to do, but rutorrent is extensible (it has good plugin support) and your tool needs to support that, too. +
- +
-The job is to write a native application that feels written for mobile. It's not about cloning rutorrent's interface. So yes there needs to be a torrent list but the columns may be different (definitely less), colors, sorting, how you interact with the tool and so on. +
- +
-rtorrent, by the way, runs in a server, and rutorrent is the web interface that lets you interact with rtorrent. We don't want to add BitTorrent capability to mobile or anything like that. This is 100% frontend job, using pre-existing work in rutorrent to control rtorrent from the phone.+
  
 + 1) View Models: Generate a state model which holds the current state of the torrent lists even when the internet connection is not available. Currently, the torrent list vanishes as soon as internet connection is disconnected, with this state model, the user experience will improve.\\
 +2) Automatic Tests: Write some unit tests for major classes and also widget testing for some components.\\
 +3) Media Player: Currently, VLC media player plugin is a heavy integration and also it lacks many of the basic media player functionalities. The aim would be to find an alternative way to stream videos such that the app size gets reduced or enhance the functionalities of it.\\
 +4) Production-type environment: The aim would be to create separate branches for master and dev and to regularly merge dev to master to create a new release. Furthermore, this can be automatic using CI/C pipeline integration for the project.\\
 +5) Improve Documentation: Document the basic structure and architecture used in the app, maybe use Wikis, so that the new contributors find easy to understand the setup and code.
  
 **Notes**\\ **Notes**\\
Line 26: Line 26:
  
 Also, if you are unable to run rtorrent and rutorrent on your system, please use [[https://hub.docker.com/r/crazymax/rtorrent-rutorrent|this docker]] image. Also, if you are unable to run rtorrent and rutorrent on your system, please use [[https://hub.docker.com/r/crazymax/rtorrent-rutorrent|this docker]] image.
 +
  
 **Qualification tasks**\\ **Qualification tasks**\\
 Take a look at [[https://ccextractor.org/public:gsoc:takehome|this page]]. Take a look at [[https://ccextractor.org/public:gsoc:takehome|this page]].
  • public/gsoc/flutterrutorrent2.txt
  • Last modified: 2021/03/14 21:07
  • (external edit)