[Zoo-discuss] GSoC 2023: Final Report: Getting ready with ZOO-Project for the OGC Compliance Testing.

Koushikey Chhapariya chhkoushikey at gmail.com
Mon Aug 28 03:04:18 PDT 2023


Hello Everyone!

Please find the final report for the GSoC 2023. It was such a great
experience and an amazing journey. I am grateful to everyone who has guided
me through this project.

*Title and Organization*

Project: Getting ready with ZOO-Project for the OGC Compliance Testing
Organization: OSGeo (Open Source Geospatial Foundation), Zoo-Project

*Abstract*

The ZOO-Project is an open-source implementation of the OGC's Web
Processing Service (WPS) standard. WPS Interface Standard provides rules
for standardizing inputs and outputs (requests and responses) for
geospatial processing services (e.g., polygon overlay). WPS also
standardizes how a client can request the execution of a process and how
the output from the process is handled. The ZOO-Project consists of four
components:

   - ZOO-Kernel: C implementation of a WPS-compliant server that allows
   management and chaining of individual WPS services.
   - ZOO-Services: A collection of geospatial tools implemented according
   to the WPS standard. These tools include methods from open-source libraries
   such as from open-source libraries: GDAL, GRASS GIS, Orfeo Toolbox, CGAL,
   and SAGA GIS.
   - ZOO-API: A server-side JavaScript API managing available WPS services
   - ZOO-Client: A client-side JavaScript API for communicating with a WPS
   server.


This project aimed to make the ZOO-Kernel pass all the tests for WPS 1.0.0
and WPS 2.0.0 OGC Executable Test Suite (ETS). The project's main idea was
to run test suites so that Zoo-Project could prepare for successful OGC
compliance certification. We have successfully passed all the tests for
WPS1.0 on the web browser and the GitHub Action command line interface.

*The state of the art before GSoC*

The ZOO-Project provides ready-to-use services implemented in C and Python.
These services are based on open-source libraries and are compliant with
OGC standards, with minor modifications in their source code. Currently,
the ZOO-Project does include some tests that are run automatically from the
GitHub action. These tests are specifically designed for the project. This
proposal aims to define the test based on OGC test suites (OGC Test
Engine). So, after this project, these tests from test suites will be
validated automatically on every single build from the GitHub action.
The addition (added value) that your project brought to the software

The main objective of this project during GSoC 2023 is to run test suites
so that Zoo-Project gets ready for successful OGC compliance certification.
To achieve this, the following steps were taken:


   - - To setup ZOO-Project on the host machine
   - - To set up the OGC Cite test server on the host machine using the
   documentation included within the Dockerfile ([
   https://github.com/opengeospatial/ets-ogcapi-processes10/blob/master/Dockerfile](https://github.com/opengeospatial/ets-ogcapi-processes10/blob/master/Dockerfile)
   )
   - - To run the tests for OGC API - Processes - Part 1: Core from local
   cite test instance using local ZOO-Project instance as Instance Under Test
   (IUT in the JAVA code associated with the CITE team code available ([
   https://github.com/opengeospatial/ets-ogcapi-processes10](https://github.com/opengeospatial/ets-ogcapi-processes10)
   )]
   - - Moving from OGC API - Processes - Part 1: Core to WPS 2.0.0. can
   also be added as a second step for the project. We have debugged the errors
   and successfully passed all the tests for WPS 1.0 on the web browser using
   the team engine. Next, we setup ETS for OGC API-Processes using the command
   line interface (CLI) on GitHub Action. All the 54 tests were passed
   successfully.



*Potential Future Work*
The test fails error messages can be displayed directly on the test report
for better understanding instead of debugging the errors and figuring out
the error information from command lines. Also, the testing can be done for
different test suites to know the generalizability of the ZOO-project.


*What code has been merged*
The link to the merged code to the main repository of ZOO-project:
https://github.com/ZOO-Project/ZOO-Project/pull/61

*What I have learned*

1. Real-World Experience: GSoC 2023 and Zoo-Project offered the chance to
work on real-world projects for established open-source organizations. This
practical experience is invaluable in applying the theoretical knowledge I
have gained for software development.

2. Hands-On Coding: I had the opportunity to write code, develop features,
fix bugs, and contribute to open-source projects under the guidance of
experienced mentors. This hands-on experience is crucial for building my
coding skills.

3. Mentorship: Working with mentors who are experts in their field allows
me to receive guidance, feedback, and support. Mentors help me navigate
challenges and provide insights that have accelerated my learning.

4. Collaboration: GSoC 2023 and Zoo-Project expose me to collaborative
software development practices. I worked with a team of developers,
contributing to a larger project. This experience helped me understand
version control, code reviews, and project management.

5. Networking: GSoC 2023 and Zoo-Project connect me with a global community
of open-source developers and enthusiasts. Building relationships within
this community can open doors to future collaboration, job opportunities,
and lifelong connections.

6. Project Management: GSoC 2023 and Zoo-Project require me to manage my
time and tasks effectively to meet project deadlines. This experience is
valuable in any career, as project management skills are highly sought
after.

7. Communication Skills: I have learned to communicate effectively with
mentors, team members, and the larger open-source community. Clear
communication is a vital skill in software development and beyond.

8. Open-Source Culture: GSoC introduces me to the ethics of open-source
development, emphasizing collaboration, transparency, and community
involvement. These principles will influence my future approach to software
development.

*Links*


   - Project Proposal:
   https://github.com/Koushikey4596/ZOO-Project/wiki/Research-Proposal
   - GitHub Repo**: https://github.com/Koushikey4596/ZOO-Project
   - Project Wiki: https://github.com/Koushikey4596/ZOO-Project/wiki
   - Final report:
   https://github.com/Koushikey4596/ZOO-Project/wiki/Final-Report
   - Commit history:
   https://github.com/ZOO-Project/ZOO-Project/compare/main...Koushikey4596:ZOO-Project:gsoc2023-etsp10
   - Branch History: https://github.com/Koushikey4596/ZOO-Project/branches


*Images*


   - Docker up and running:
   https://drive.google.com/file/d/1aUwJfdRX3Wq4ZRuKG7conzR5kbKOlgJ0/view?usp=drive_link
   - Debugged error messages:
   https://drive.google.com/file/d/1UIgVO-5g450wQhI8FMPD-NUq5qLuaz9n/view?usp=drive_link
   - Successful test pass report:
   https://drive.google.com/file/d/1M-qg22aljKzGrtpPiIrCA7l1_4C3d5H0/view?usp=sharing


*Video*


   - An end-to-end illustration video link:
   https://drive.google.com/file/d/1ciIvzII3nwMgshjjBIUNqdmoLqGgnU9Q/view?usp=sharing


Koushikey Chhapariya
Centre of Studies in Resources Engineering (CSRE)
Indian Institute of Technology, Bombay
https://sites.google.com/view/koushikey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/zoo-discuss/attachments/20230828/0afcef55/attachment.htm>


More information about the ZOO-discuss mailing list