Skip to content

GSoC 2023 Implement SensorThings API standard in istSOS Filippo Finke

Filippo Finke edited this page Aug 24, 2023 · 23 revisions

Weekly Reports

Proposal

1. Contact details

2. Your idea

Project title:

Support basic SensorThings API (STA) for istSOS

Project description:

istSOS currently supports the Sensor Observation Service (SOS) standard, but to enhance its interoperability, we propose implementing some of the basic APIs from the SensorThings API (STA) in a prototype version. This project aims to test new technologies that could be adopted in a future revised version of istSOS.

Current state of the software:

Currently, istSOS only supports the SOS standard, and there is no implementation of the STA API.

What is the problem to solve:

The project will add support for basic STA API, enabling users to access sensor observations and metadata via RESTful web services. This will improve the interoperability of istSOS with other sensor data management systems and make it easier for users to interact with istSOS.

Future developments:

After the GSoC project is complete, the new STA API implementation can be expanded to support more advanced features and improved documentation. The new technologies and standards that will be tested during the project can also be integrated into a future revised version of istSOS.

Expected results:

The project will deliver a well-tested implementation of the basic STA API.

3. Timeline

Bonding Period (May 4th - May 28th, 2023):

Research on SensorThings API (STA) and its requirements (1 week) Setup of development environment and required tools (1 week) Familiarization with istSOS codebase (1 week) Communicate with mentors and get feedback (1 weeks)

Coding Period (May 29th - August 28th, 2023):

Phase 1 (May 29th - June 18th, 2023):

Implementation of basic STA API endpoints (2 weeks) Implementation of STA API metadata endpoints (1 week)

Phase 2 (June 19th - July 9th, 2023):

Testing and debugging of Phase 1 code (1 week) Integration of Phase 1 code into istSOS codebase (2 weeks)

Phase 3 (July 10th - July 30th, 2023):

Implementation of STA API filter, orderby, and select options (2 weeks) Testing and debugging of Phase 3 code (1 week)

Phase 4 (July 31st - August 20th, 2023):

Implementation of STA API pagination (1 week) Integration of Phase 3 and 4 code into istSOS codebase (2 weeks)

Phase 5 (August 21st - August 28th, 2023):

Final testing and debugging of the entire codebase (1 week) Documentation and submission of the project

  • Do you understand this is a serious commitment, equivalent to a full-time paid summer internship or summer job?

Yes, I understand that this is a serious commitment and I am willing to dedicate the time and effort required to complete the project successfully.

  • Do you have any known time conflicts during the official coding period?

From June to July I will have exams, so I will not be able to work full-time on the project during this period.

I do not know the exact dates of the exams yet, but I will be able to work on the project during the weekends and evenings.

4. Studies

  • What is your School and degree?

I am studying Computer Science at SUPSI (University of Applied Sciences and Arts of Southern Switzerland) in Viganello, and I am currently a second-year Bachelor student.

  • Would your application contribute to your ongoing studies/degree? If so, how?

Yes, I believe that this application would contribute significantly to my ongoing studies and degree. By participating in the Google Summer of Code with istSOS, I would gain valuable experience working on a real-world project and collaborating with a professional team. This opportunity would allow me to apply the theoretical knowledge and programming skills I have learned in my studies to a practical setting, helping me to further develop my abilities and understanding of software development. Additionally, the mentorship and guidance provided by the project mentors would provide me with invaluable feedback and support, enhancing my learning experience and helping me to achieve my academic and career goals.

5. Programming and GIS

  • Computing experience:

I use both macOS and Windows on a daily basis, and I also have experience with Linux, particularly in setting up and managing servers.

I have experience programming with NodeJS, JavaScript, TypeScript HTML, CSS, SQL, Java, Python, Docker, and C/C++ and using Git and GitHub for version control and collaboration on open source projects.

Overall, I am comfortable working with a wide range of tools and technologies, and I am confident in my ability to adapt to new environments quickly.

  • GIS experience as a user

I have not used GIS before as a user, but I am eager to learn and have a strong interest in geospatial data and analysis.

  • GIS programming and other software programming

While I have not programmed in GIS before, I am proficient in several programming languages and have experience with software development, including contributing to open source projects. I am confident in my ability to learn new programming languages and frameworks quickly and apply my existing skills to GIS programming.

  • Briefly mention and link to former open source contributions

I have contributed to multiple open source projects, including Stormkit (https://github.com/stormkit-io/app-stormkit-io) and Filebrowser (https://github.com/filebrowser/filebrowser). In these projects, I worked on frontend development and adding features and bugfixes, respectively. I have also contributed to other repositories for hot fixes and bug fixes. These experiences have given me valuable experience working with codebases developed by others, collaborating with team members, and using version control tools like Git.

6. GSoC participation

  • Have you participated to GSoC before?

I have never participated in GSoC before.

  • How many times, which year, which project?

N/A

  • Have you applied but were not selected? When?

N/A

  • Have you submitted/will you submit another proposal for this year's GSoC to a different org? Which one?

No, I am not planning to submit a proposal to different organizations this year.

Clone this wiki locally