<div dir="ltr"><div><h3 class="gmail-md-end-block gmail-md-heading gmail-md-focus" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43;color:rgb(51,51,51);font-family:"Open Sans","Clear Sans","Helvetica Neue",Helvetica,Arial,"Segoe UI Emoji",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span class="gmail-md-plain gmail-md-expand" style="box-sizing:border-box">Title and Organization</span></h3></div><div><span class="gmail-md-plain" style="box-sizing:border-box;white-space:pre-wrap">Project: Support basic SensorThings API (STA) for istSOS</span></div><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Organization: Osgeo (Open Source Geospatial Foundation)</span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">Abstract</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">During the Google Summer of Code 2023, I worked on the project “istsos-miu”</span><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://github.com/istSOS/istsos-miu" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">1</span></a></span><span class="gmail-md-plain" style="box-sizing:border-box"> part of the OSGeo</span><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://www.osgeo.org/" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">2</span></a></span><span class="gmail-md-plain" style="box-sizing:border-box"> Foundation.The goal of my project is to add OGC standard of Sensor Things API(STA)  to istSOS project. The OGC SensorThings API provides an open,  geospatial-enabled and unified way to interconnect the Internet of  Things (IoT) devices, data, and applications over the Web. The project  aims to extend interoperability and implement some of the basic APIs  from STA that could be adopted in a new revised version of istSOS. FastAPI can be used for the request and response of the istSOS STA  services. As PostgreSQL is used as the primary data store or data . PostgREST is a standalone web server that could be used to turn the  PostgreSQL database of STA data directly into a RESTful API.  </span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">The state of the art before GSoC</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Prior to GSoC, an existing implementation of the Sensor Things API  standard was available in Java. However, the goal was to develop a new  implementation using Python, allowing seamless integration with the  istsos project. As a result, the project was initiated from the ground  up, enabling a fresh Python-based implementation. </span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">What I have done</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">During the Google Summer of Code 2023, my main aim was to elevate the capabilities of the istsos project by aligning it with the principles outlined in the Sensor Things API standard </span><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://www.ogc.org/standard/sensorthings/" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">3</span></a></span><span class="gmail-md-plain" style="box-sizing:border-box">. I effectively accomplished this objective by actively engaging with different facets of the project. These contributions were pivotal in its advancement and enhancing overall user experience. My contributions can be divided into the following categories:</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Updating the database schema as per STA OGC standards</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">The created database schema was not fully following STA standards and need to be updated. The entity relation was updated as per the STA OGC standard documentation. Schema was updated to add more data to the database entity table. Observation entity table required lot of brain storming. Vaious possible table design were thought and tested for the implementation.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Testing the feasibility of FastAPI and postgREST</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">In the testing process, the feasibility of utilizing FastAPI for efficient web service handling and postgREST for converting a PostgreSQL database into a RESTful API was examined. FastAPI serves as the bridge for sending requests to the postgREST server, which then interacts with the PostgreSQL database to retrieve the requested information. </span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Creating Synthetic Data for the entity tables</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">To effectively test the newly created STA parser, a substantial amount  of test data was necessary. To achieve this, mock datasets were  generated based on user-configured settings using python script. This synthetic data  was generated based on the specified count in the user  configuration. The data was then seamlessly incorporated into the  database through an automated process.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Testing STA REST APIs as per OGC standard</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">A comprehensive testing of the STA REST APIs was performed, covering  data retrieval, insertion, updates, and deletions across STA entities.  The testing spanned more than 100 queries, encompassing complex queries  outlined in the STA OGC documentation. For future testing, the  configuration JSON file from the Hoppscotch <a href="https://hoppscotch.io/">4</a> API testing tool was exported.</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">The current state of the project</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">The objective of implementing the Sensor Things API into the istsos  project has been successfully realized. The project has now reached a  stage where users can effectively utilize it to engage with the istsos  server through the Sensor Things API. While the project is currently  under development, it will continue to progress and evolve in the times ahead.</span></p><a href="https://drive.google.com/file/d/1ZNgbsOaWrIstKODgbj8iqYo4yTNrHaLK/view?usp=sharing">Architecture diagram</a><font size="2"> 5</font><br><div><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">What is left to do</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">While substantial strides have been taken during the Google Summer of Code 2023, some features of the official Sensor Things API standard couldn't be fully integrated within the allotted timeframe. These features encompass:</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">MQTT Extension:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Implementing the MQTT extension for seamless communication between IoT devices and applications.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Data Array Extension:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Incorporating support for data arrays to enable efficient storage and retrieval of multiple data points.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">MultiDatastream Extension:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Introducing the MultiDatastream extension to accommodate scenarios involving multiple data streams.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Batch Request Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Developing the capability to handle batch requests efficiently.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Historical Location Auto-Creation Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Addressing the auto-creation of historical location information, ensuring accurate historical data representation.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Pagination Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Implementing data pagination to manage and present large datasets effectively.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Built-in Query Functions Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Adding built-in query functions to simplify and enhance data querying capabilities.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Data Count Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Incorporating data count functionality for accurate monitoring of data volume.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Status Code Requirement:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Integrating support for querying data using status codes and expanding data analysis options were aims within the project scope, yet complete realization wasn't feasible within the allotted timeframe. These aspects present prospects for future advancement and growth of the "istsos-miu" project, offering an avenue to enhance functionalities and align more comprehensively with the expansive Sensor Things API standard.</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">While these features are yet to be fully realized, the current contributions have established a robust groundwork, positioning them for potential integration and development in the project's future endeavors.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Testing of the above features:</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Testing the  APIs of the above features once implemented.</span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">What code has been merged</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">The code that I have written during the Google Summer of Code 2023 has been merged into the </span><span class="gmail-md-pair-s" style="box-sizing:border-box"><code style="box-sizing:border-box;text-align:left;vertical-align:initial;border:1px solid rgb(231,234,237);background-color:rgb(243,244,244);border-radius:3px;padding:0px 2px;font-size:0.9em">traveltime</code></span><span class="gmail-md-plain" style="box-sizing:border-box"> branch of the istsos project. The code can be found in the following repository:</span></p><ul class="gmail-ul-list" style="box-sizing:border-box;margin:0.8em 0px;padding-left:30px"><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-link gmail-md-pair-s" style="box-sizing:border-box;word-break:break-all"><a href="https://github.com/istSOS/istsos-miu/tree/traveltime" style="box-sizing:border-box;color:rgb(65,131,196)">https://github.com/istSOS/istsos-miu/tree/traveltime</a></span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.5rem 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">The list of pull requests that have been merged can be found here:</span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-link gmail-md-pair-s" style="box-sizing:border-box;word-break:break-all"><a href="https://github.com/istSOS/istsos-miu/pulls?q=is%3Apr+is%3Aclosed+author%3ASaailN" style="box-sizing:border-box;color:rgb(65,131,196)">https://github.com/istSOS/istsos-miu/pulls?q=is%3Apr+is%3Aclosed+author%3ASaailN</a></span></p></li></ul><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">What I have learned</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Throughout the course of the Google Summer of Code 2023, I have  gained a wealth of knowledge and experience that has significantly  enriched my skills and understanding of software development,  programming languages, and open-source collaboration. The journey of contributing to the “istsos-miu” project and aligning it with the Sensor Things API standard has taught me invaluable lessons in various areas:</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Relational Database </span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">My engagement with the Sensor Things API (STA) has deepened my  understanding of PostgreSQL as a powerful relational database for  managing geospatial and time-series data. This experience has revealed  the nuances of database schema design, indexing, and query optimization  specific to spatial and temporal data. I've learned how to leverage PostgreSQL's spatial capabilities  to store, query, and analyze geospatial information efficiently. This  journey has underscored the importance of selecting appropriate data  types, indexing strategies, and SQL constructs to ensure optimal  performance when working with complex geospatial datasets within the  context of STA.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">RESTful API </span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Contributing to the "istsos-miu" project provided me with a deep dive  into the intricacies of RESTful architecture and API design. This  hands-on experience enabled me to grasp the principles of creating  interfaces that adhere to industry best practices for web-based  functionality exposure. As a valuable learning experience, I gained insights into creating an  API service that seamlessly integrates with the istsos server,  effectively utilizing the capabilities of the Sensor Things API.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Collaboration and Open Source Development</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Engaging in an open-source project under the OSGeo Foundation has  provided a rewarding experience in collaborative software development.  Through activities like code reviews, discussions, and interactions with mentors and fellow contributors, I have acquired valuable skills in  effective remote collaboration. The feedback received during the review  process has significantly enhanced the quality of my code and improved  my ability to communicate complex technical ideas clearly.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Project Management and Time Management</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Participating in the Google Summer of Code demanded adept project management and time management capabilities. Juggling project objectives, meeting crucial milestones, and navigating unforeseen obstacles within the stipulated period provided valuable lessons in task prioritization and efficient effort management.</span></p><h3 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.5em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.43"><span class="gmail-md-plain" style="box-sizing:border-box">Technical Research and Adaptation</span></h3><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Implementing the Sensor Things API standard required an in-depth grasp  of its technical specifications and underlying principles. This entailed extensive research, learning, and adaptation of concepts related to  databases, RESTful APIs, and data querying. Delving into unfamiliar  realms and swiftly mastering novel concepts has enhanced my adaptability and resourcefulness as a developer.</span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">Conclusion</span></h2><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">As the Google Summer of Code 2023 concludes, I'm immensely grateful for the opportunities provided by Google and the OSGeo organization. My involvement in the "istsos-miu" project, aligned with the Sensor Things API, has been profoundly transformative. The project's scope has naturally expanded beyond its initial proposal, demonstrating its potential for a larger impact. Despite this, we've achieved a remarkable level of functionality that aligns with the core goal of implementing the Sensor Things API within the istsos project. This empowers users to seamlessly interact with the istsos server through a standardized interface, streamlining IoT data management.</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">My heartfelt appreciation extends to Google, OSGeo, and especially Massimiliano and Daniele, whose guidance and support have been instrumental. Their mentorship has been pivotal in surmounting challenges and pushing the project to new heights. This journey has considerably enhanced my skills, particularly in areas like language design, API development, and collaboration within the open-source community. Looking forward, I'm enthusiastic about continuing my contributions to open-source projects and applying the lessons learned here to embrace fresh opportunities.</span></p><h2 class="gmail-md-end-block gmail-md-heading" style="box-sizing:border-box;white-space:pre-wrap;break-inside:avoid;font-size:1.75em;margin-top:1rem;margin-bottom:1rem;font-weight:bold;line-height:1.225;border-bottom:1px solid rgb(238,238,238)"><span class="gmail-md-plain" style="box-sizing:border-box">Other useful links</span></h2><ul class="gmail-ul-list" style="box-sizing:border-box;margin:0.8em 0px;padding-left:30px"><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://summerofcode.withgoogle.com/programs/2023/projects/TmvBTqrE" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">Project Proposal</span></a></span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://github.com/istSOS/istsos-miu" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">Project Repository</span></a></span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://github.com/istSOS/istsos-miu/wiki/GSoC-2023-Implement-SensorThings-API-standard-in-istSOS-Saail-Narvekar" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">Project Wiki</span></a></span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-md-meta-i-c gmail-md-link" style="box-sizing:border-box"><a href="https://wiki.osgeo.org/wiki/Google_Summer_of_Code_2023_Accepted" style="box-sizing:border-box;color:rgb(65,131,196)"><span class="gmail-md-plain" style="box-sizing:border-box">OSGeo GSoC 2023</span></a></span></p></li></ul><div tabindex="-1" class="gmail-md-hr gmail-md-end-block" style="box-sizing:border-box"><hr style="box-sizing:content-box;height:2px;margin:16px 0px;border:0px none;padding:0px;background-color:rgb(231,231,231);overflow:hidden"></div><ol class="gmail-ol-list" style="box-sizing:border-box;margin:0.8em 0px 0px;padding-left:30px" start=""><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><font size="2"><span class="gmail-md-link gmail-md-pair-s" style="box-sizing:border-box;word-break:break-all"><a href="https://github.com/istSOS/istsos-miu" style="box-sizing:border-box;color:rgb(65,131,196)">https://github.com/istSOS/istsos-miu</a></span><span class="gmail-md-plain" style="box-sizing:border-box"> </span></font></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><font size="2"><span class="gmail-md-link gmail-md-pair-s" style="box-sizing:border-box;word-break:break-all"><a href="https://www.osgeo.org/" style="box-sizing:border-box;color:rgb(65,131,196)">https://www.osgeo.org/</a></span></font></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p gmail-md-focus" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap;color:rgb(51,51,51);font-family:"Open Sans","Clear Sans","Helvetica Neue",Helvetica,Arial,"Segoe UI Emoji",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><font size="2"><span class="gmail-md-link gmail-md-pair-s" style="box-sizing:border-box;word-break:break-all"><a href="https://www.ogc.org/standard/sensorthings/" style="box-sizing:border-box;color:rgb(65,131,196)">https://www.ogc.org/standard/sensorthings/</a></span></font></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p gmail-md-focus" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap;color:rgb(51,51,51);font-family:"Open Sans","Clear Sans","Helvetica Neue",Helvetica,Arial,"Segoe UI Emoji",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><font size="2"><a href="https://hoppscotch.io">https://hoppscotch.io</a>/</font></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p gmail-md-focus" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap;color:rgb(51,51,51);font-family:"Open Sans","Clear Sans","Helvetica Neue",Helvetica,Arial,"Segoe UI Emoji",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><a href="https://drive.google.com/file/d/1ZNgbsOaWrIstKODgbj8iqYo4yTNrHaLK/view?usp=sharing">https://drive.google.com/file/d/1ZNgbsOaWrIstKODgbj8iqYo4yTNrHaLK/view?usp=sharing</a><br><br>Best Regards,<br>Saail Narvekar<br></p><br class="gmail-Apple-interchange-newline"><br></li></ol></div></div>