GSoC/2016/StatusReports/harishnavnit: Difference between revisions
Plasma publictransport project's summary |
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 | 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 | ** 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
- Now accessible via
- Data from the publictransport dataengine is now consumable in Qml
- Needed porting the dataengine to
QVariantMap
fromQVariantHash
- Needed porting the dataengine to
- Designed a simple plasmoid that consumes data coming from the publictransport dataengine and displays data in a timetable format
Screenshots
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 ofQtScript
being obsolete now, it was impossible to passqt.*
extensions toQScriptEngine
, rendering Scripted service providers useless as things stand.
- Scripted type service providers made use of
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
- kf5 branch of the publictransport repository
- publictransport-applet repository
- Scribbled Notes
- Blog posts