smle /ˈsmaɪ.li/ is one of 52°North’s new developments. It is a SensorML editor based on TypeScript and Angular 2. The implementation of this editor started earlier this year within the projects NeXOS and FixO3. The idea of the Google Summer of Code activity was to enrich the editor with further functionality and input fields.
As the Google Summer of Code 2016 comes to an end, we can see the results of the 13 week development period and compare it with the first plan described in the introductory blog post and with the interim results from the mid-term blog post.
Implemented features
As mentioned in the mid-term post, we changed our plans. As a result, a lot of features, such as validation or providing a connection with SOS, were not implemented as part of GSoC (e.g. the SOS connection was implemented by 52°North staff due to schedule constraints). I concentrated instead on the implementation of new UI components to add support for many data types to the editor. All the implemented features are illustrated in this post. The project demo is available online via GitHub Pages.
Date picker
The Date picker component was implemented to make the date input more comfortable for user. It is used in every component with the date field.
Map position picking
When the user needs to enter any position, he can do it manually by editing longitude and latitude fields in the editor. However, as a more comfortable approach, the user can also do it interactively by just picking the marker on the map.
Description overview
The description overview is a tree view component that reflects the current state of editing sensor metadata in real time. It can be shown or hidden by the user. It shows different data types in a different manner, so the user always can differentiate between string field from boolean or number ones.
New UI components for different data types
A bunch of new UI components were developed to support following data types:
- TimeInstant (see date picker)
- TimeRange (see date picker)
- Position (see map position picking)
- CharacteristicsList
- CapabilityList
- NamedSweDataComponent
- AbstractDataComponent
- SweText
- SweTime
- SweCount
- SweBoolean
- SweQuantity
- SweCategory
- SweTimeRange
- SweQuantityRange
- SweDataRecord
- SweDataArray
- UnitOfMeasure
- AllowedValues
- AllowedTokens
- AllowedTimes
- …
These components allow the user to edit a lot of entities in a comfortable way.
Refactoring and optimization
Finally, I am in the refactoring process to clean up the code, reduce it’s duplication and make the UI components more universal and reusable.
Summary
I’m very happy that I had an opportunity to participate in this project, which will be used for research purposes by many people. It was a very good chance for me to contribute to open source software and to learn new technologies such as Sensor Web in general and the Angular 2 framework in particular. Also I would like to thank my mentors for supervising me and for being patient when the development speed was slowed down by different reasons.
Despite a lot of work done and a lot of components implemented, there are many more components which need to be added to complete the smle editor. I think I could spend my time on the project, but not so much as I had been spending during GSoC. Also I would like to encourage other students, but not only students to take part in this project.
Please follow the project on the GitHub repository and Wiki page.
Leave a Reply