GSoC/2018/StatusReports/AndreyCygankov
LabPlot: support for import data from web-service
Currently, LabPlot has support for data sources, such as files, SQL databases, serial ports, etc. This project aims to expand this list with the feature to use JSON documents and web-services as data sources.
Mentors: Alexander Semke
Project goals
- Support of import JSON documents.
- Support of using web-services as a data source.
- Support of using web-services as a live data source.
- Creating and using settings for specific web-services.
Work report
Community Bonding Period
During the period I analyzed the code of already designed features - AsciiFilter, BinaryFilter, LiveDataSource and etc.
Coding Period - May 14th to June 11th
During these weeks I've been working on one of the main feature - importing files in the JSON format. What was developed:
- Initial JsonFilter code for importing JSON data into LabPlot spreadsheets.
- Tests for this filter features.
- GUI for working with this filter, which was added to the current file import dialog.
Coding Period - June 12th to July 13th
Over this time the import of JSON files has been significantly improved. Was implemented the feature to overview the structure of JSON file and pick data for import by selecting an item in the file structure. How it is implemented: a QTreeView has been added to the ImportFileWidget and to fill ithas been used QJsonModel. QJsonModel has several differences from the original: display of icons for objects, arrays, root element of the document and more.
Coding Period - July 14th to August 14th
During this period, the code was added for the initial implementation of the features:
- JsonFilter live data support.
- A new live data source: a WebService (GET request).
There were some issues to fix: the AsciiFilter incorrect work with WebService, POST and PUT request type in WebService source, bugs in JsonFilter with live data reading types, and some else.
Branch where I am working
My commits on LabPlot's master branch
Important Links
Blog Posts
Google Summer of Code with KDE
Proposal Link
Contacts
E-mail: [email protected]
IRC: andreyc
Telegram: @acygankov
Github: acygankov