GSoC/2016/StatusReports/harishnavnit: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2016‎ | StatusReports
(Plasma publictransport project's summary)
 
(Undo vandalism by Kpzeta (talk))
Tags: Replaced Undo
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Title: Plasma PublicTransport ==
== Title: Plasma PublicTransport ==
Plasma's Publictransport project in KDE4 was an applet that displayed useful public transport timetable data for your location. This is a handy application to have at it doesn't need internet connectivity, barring the initial setup, and all the data you would otherwise browser in a web browser was just a click away in your desktop.
Plasma's Publictransport project in KDE4 was an applet that displayed useful public transport timetable data for your location. This is a handy application to have at it doesn't need internet connectivity, barring the initial setup, and all the data you would otherwise browse in a web browser was just a click away in your desktop.


Over time, the public transport applet developed into a rather large suite, providing useful features like adding multiple locations/service providers, configuring alarms for a stop/vehicle and also provided stop completion when adding a stop name.  
Over time, the public transport applet developed into a rather large suite, providing useful features like adding multiple locations/service providers, configuring alarms for a stop/vehicle and also provided stop completion when adding a stop name.  


This applet is however, incompatible with the latest Plasma frameworks, KDE Frameworks 5(KF5) and Qt5 and porting the applet to Plasma5/Qt5 was the aim of this project.  
This applet is however, incompatible with the latest Plasma frameworks, KDE Frameworks 5(KF5) and Qt5 and porting the applet to Plasma5/Qt5 was the aim of this project.


== Work report ==
== Work report ==
Line 22: Line 22:
Working on this project has been an awesome experience but it has thrown up it's fair share of challenges. Listing some of them below:
Working on this project has been an awesome experience but it has thrown up it's fair share of challenges. Listing some of them below:
* Unfamiliarity with the coding language to be used
* Unfamiliarity with the coding language to be used
** I'm a Qml noob, but had contributed some minor patches in Qml, to the plasma-mediacenter repo
** I'm a Qml noob, but had contributed some minor patches in Qml, to the plasma-mediacenter repository in the past.
** Qml being so similar/based on a Javascript helped a great deal as I've had some exposure to Javsascript in the past
** Qml being so similar/based on a Javascript engine helped a great deal as I've had some exposure to Javsascript in the past
* Unfamiliarity with the codebase and the application
* Unfamiliarity with the codebase and the application
* Inability to test real-time data for my location
* Inability to test real-time data for my location
Line 46: Line 46:
== References ==
== References ==
* '''kf5''' branch of the [https://quickgit.kde.org/?p=clones%2Fpublictransport%2Frharishnavnit%2Fpublictransport-frameworks.git publictransport] repository
* '''kf5''' branch of the [https://quickgit.kde.org/?p=clones%2Fpublictransport%2Frharishnavnit%2Fpublictransport-frameworks.git publictransport] repository
** [https://quickgit.kde.org/?p=clones%2Fpublictransport%2Frharishnavnit%2Fpublictransport-frameworks.git&a=search&h=52a8568db7031e3ff92d01b52b33784c7a72e21f&st=author&s=R.+Harish+Navnit List of commits]
* [https://github.com/harishnavnit/publictransport-applet publictransport-applet] repository
* [https://github.com/harishnavnit/publictransport-applet publictransport-applet] repository
** [https://github.com/harishnavnit/publictransport-applet/commits/master?author=harishnavnit List of commits]
* [https://notes.kde.org/p/gsoc-publictransport Scribbled Notes]
* [https://notes.kde.org/p/gsoc-publictransport Scribbled Notes]
* Blog posts
* Blog posts
** [https://harishnavnit.wordpress.com/2016/06/04/plasmas-publictransport-to-get-some-reworking/ Plasma’s Publictransport to get some reworking !]
** [https://harishnavnit.wordpress.com/2016/06/04/plasmas-publictransport-to-get-some-reworking/ Plasma’s Publictransport to get some reworking !]
** [https://harishnavnit.wordpress.com/2016/07/21/plasmas-publictransport-applets-porting-status/ Plasma’s Publictransport applet’s porting status]
** [https://harishnavnit.wordpress.com/2016/07/21/plasmas-publictransport-applets-porting-status/ Plasma’s Publictransport applet’s porting status]

Latest revision as of 04:03, 27 June 2023

Title: Plasma PublicTransport

Plasma's Publictransport project in KDE4 was an applet that displayed useful public transport timetable data for your location. This is a handy application to have at it doesn't need internet connectivity, barring the initial setup, and all the data you would otherwise browse in a web browser was just a click away in your desktop.

Over time, the public transport applet developed into a rather large suite, providing useful features like adding multiple locations/service providers, configuring alarms for a stop/vehicle and also provided stop completion when adding a stop name.

This applet is however, incompatible with the latest Plasma frameworks, KDE Frameworks 5(KF5) and Qt5 and porting the applet to Plasma5/Qt5 was the aim of this project.

Work report

During the summer the following were achieved,

  • The publictransport dataengine was ported to KF5/Qt5
    • Now accessible via plasmaengineexplorer
  • Data from the publictransport dataengine is now consumable in Qml
    • Needed porting the dataengine to QVariantMap from QVariantHash
  • Designed a simple plasmoid that consumes data coming from the publictransport dataengine and displays data in a timetable format

Screenshots

FItZB97.png OyYFhV7.png

Challenges faced

Working on this project has been an awesome experience but it has thrown up it's fair share of challenges. Listing some of them below:

  • Unfamiliarity with the coding language to be used
    • I'm a Qml noob, but had contributed some minor patches in Qml, to the plasma-mediacenter repository in the past.
    • Qml being so similar/based on a Javascript engine helped a great deal as I've had some exposure to Javsascript in the past
  • Unfamiliarity with the codebase and the application
  • Inability to test real-time data for my location
    • General Transit Feed Specification(GTFS) data for public transport are not existent to the best of my knowledge, in India
    • Even if they did, they'd be rather useless/misleading. Lot of factors determine the arrival/departure time of a vehicle.
    • I eventually ended up testing a transit feed for Oslo, Norway.
  • QtScript deprecation in Qt 5.5 and onwards
    • Scripted type service providers made use of QScriptEngine. Because of QtScript being obsolete now, it was impossible to pass qt.* extensions to QScriptEngine, rendering Scripted service providers useless as things stand.

Work to be done

The publictransport applet/plasmoid is near complete at the moment, but still needs some tweaking before it becomes release-ready. Some of them are,

  • Replace scripted service providers with GTFS service providers
    • This has nothing to do with the applet or the engine code
  • Add an option in the plasmoid to download new service providers via GHNS
  • Design and usability review
    • At this stage, we'd have a minimal release ready plasmoid
  • Display meta-data like route stops and delay in a journey
  • Implement advanced features like alarm configurations and stop completion
  • Port timetablemate to Plasma5.
    • timetablemate is a simple editor which provides support for users to add new service providers

References