├── 2021 ├── ideas-list.md └── project-results.md ├── 2022 ├── ideas-list.md └── project-results.md ├── 2023 └── ideas-list.md ├── 2024 ├── ideas-list.md └── project-results.md ├── 2025 └── ideas-list.md ├── .github └── ISSUE_TEMPLATE │ └── gsoc-project-proposal.yml ├── .gitignore ├── .pre-commit-config.yaml ├── LICENSE ├── README.md ├── contributor-guidance.md ├── img ├── GSoC-logo-horizontal-200.png ├── GSoC-logo-horizontal.svg ├── IOOS_Emblem_Primary_B_RGB.jpg ├── IOOS_Emblem_Tertiary_A_RGB.jpg ├── ioos_logo.png └── ioos_logo_2.png └── proposal-template.md /.github/ISSUE_TEMPLATE/gsoc-project-proposal.yml: -------------------------------------------------------------------------------- 1 | name: GSoC Project Proposal 2 | description: Use this template for GSoC project proposals. 3 | title: "[GSoC Project Proposal]: " 4 | labels: ["GSoC25", "project idea"] 5 | body: 6 | - type: textarea 7 | id: description 8 | attributes: 9 | label: Project Description 10 | description: Summary of the proposed project - what the applicant is expected to accomplish during the GSoC coding period. Include any background materials such as links to any existing code, documentation including references, graphics/diagrams, or any other materials that are helpful in explaining the project to applicants. Provide as much detail as possible for your description, keeping in mind that you can add more later by editing the resulting GitHub issue directly. **(5 sentences for initial project descriptions, with the more detail the better added prior to the Org application deadline in ~ early Feb)** 11 | validations: 12 | required: true 13 | - type: textarea 14 | id: outcomes 15 | attributes: 16 | label: Expected Outcomes 17 | description: What do you expect to get out of the project when completed? How is this expected to improve the software, tool, or package? **(2 - 5 sentences)** 18 | validations: 19 | required: true 20 | - type: input 21 | id: skills 22 | attributes: 23 | label: Skills Required 24 | description: What types of skills does the applicant need to complete this project? List of programing languages, software packages, or any other specific skills they should have to have a good chance of success. 25 | validations: 26 | required: true 27 | - type: textarea 28 | id: additional-background 29 | attributes: 30 | label: Additional Background/Issues 31 | description: Include links to any existing issues in your code repositor(ies) that give context for the project or that might be used to evaluate an applicant's suitability for the proposed project. Issues can also be created specifically to test applicants' relevant skills during the GSoC contributor application period. Expect interested applicants to follow any links you provide during the application period and be prepared to field PRs as well as comments and questions about what is included here. 32 | validations: 33 | required: false 34 | - type: input 35 | id: mentors 36 | attributes: 37 | label: Mentor(s) 38 | description: Include mentor names and GitHub handles as comma separated list 39 | placeholder: Mentor Name (@somegithubhandlethatsurelynoonealreadyhas), Mentor Name 2 (@someothergithubhandlethatsurelynoonealreadyhas) 40 | validations: 41 | required: true 42 | - type: input 43 | id: mentor-email 44 | attributes: 45 | label: Mentor Contact Email(s) 46 | description: Include mentor email addresses as a comma-separated list (minimum of one email address applicants can contact with questions or to discuss their project proposal/ideas) 47 | placeholder: gsoc.mentor@organization.org, gsoc.mentor2@secondaryorg.org 48 | validations: 49 | required: true 50 | - type: dropdown 51 | id: size 52 | attributes: 53 | label: Expected Project Size 54 | description: GSoC projects can be one of three different sizes depending on your estimation of the amount of time it should take the student to complete. Keep in mind that the project size will be the maximum number of hours the contributor will be compensated for for the project, and also will impact the amount of time you during the coding period you commit to mentor for, generally. If uncertain, select a larger size. The student can also suggest a different size as part of their application. 55 | options: 56 | - 90 hours 57 | - 175 hours 58 | - 350 hours 59 | validations: 60 | required: true 61 | - type: dropdown 62 | id: difficulty 63 | attributes: 64 | label: Project Difficulty 65 | description: Specify the expected difficulty of the project (Novice, Intermediate, Expert). 66 | options: 67 | - Novice 68 | - Intermediate 69 | - Expert 70 | validations: 71 | required: false 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v4.3.0 4 | hooks: 5 | - id: trailing-whitespace 6 | - id: check-ast 7 | - id: debug-statements 8 | - id: end-of-file-fixer 9 | - id: check-added-large-files 10 | 11 | - repo: https://github.com/codespell-project/codespell 12 | rev: v2.2.1 13 | hooks: 14 | - id: codespell 15 | exclude: > 16 | (?x)^( 17 | .*\.yaml 18 | )$ 19 | args: 20 | - --quiet-level=2 21 | -------------------------------------------------------------------------------- /2021/ideas-list.md: -------------------------------------------------------------------------------- 1 | # Ideas Pages 2 | 3 | This is the home page of projects ideas of IOOS for Google Summer of Code 2021. 4 | 5 | - ERDDAP https://github.com/BobSimons/erddap/issues/labels/GSoC 6 | - erddapy https://github.com/ioos/erddapy/issues/165 7 | - colocate https://github.com/ioos/colocate/labels/GSoC 8 | - IOOS Notebook Gallery https://github.com/ioos/notebooks_demos/labels/GSoC 9 | - Additional Projects https://github.com/ioos/gsoc/labels/GSoC 10 | -------------------------------------------------------------------------------- /2021/project-results.md: -------------------------------------------------------------------------------- 1 | # GSoC 2021 Results 2 | 3 | U.S. IOOS is participating for the first time as a mentoring organization for Google’s Summer of Code 2021. Google granted IOOS three slots for 2021 and the selected projects ranged from machine learning, new features in IOOS software, to website user interface language translation capabilities. 4 | 5 | Completed projects: 6 | 7 | - [erddapy](https://gist.github.com/callumrollo/ee28f7e1863d30162bdb041156314543): Implemented griddap and issued gliderpy first release. 8 | - [ERDDAP](https://q1zeng.github.io/): Translated ERDDAP User Interface Into Different Languages 9 | - [SeaFloor Sampling and IOOS Code Lab](https://lohithmunakala.medium.com/seafloor-sampling-and-data-demo-center-jupyter-book-migration-gsoc21-ioos-a9930abc4c42): Hybrid project that worked on identifying sea floor features with machine learning and implemented a Jupyter Book for the IOOS Code Lab site examples. 10 | 11 | Important highlights: 12 | 13 | - [`errdapy`](https://ioos.github.io/erddapy/)'s long awaited feature, griddap, was implemented thanks to GSoC participant Callum Rollo. He also expanded his contribution to the [`gliderpy`](https://github.com/ioos/gliderpy) project, preparing it for a first stable release. 14 | - Lohith Munakala tackled two separate problems. He created a [machine learning framework](https://github.com/ioos/seafloor-sampling-ml) to identify sea floor features in underwater imagery and also converted the IOOS Data Demo Center project into the Jupyter Book format, rebranding it as the [IOOS Code Lab](https://ioos.github.io/ioos_code_lab). 15 | - Last but not least, Qi Zeng tackled an extremely important problem to implement language translation support for the ERDDAP server. With this new feature released in [ERDDAP v2.15](https://coastwatch.pfeg.noaa.gov/erddap/download/changes.html#changes2.15), for ERDDAP servers that enable translation, browsers will load the correct language based on selected locale. 16 | 17 | You can find out more about some of the project's results on the participants' blog posts: 18 | 19 | 1. https://callumrollo.github.io/griddap.html 20 | 2. https://callumrollo.github.io/gliderpy.html 21 | 22 | # Project Details 23 | 24 | More information about each project is also available on the [IOOS organization page](https://summerofcode.withgoogle.com/archive/2021/organizations/5159672092295168) on the Google Summer of Code website. 25 | 26 | ## erdappy-griddap: Accessing gridded oceanographic data in near real time 27 | 28 | This proposal will add griddap functionality to the erddapy package and simplify the API. Support for griddap will enable near real time access to gridded datasets such as climate models and weather forecasts via a simple Python API. This access will benefit oceanographers, search and rescue teams and the maritime industry at large. Additional tasks include enabling high level, simplified queries for easy access and improving the gliderpy package to make swathes of high resolution ocean glider data more readily available. 29 | 30 | Contributor: Callum Rollo 31 | Mentors: Mathew Biddle, Filipe Fernandes, Micah Wengren 32 | 33 | ## Machine Learning for Sea Floor Sampling and IOOS Demo Data Center migration to Jupyterbook 34 | 35 | Sea Floor Sampling is a tedious job and requires a lot of manual work. This project intends to automate the process of labelling the videos using object detection and classification methods. This will reduce the amount of time taken drastically. 36 | 37 | IOOS Data Demo Center Migration to Jupyterbook. JupyterBook is a simple yet elegant way to show the documentation of one's work. It can be used for scientific purposes as it builds publication-quality books. The aim of the project is to move the existing Demo Data Center to a jupyterbook style and automate the process. 38 | 39 | Contributor: Lohith Munakala 40 | Mentors: Dalton Kell, Benjamin Adams, Mathew Biddle 41 | 42 | 43 | ## Translate ERDDAP User Interface Into Different Languages 44 | 45 | ERDDAP is a data server widely used in many organizations over the world to upload and gather data sets on the ocean environment, but currently it only supports English and not all users are proficient in English. This project will create an automated tool to translate the user interface of ERDDAP into any target language, and also modify ERDDAP’s structure to allow one ERDDAP setup to display messages in multiple languages to enhance the accessibility of the oceanographic data for the scientific community. 46 | 47 | Contributor: Qi Zeng 48 | Mentors: Bob Simons, Filipe Fernandes, Micah Wengren 49 | -------------------------------------------------------------------------------- /2022/ideas-list.md: -------------------------------------------------------------------------------- 1 | # Ideas pages for 2022 2 | 3 | This is the home page of projects ideas of IOOS for Google Summer of Code 2022. 4 | 5 | |**Project** |**Description**|**links**| **hours** | 6 | |------------|---------------|---------|-----------| 7 | | erddapy | Separate [erddapy](https://github.com/ioos/erddapy) into more functional layers, roughly following the SQLAlchemy core/ORM model. | https://github.com/ioos/erddapy/issues/228 | 175 or 350 | 8 | | pyobis | Update the existing [pyobis](https://github.com/iobis/pyobis) python package to use the new OBIS API and ensure the package is usable for product generation in the future. | https://github.com/ioos/gsoc/issues/15 | 175 or 350 | 9 | | kerchunk | Efficient access to IOOS data in the cloud with netCDF, Zarr, and JSON using [kerchunk](https://fsspec.github.io/kerchunk/). | https://github.com/ioos/gsoc/issues/14 | 175 or 350 | 10 | | echoshader | Create interactive visualization for large, cloud-based ocean sonar data. [Echoshader](https://github.com/OSOceanAcoustics/echoshader) will go hand-in-hand with the ongoing [echopype](https://github.com/OSOceanAcoustics/echopype) development. | https://github.com/ioos/gsoc/issues/16 | 175 or 350 | 11 | -------------------------------------------------------------------------------- /2022/project-results.md: -------------------------------------------------------------------------------- 1 | # GSoC 2022 Results 2 | 3 | U.S. IOOS is participating for the second time as a mentoring organization for Google’s Summer of Code. 4 | For the 2022 GSoC edition there are four new projects ranging from data visualization, data accessibility, data pre-processing for cloud optimization, and code re-factorization. 5 | 6 | The projects were: 7 | 8 | - [echoshader](https://github.com/OSOceanAcoustics/echoshader/wiki/Google-Summer-of-Code-2022): Interactive visualization of ocean sonar data. 9 | - [kerchunk](https://github.com/fsspec/GSoC-kechunk-2022/blob/main/GSOC_monitor.md) - interfacing WRF forecast grib2 data to zarray. 10 | - [pyobis](https://ayushanand18.github.io/GSoC_design_documents/): Making ocean biodiversity data easily accessible with python. 11 | - [erddapy](https://github.com/ioos/erddapy/issues?q=label%3AGSoC22+is%3Aclosed): Refactoring into separate core and object layers. 12 | 13 | Important highlights: 14 | 15 | - Before GSoC 2022 the `pyobis` project was abandoned and the last available version did not work with the new OBIS API. Thanks to GSoC contributor Ayush Anand, OBIS users can once again rely on is Python library to query to the OBIS database. 16 | - The `kerchunk` library is a middle ground between converting data to a cloud optimized format while still keeping its original form. Peter Marsh created a [working demo](https://nbviewer.org/gist/peterm790/a977137f5335bb74a8038a27841317b0) for the [LiveOcean model](https://faculty.washington.edu/pmacc/LO/LiveOcean.html) within the [NANOOS region](http://www.nanoos.org/). In his work Peter improved documentation, optimized the code for compatibility with both grib2 and netcdf formats, and tested a complete end-to-end workflow to obtain cloud optimzed data based on the kerchunk approach. 17 | - `echoshader` is part of the `echopype` ecosystem and aims to be a visualization library for ocean sonar sound data. Dingrui Lei's GSoC project started that effort and implemented the first visualization and data exploration tools for these kind of data. 18 | - `erddapy` is a Python client for the [ERDDAP server](https://coastwatch.pfeg.noaa.gov/erddap/index.html) RESTful API. The library was showing signs of age and was built on top of functions and builders that no longer fitted most user's needs. Vini Salazar is working re-factoring `erddapy` and modernizing the codebase in order to make it both more user friendly and easier to maintain in the long term. 19 | 20 | 21 | You can find out more about each project's results on the participants' blog posts: 22 | 23 | 1. https://medium.com/pangeo/accessing-netcdf-and-grib-file-collections-as-cloud-native-virtual-datasets-using-kerchunk-625a2d0a9191 24 | 1. https://ayushanand18.github.io/GSoC_design_documents/ 25 | 1. https://medium.com/@viniws/my-experience-as-a-google-summer-of-code-intern-mid-project-update-cd9ea9a40130 26 | 1. https://hackmd.io/WEf4iu68Scq9bzz7dR7RqQ 27 | 28 | 29 | # Project Details 30 | 31 | More information about each project is also available on the [IOOS organization page](https://summerofcode.withgoogle.com/programs/2022/organizations/ioos) on the Google Summer of Code Website. 32 | 33 | 34 | ## Echoshader 35 | 36 | ![image](https://user-images.githubusercontent.com/8480023/206277223-21483a2a-bc23-4a3b-8dfb-d73d52e4ef6c.png) 37 | 38 | Echoshader, an open source project, aims to enhance the ability to interactively visualize large amounts of cloud-based data to accelerate the data exploration and discovery process. Ocean sonar data is generated from echopype, which handles the normalization, preprocessing and organization of echo data. Echoshader will be developed in parallel with the ongoing development of echopype. As a participant of GSoC, I will develop the main APIs of echoshader based on the HoloViz suite of tools, test configuration for using echoshader widgets in Panel dashboards, and create Jupyter notebooks to demo use of the combination of tools. The main technology stacks used are Hvplot, Panel, fogrib2 data to zarraylium and PyVista. 39 | 40 | Contributor: Dingrui Lei 41 | Mentors: Valentina Staneva, Wu-Jung Lee, Brandon Reyes, Don Setiawan, and Emilio Mayorga 42 | 43 | ## Kerchunk 44 | 45 | ![image](https://user-images.githubusercontent.com/8480023/206277335-31f01f24-fe17-474c-8310-4f73e06a5e31.png) 46 | 47 | The Kerchunk package provides a means to access legacy geospatial datasets, such as GRIB2, in a cloud performant manor by creating a reference file which maps to variables within the datasets, this allows direct access to many data chunks within various files in one go, reducing overall latency and allowing easy parallel access. At present the scan_grib module within Kerchunk does not work when considering GFS operational data as GRIB data from different institutions can differ. I propose adapting the existing module to successfully access operational GFS forecast data before providing an example of the utility of Kerchunk to create a dictionary of lazy dimensional arrays containing all GFS variables. 48 | 49 | Contributor: Peter Marsh 50 | Mentors: Rich Signell and Martin Durant 51 | 52 | ## Pyobis 53 | 54 | ![image](https://user-images.githubusercontent.com/8480023/206277404-25db0fe7-ef32-4823-9bba-cc19a0af0111.png) 55 | 56 | The goal of the project is to modify the pyobis python package to support the new OBIS API v3. This project also aims to improve tests coverage, diversify example usage, analyze and visualize fetched data from the updated package, and push the new version to PyPI. The pyobis package is really powerful and can fetch huge ocean biodiversity data through the OBIS API. It is interesting to note that OBIS also holds data for species even dating back to around 1078 AD, which makes pyobis even more essential to be maintained. As an extended objective, I will also create a high-level module inside pyobis package that can allow users to visualize data directly. 57 | 58 | Contributor: Ayush Anand 59 | Mentors: Tylar Murray, Mathew Biddle, and Filipe Fernandes 60 | 61 | ## Erddapy 62 | 63 | ![image](https://user-images.githubusercontent.com/8480023/206277452-9e1f6210-b102-4a0d-8eea-d7e46b34fa46.png) 64 | 65 | The erddapy package provides a Python interface to the ERDDAP data server API. Currently, most of erddapy's functionality is concentrated into a single class, and the URL building features are implemented in that class along with the data transformation methods that process server responses into Python objects, such as Pandas DataFrames. This project proposes to separate erddapy into core and object (or opinionated) layers. The former will hold the URL building and data transformation functionality, which will be reused by the rest of the library. The latter layer will provide high-level objects that will support a functional API that does not depend on the state of the underlying object (which is the case for the current version of erddapy). This functional API will provide cleaner iterative usage when querying multiple servers and datasets, and new classes implemented in the object layer will support serialization so that they can be pickled and passed on to other processes or machines. To execute this project, I delineate two separate aims: refactoring the URL building and data transformation functionality into a new module containing minimal, standalone functions and reusing those functions in the existing primary class; and implementing an additional layer containing the high-level objects that will provide the basis for the functional API. Overall, this will greatly improve the flexibility and scalability of the package, and will help support its wide spectrum of users. 66 | 67 | Contributor: Vini Salazar 68 | Mentors: Filipe Fernandes, Alex Kerney, Mathew Biddle, and Callum Rollo 69 | -------------------------------------------------------------------------------- /2023/ideas-list.md: -------------------------------------------------------------------------------- 1 | # Project Ideas for 2023 2 | 3 | IOOS DMAC community's project ideas list for [Google Summer of Code 2023](https://summerofcode.withgoogle.com/programs/2023). 4 | 5 | Deadline for mentoring organization application: Feb 7, 2023. 6 | 7 | |**Project** |**Description**|**Links**| **Hours** | 8 | |------------|---------------|---------|-----------| 9 | |[gliderpy](https://github.com/ioos/gliderpy) | gliderpy is a thin wrapper around erddapy with custom methods and plotting functionality to browse, fetch, and plot glider data. | [ioos/gliderpy#61](https://github.com/ioos/gliderpy/issues/61) | 175 or 350 hours | 10 | | [ioos_qc](https://github.com/ioos/ioos_qc) | :ballot_box_with_check: :ocean: IOOS QARTOD and other Quality Control tests implemented in Python | [ioos/ioos_qc#96](https://github.com/ioos/ioos_qc/issues/96) | 175 or 350 hours | 11 | | SDM Toolkit | Develop packages that enable seamless Species Distribution Model (SDM) creation for data pulled from [OBIS](https://obis.org/), [GBIF](https://www.gbif.org/), and other DwC-compliant, FAIR databases | [ioos/gsoc#30](https://github.com/ioos/gsoc/issues/30) | 350 hours | 12 | | Plankton Imagery Processing | The [SE Marine Biodiversity Observation Network program](https://marinebon.github.io/pages/sfmbon/) (SE MBON) is collecting 10’s of thousands of plankton images. An automated system for aligning taxonomic records extracted from imagery and associated metadata to the Darwin Core schema is needed. | [ioos/gsoc#31](https://github.com/ioos/gsoc/issues/31) | 175 hours | 13 | | [colocate](https://github.com/ioos/colocate) | Enhance IOOS colocate library for web-based query, preview and download of oceanographic data in ERDDAP | [ioos/gsoc#33](https://github.com/ioos/gsoc/issues/33) | 175 or 350 hours | 14 | | [echoshader](https://github.com/OSOceanAcoustics/echoshader) | Enhance the echoshader library for cloud-optimized visualization for ocean sonar data | [ioos/gsoc#35](https://github.com/ioos/gsoc/issues/35) | 175 or 350 hours | 15 | -------------------------------------------------------------------------------- /2024/ideas-list.md: -------------------------------------------------------------------------------- 1 | # Project Ideas for 2024 2 | 3 | IOOS DMAC community's project ideas list for [Google Summer of Code 2024](https://summerofcode.withgoogle.com/programs/2024). 4 | 5 | Deadline for mentoring organization application: Feb 6, 2024. 6 | 7 | |**Project** |**Description**|**Proposed Project Idea**| **Hours** | 8 | |------------|---------------|---------|-----------| 9 | |[echopype](https://echopype.readthedocs.io/en/stable/) | Echopype is a package built to enable interoperability and scalability in ocean sonar data processing. These data are widely used for obtaining information about the distribution and abundance of marine animals, such as fish and krill. | [ioos/gsoc#41](https://github.com/ioos/gsoc/issues/41) | 175 hours | 10 | | [kerchunk API for GRIB data](https://fsspec.github.io/kerchunk/) | Kerchunk is a library that provides a unified way to represent a variety of chunked, compressed data formats (e.g. NetCDF/HDF5, GRIB2, TIFF, …), allowing efficient access to the data from traditional file systems or cloud object storage. It also provides a flexible way to create virtual datasets from multiple files. | [ioos/gsoc#42](https://github.com/ioos/gsoc/issues/42) | 175 hours | 11 | | [gliderpy](https://ioos.github.io/gliderpy/) | gliderpy is a thin wrapper around erddapy with custom methods and plotting functionality to browse, fetch, and plot glider data. | [ioos/gsoc#43](https://github.com/ioos/gsoc/issues/43) | 175 hours | 12 | | [ERDDAP: protected datasets API](https://github.com/ERDDAP/erddap) | ERDDAP is a scientific data server that gives users a simple, consistent way to download subsets of gridded and tabular scientific datasets in common file formats and make graphs and maps. ERDDAP has been installed by approximately 100 organizations in at least 17 countries. | [ioos/gsoc#44](https://github.com/ioos/gsoc/issues/44) | 175 hours | 13 | | [ERDDAP: enhancements for ERDDAP administrators](https://github.com/ERDDAP/erddap) | ERDDAP is a scientific data server that gives users a simple, consistent way to download subsets of gridded and tabular scientific datasets in common file formats and make graphs and maps. ERDDAP has been installed by approximately 100 organizations in at least 17 countries. | [ioos/gsoc#45](https://github.com/ioos/gsoc/issues/45) | 175 hours | 14 | | [ioos_qc: QA/QC for glider data](https://github.com/ioos/ioos_qc) | ioos_qc is the canonical implementation of the [QARTOD manuals](https://repository.oceanbestpractices.org/handle/11329/336) for ocean QA/QC best practices. This project ideas are to: create QA/QC examples, write documentation for its use, and implement missing QA/QC checks for glider data | [ioos/gsoc#45](https://github.com/ioos/gsoc/issues/55) | 350 hours | 15 | | [OCSMesh improvement](https://github.com/noaa-ocs-modeling/OCSmesh) | OCSMesh is a Python package for processing DEM data into georeferenced unstructured meshes using the [jigsaw-python](https://github.com/dengwirda/jigsaw-python) library. | [ioos/gsoc#58](https://github.com/ioos/gsoc/issues/58) | 350 hours | 16 | | [Searvey improvement](https://github.com/oceanmodeling/searvey) | Searvey aims to provide the following functionality: Unified catalogue of observational data including near real time (WIP), Real time data analysis/clean up to facilitate comparison with numerical models (WIP), On demand data retrieval from multiple sources | [ioos/gsoc#59](https://github.com/ioos/gsoc/issues/59) | 175 hours | 17 | | [Model subsetting tool]() | This project enhances preliminary code for subsetting large unstructured-grid numerical model outputs on cloud platforms, making forecast data more accessible through widely used open-source Python libraries. | [ioos/gsoc#57](https://github.com/ioos/gsoc/issues/57) | 350 hours | 18 | 19 | 20 | -------------------------------------------------------------------------------- /2024/project-results.md: -------------------------------------------------------------------------------- 1 | # GSoC 2024 Results 2 | 3 | U.S. IOOS is participating for the third time as a mentoring organization for Google’s Summer of Code. 4 | For the 2024 GSoC edition, we welcomed six projects in a variety of areas including data visualization, data accessibility, data quality control, cloud optimization for scientific data, and optimization of administration for data services. 5 | 6 | The projects were: 7 | 8 | - [erddap](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/VRUk5pC9): Enhancements for Erddap administrators. 9 | - [gliderpy](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/8h63Owzq): Data Visualization with Gliderpy. 10 | - [ioos_qc](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/eqZttvrN): QA/QC for glider data. 11 | - [kerchunk](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/nLJFBbIV): Kerchunk enhancements for fast NODD GRIB aggregations. 12 | - [searvey](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/tWUJtS4s): Enhancing Searvey: Real-Time Observational Data Unification, Analysis, and Retrieval. 13 | - [STOFS](https://summerofcode.withgoogle.com/organizations/ioos/projects/details/VxCwfSg0): STOFS Subsetting Tool. 14 | 15 | 16 | Important highlights: 17 | 18 | - The GSoC'24 ERDDAP project was a major improvement to the XML parser which is a core part of defining how datasets are loaded. 19 | - Gliderpy's plotting interface was completely refactored, making it more flexible and much easier to build on. 20 | - `ioos_qc` support for glider QA/QC was added during GSoC edition. The final form is still under work, but this project help start the discussion on how to properly implement them. 21 | - Support for optimized indexing of GRIB data was added to the Kerchunk library, along with usage examples and documentation. 22 | 23 | 24 | You can find out more about each project's results on the participants' blog posts: 25 | 26 | 1. `erddap`: https://ayushsingh.hashnode.dev/gsoc-2024-ioos-erddap 27 | 1. `gliderpy`: https://gist.github.com/FloraSauerbronn/b83cb417c082d32dde490c76195cb1a5 28 | 1. `ioos_qc`: https://gist.github.com/Sakshamgupta90/38efedf28b279df3ee9a86d6627dd3c4 29 | 1. `kerchunk`: https://github.com/Anu-Ra-g/GSoC2024_Kerchunk/blob/main/GSoC2024_kerchunk.md 30 | 1. `searvey`: https://gist.github.com/abdu558/e7d651a82207f5f4caeaef9863eeed54 31 | 1. `STOFS`: https://gist.github.com/omkar-334/f5a3ec3a80f0a790178c61a5a7a32748 32 | 33 | 34 | # Project Details 35 | 36 | More information about each project is also available on the [IOOS organization page](https://summerofcode.withgoogle.com/programs/2024/organizations/ioos) on the 2024 Google Summer of Code website. 37 | -------------------------------------------------------------------------------- /2025/ideas-list.md: -------------------------------------------------------------------------------- 1 | # Project Ideas for 2025 2 | 3 | IOOS DMAC community's project ideas list for [Google Summer of Code 2025](https://summerofcode.withgoogle.com). 4 | 5 | Deadline for mentoring organization application: Feb 11, 2025. 6 | 7 | | **Project Title** | **Project Idea Link** | **Description** | **Hours** | 8 | |------------|---------------|---------|-----------| 9 | | Build web UI versions using pyodide/pyscript for IOOS tools | [ioos/gsoc#64](https://github.com/ioos/gsoc/issues/64) | The idea for this project is to build interfaces for ioos-qc and compliance-checker. A user should be able to load datasets, select data and the checks they want to apply. | 350 hours | 10 | | Prometheus server- graphs and monitoring for ERDDAP™ | [ioos/gsoc#72](https://github.com/ioos/gsoc/issues/72) | We recently started adding Prometheus metrics to ERDDAP™. The main goal of this project is to build an example Prometheus Server which can monitor one or more ERDDAP™ instances. | 175 hours | 11 | | Update ERDDAP™ page rendering to use a template framework | [ioos/gsoc#73](https://github.com/ioos/gsoc/issues/73) | The project is to migrate existing ERDDAP™ pages to use a templating framework. | 175 hours | 12 | | IOOS Cloud Sandbox - model validation and verification tools | [ioos/gsoc#84](https://github.com/ioos/gsoc/issues/84) | Add model validation and verification tools to https://github.com/ioos/Cloud-Sandbox. Model validation and verification can include comparing model results to observations, previously validated data, other model data, etc. | 175 hours | 13 | | Code separation and build management for cloudflow | [ioos/gsoc#85](https://github.com/ioos/gsoc/issues/85) | Move Cloudflow's code to a poetry or uv build, with well-established and externalized dependency, and allow deployment to pypi. | 90 hours | 14 | | Increased logging for Cloudflow | [ioos/gsoc#86](https://github.com/ioos/gsoc/issues/86) | Having AWS logging increased within the codebase of cloudflow would greatly increase our capacity to support multiple users on the coastal sandbox. | 90 hours | 15 | | NOAA trawl survey database | [ioos/gsoc#74](https://github.com/ioos/gsoc/issues/74) | The primary objective of this project is to create an accessible international database of transboundary marine survey data across the Northeast Pacific Ocean. | 175 hours | 16 | | Extend CrocoLake's available datasets | [ioos/gsoc#75](https://github.com/ioos/gsoc/issues/75) | This project consists in taking an existing dataset that is not yet included in CrocoLake and developing or adapting existing modules to convert it to CrocoLake's format. | 175 hours | 17 | | Autoval Improvement | [ioos/gsoc#76](https://github.com/ioos/gsoc/issues/76) | This project aims to enhance the capabilities of the Autoval package, which was developed for STOFS auto validation. STOFS stands for the Surge and Tide Operational Forecast System. | 175 hours | 18 | | OCSMesh Parallelization | [ioos/gsoc#77](https://github.com/ioos/gsoc/issues/77) | OCSMesh is a Python package that automates the generation of unstructured continuous (creek-to-ocean) meshes using the jigsaw-python library and triangles. The goal of this project is to increase OCSMesh’s efficiency by parallelizing the most time consuming steps, including DEM processing and jigsaw mesh generation. | 350 hours | 19 | | STOFS dashboard | [ioos/gsoc#78](https://github.com/ioos/gsoc/issues/78) | This project aims to advance and improve our STOFS event dashboard (github repo). This tool allows a user to select events (e.g., tropical cyclones, winter storms, major incidents in coastal areas) and compare STOFS model results with observations for those events. | 175 hours | 20 | | Probabilistic Surge Model Performance Assessment | [ioos/gsoc#79](https://github.com/ioos/gsoc/issues/79) | The storm surge modeling team at the Office of Coast Survey (OCS) have developed a framework called (ondemand-storm-workflow) to develop probabilistic hurricane storm surge models. The goal of this project is to improve the post-prossessing and model evaluation capabilities of the workflow. | 175 hours | 21 | | Land Cover Integration for Parametric Hurricane Model (PaHM) | [ioos/gsoc#80](https://github.com/ioos/gsoc/issues/80) | This project aims to enhance the Generalized Asymmetric Holland Model (GAHM) within the Parametric Hurricane Modeling System (PaHM) framework by incorporating land cover effects on wind speeds during tropical cyclones. | 350 hours | 22 | | Expand the Google Test suite for the Fisheries Integrated Modeling System | [ioos/gsoc#81](https://github.com/ioos/gsoc/issues/81) | The Fisheries Integrated Modeling System (FIMS) is a framework to create statistical models, written in C++ and R, to assess the status of marine resources. This project will add tests for uncovered code and suggest places where the tests, especially the Google tests, can be enhanced. | 175 hours | 23 | | Fix clang-tidy for the Fisheries Integrated Modeling System | [ioos/gsoc#82](https://github.com/ioos/gsoc/issues/82) | The project follows a modified Google style guide for the The Fisheries Integrated Modeling System (FIMS) C++ standards and relies on GitHub action using clang-tidy to ensure that code pushed to the GitHub repository conforms to these standards. | 90 hours | 24 | | Complete the integration of the logging system in the Fisheries Integrated Modeling System | [ioos/gsoc#83](https://github.com/ioos/gsoc/issues/83) | This project would take examples already in the source code for the The Fisheries Integrated Modeling System (FIMS) and use pattern matching to insert new logging entries into the code where it seems that they are needed. | 90 hours | 25 | | phytoclass for the masses | [ioos/gsoc#90](https://github.com/ioos/gsoc/issues/90) | This project will improve usability and accuracy of phytoclass R library for conversion of HPLC pigment data to phytoplankton abundance estimations. | 90 hours | 26 | | pyOBIS for stakeholders | [ioos/gsoc#91](https://github.com/ioos/gsoc/issues/91) | This project will make use of the pyOBIS python library to create a series of jupyter notebooks to address research questions of natural resource managers. | 90 hours | 27 | | Add MQTT support to ERDDAP™ | [ioos/gsoc#93](https://github.com/ioos/gsoc/issues/93) | Add support for [MQTT](https://mqtt.org/) to ERDDAP™. [MQTT](https://en.wikipedia.org/wiki/MQTT) is a message protocol which was in particular designed to be lightweight and used by remote/IoT devices. | 350 hours | 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, US Integrated Ocean Observing System 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google Summer of Code 2 | 3 | Google Summer of Code logo           IOOS logo 4 | 5 | ### **Announcement: GSoC 2025 Project Ideas Needed!** 6 | 7 | IOOS is looking for new project ideas for [GSoC 2025](https://summerofcode.withgoogle.com)! GSoC Organization applications are due **February 11, 2025** - we need a strong list of projects and mentors by this deadline to reapply for 2025. 8 | 9 | If you are interested in mentoring a student during this year's GSoC program, please submit your project idea below: 10 | 11 | [**2025 Mentors: submit your project idea here**](https://github.com/ioos/gsoc/issues/new?template=gsoc-project-proposal.yml) 12 | 13 | Questions about the GSoC mentoring experience can go to any of IOOS' former GSoC mentors - see [IOOS and Google Summer of Code](#ioos-and-google-summer-of-code) for all of our former projects, students and mentors, or post to the ['ioos_tech'](https://groups.google.com/g/ioos_tech) mailing list. 14 | 15 | 16 | #### **Update:** Materials for IOOS' 2025 GSoC Organization Application 17 | 18 | - **Project Ideas List:** https://github.com/ioos/gsoc/blob/main/2025/ideas-list.md 19 | - **Contributor Guidance** (for students planning to apply): https://github.com/ioos/gsoc/blob/main/contributor-guidance.md 20 | 21 | **Note to students:** Google will announce accepted organizations on Feb 27, 2025, so we'll know more about our status at that time. Hold off on contributing any ideas you might have until then. 22 | 23 | ### U.S. IOOS® - Eyes on the Ocean, Coasts, and Great Lakes™ 24 | 25 | #### Our Mission 26 | To produce, integrate, and communicate high quality ocean, coastal and Great Lakes information that meets the safety, economic, and stewardship needs of the Nation. 27 | 28 | The U.S. Integrated Ocean Observing System (IOOS®) is a national-regional partnership working to provide new tools and forecasts to improve safety, enhance the economy, and protect our environment. Integrated ocean information is available in near real time, as well as retrospectively. Easier and better access to this information is improving our ability to understand and predict coastal events - such as storms, wave heights, and sea level change. Such knowledge is needed for everything from retail to development planning. 29 | 30 | For more information about IOOS visit: [https://ioos.noaa.gov](https://ioos.noaa.gov). 31 | 32 | #### Our Community 33 | 34 | The [IOOS Data Management and Cyberinfrastructure](https://ioos.noaa.gov/project/dmac/) (DMAC) community is a diverse and inclusive group of scientific software developers focused on developing and supporting open source software to deliver oceanographic and other earth science data to users worldwide. 35 | 36 | #### Community Events 37 | 38 | IOOS hosts annual DMAC [data management meetings](https://ioos.noaa.gov/project/dmac/), bi-annual code sprints ([2019](https://www.glos.us/code-sprint/), [2022](https://ioos.github.io/ioos-code-sprint/2022/), [2024](https://ioos.github.io/ioos-code-sprint/2024/)), monthly technical webinars, and maintains virtual communications through our ['ioos_tech'](https://groups.google.com/g/ioos_tech) mailing list and other platforms such as [GitHub](https://github.com/ioos) and Slack. 39 | 40 | 41 | ### IOOS and Google Summer of Code 42 | 43 | IOOS has previously participated as a GSoC mentoring organization, with many successfully completed student projects. See the links below for more information. 44 | 45 | |**Year**|**GSoC Organization Pages**|**GSoC Student Project Results Pages**| **Project Ideas List** | 46 | |------------|---------------|---------|---------| 47 | | **2024** | [2024 IOOS GSoC Organization](https://summerofcode.withgoogle.com/programs/2024/organizations/ioos) | [2024 Project Results](https://github.com/ioos/gsoc/blob/main/2024/project-results.md) | [2024 Project Ideas](https://github.com/ioos/gsoc/blob/main/2024/ideas-list.md) 48 | | **2022** | [2022 IOOS GSoC Organization](https://summerofcode.withgoogle.com/programs/2022/organizations/ioos) | [2022 Project Results](https://github.com/ioos/gsoc/blob/main/2022/project-results.md) | [2022 Project Ideas](https://github.com/ioos/gsoc/blob/main/2022/ideas-list.md) 49 | | **2021** | [2021 IOOS GSoC Organization](https://summerofcode.withgoogle.com/archive/2021/organizations/5159672092295168) | [2021 Project Results](https://github.com/ioos/gsoc/blob/main/2021/project-results.md) | [2021 Project Ideas](https://github.com/ioos/gsoc/blob/main/2021/ideas-list.md) 50 | 51 | #### Guidance for Potential IOOS GSoC Mentors 52 | 53 | *Some tips from IOOS for how to write a good GSoC project idea* 54 | 55 | The most successful GSoC project ideas involve ***previously-existing, open source software packages*** that might benefit from the addition of a new feature, capability or related application or tool, resolving a thorny bug that you don’t quite have time to address yourself as a package maintainer, or the addition of use-case examples that involve developing and publishing new code (e.g. Jupyter notebook usage demonstrations). 56 | 57 | GSoC is not for getting assistance from a student (aka ‘contributor’) with writing documentation or for starting new projects without pre-existing open source code. The program is designed to teach contributors about your software and project maintainer community (even if only yourself), how to write better code, and to learn about the process of open source software development itself. 58 | 59 | **Draft or initial project ideas are OK.** Project ideas need to include basic background information (project description and purpose, expected skills, mentor names), but it’s a fairly easy lift to propose a new project. If IOOS is accepted for the 2025 program, project ideas can be further refined or improved over the next month until the contributor application period begins in March. -------------------------------------------------------------------------------- /contributor-guidance.md: -------------------------------------------------------------------------------- 1 | # Student Contributing Guide 2 | 3 | ## Getting Started 4 | 5 | If IOOS is included as a GSoC mentoring organization for the year (typically announced in late February per the [GSoC program timeline](https://developers.google.com/open-source/gsoc/timeline), we invite interested contributors to apply to and of the projects listed in our project ideas list, linked from the [README](https://github.com/ioos/gsoc/blob/main/README.md). 6 | 7 | If you find a a project you feel you can tackle, reach out to the mentors to start a conversation about the project and to share your ideas. 8 | 9 | Some prospective contributors comment in the project idea GitHub issue directly, and this is OK to do to begin a dialog with mentors, however we discourage you from sharing any detailed ideas that you have in GitHub issue comments, as there's always a risk of plagiarism by other applicants in an open forum such as GitHub. 10 | 11 | We ask mentors to include an email address for at least one mentor in each project idea; please instead reach out via email to mentor(s) to discuss any specific ideas you're considering or plans you have for your proposal. 12 | 13 | Additionally, if the project idea you're intersted in includes links to existing background issues in the project's code repository, you can read up on those, and, if you're able to, submit a PR to demonstrate your ability. Some projects might tag open issues as suitable for GSoC as a way to identify more manageable issues for potential new contributors to address. Feel free to tackle any of those if you are able as they'll allow mentors to assess your ability firsthand. 14 | 15 | **Further Background:** 16 | * [The opensource guide](https://opensource.guide/how-to-contribute/) has a good introduction how to start contributing to open source projects. 17 | 18 | 19 | ### Do I have the experience to apply? 20 | 21 | The answer is generally: **Yes**. 22 | Note that our organization values creativity, intelligence and enthusiasm above specific knowledge of the libraries or algorithms we use. 23 | We think that a motivated students who are willing to learn are more valuable than anything else. 24 | 25 | The [GSoC Guide](https://google.github.io/gsocguides/student/am-i-good-enough#) gives a good overview of this part for GSoC. 26 | 27 | ## Applying to Google Summer of Code & IOOS 28 | 29 | To get an idea for the IOOS Data Management and Cyberinfrastructure (DMAC) community (the overarching community from which most of our GSoC mentors and projects are drawn from), visit the 'ioos_tech' Google Group: https://groups.google.com/g/ioos_tech. 30 | 31 | ### Proposal template 32 | 33 | We provide a an application/proposal template (in markdown) you can use as a reference or adapt for your personal application: 34 | 35 | **https://github.com/ioos/gsoc/blob/main/proposal-template.md** 36 | 37 | Please include at a minimum each section in the proposal template in your application. It is fine to reformat or reorder sections, and/or to submit an application in PDF format with diagrams, images, or code examples. A complete application should include information for all of the sections and should have all of the placeholder information filled in. 38 | 39 | ### What makes a good GSoC proposal? 40 | 41 | An ideal GSoC proposal should include the following: 42 | 1. A detailed, descriptive title 43 | 2. Personal Information, including contact info, timezone 44 | 3. Link to a **code contribution**, such as a PR, you've made previously 45 | 4. Full description of your proposed project, including timeline and planned deliverables (see the [proposal-template.md](https://github.com/ioos/gsoc/blob/main/proposal-template.md) for a recommended format) 46 | 5. Your schedule during the GSoC period and any prior committments that might affect your availability (school exams, other work committments, travel, etc) 47 | 48 | ### During the application phase 49 | 50 | We usually favor students that show regular communication with mentors during the application period and are able to demonstrate a clear understanding of the challenge proposed in the project idea within their proposal. In some cases, mentors may include existing GitHub issues or other references within their code that students can use to both understand the software and, in some cases, demonstrate they have a good chance to succeed in addressing the problem presented in the project idea. 51 | 52 | *These tips are here to help with your application. They are not required.* 53 | 54 | - Have you communicated with the organization's mentors during the application period? 55 | - Have you communicated with the community? 56 | - Did you reference projects you coded WITH links to repos or provided code? 57 | - Did you provide methods for mentors to contact you? 58 | - Did you state which project you are applying for and why you believe you will be successful in completing the project? 59 | - Did you share your proposed project plan with mentor(s) prior to the close of the application period to give them the opportunity to give feedback or ask you questions? 60 | - Does your project plan clearly state the steps you will take during GSoC to address the goals or challenges in the proposed project? 61 | - Did you create a pull request on the existing code? 62 | - Did you continue communication until accepted students are announced? 63 | - Do you have time for GSoC? This is a paid job! State that you have time in your motivation letter, and list other commitments! 64 | - Does you application describe what motivates you to work on this project, and, how your involvement in GSoC and this project in particular furthers your career goals? 65 | 66 | ### Submitting your application 67 | 68 | Submit your completed application to the Google Summer of Code website directly, following all of the guidelines. This is the only way an applications will be accepted for GSoC. 69 | -------------------------------------------------------------------------------- /img/GSoC-logo-horizontal-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ioos/gsoc/80fa0757a0e78df1793a7df28b71a961db2d2a5a/img/GSoC-logo-horizontal-200.png -------------------------------------------------------------------------------- /img/GSoC-logo-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | logo_lockup_summer_of_code_horizontal_Roboto 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /img/IOOS_Emblem_Primary_B_RGB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ioos/gsoc/80fa0757a0e78df1793a7df28b71a961db2d2a5a/img/IOOS_Emblem_Primary_B_RGB.jpg -------------------------------------------------------------------------------- /img/IOOS_Emblem_Tertiary_A_RGB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ioos/gsoc/80fa0757a0e78df1793a7df28b71a961db2d2a5a/img/IOOS_Emblem_Tertiary_A_RGB.jpg -------------------------------------------------------------------------------- /img/ioos_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ioos/gsoc/80fa0757a0e78df1793a7df28b71a961db2d2a5a/img/ioos_logo.png -------------------------------------------------------------------------------- /img/ioos_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ioos/gsoc/80fa0757a0e78df1793a7df28b71a961db2d2a5a/img/ioos_logo_2.png -------------------------------------------------------------------------------- /proposal-template.md: -------------------------------------------------------------------------------- 1 | 2 | An ideal GSoC proposal should include the following: 3 | 1. A detailed, descriptive title 4 | 2. Personal Information, including contact info, timezone 5 | 3. Link to a **code contribution**, such as a PR, you've made previously 6 | 4. Full description of your proposed project, including timeline and planned deliverables 7 | 5. Your schedule during the GSoC period and any prior committments that might affect your availability (school exams, other work committments, travel, etc) 8 | 9 | Example GSoC proposal template: 10 | 11 | 12 | # Title 13 | 14 | ## Personal Info 15 | 1. Name 16 | 2. Contact Info (email, phone, etc.) 17 | 3. Country, Timezone 18 | 4. GitHub handle, LinkedIn or other professional profile 19 | 5. School/University, concentration & expected graduation date 20 | 6. Link to a resume (if you want) 21 | 22 | ## About Me 23 | Short introduction to you and what your interests and goals are, both with GSoC and otherwise. What are your goals for participating in GSoC in relation to your career? 24 | 25 | ## Abstract 26 | 27 | Short description of your project, 5-10 sentences. 28 | Please **DO NOT** copy the project idea text here! 29 | 30 | ## Why this project? 31 | 32 | What interests you in this GSoC project and our organization? 33 | Note that this part is **very** important to show your motivation! 34 | 35 | ## Prior Development Experience 36 | 37 | Do you have code on GitHub? Share your prior development experience that qualifies you for GSoC and for the project you're applying for. 38 | List examples of your previous code contributions: to other open source projects, personal projects, or coding projects for academic studies that are publicly-visible. 39 | If you've already submitted code in the form of a PR to the project or organization that you're applying for for GSoC, link to that here to ensure mentors make the connection with your application! 40 | 41 | ## Project Details 42 | 43 | ### Technical Description 44 | 45 | More detailed description of your project. 46 | **Should** include all technical details of the projects for example: 47 | - the libraries involved, 48 | - the languages and techniques you will use, 49 | - some pieces of the code you want to change, 50 | - links to literature you used during the research, 51 | - etc. 52 | 53 | For this section, it is important to show if you had previous conversations with your mentors and have a sufficient understanding of the problem and a plan to address it during your project. 54 | 55 | ### Community Bonding Period 56 | 57 | This phase is to get to know the community better and to prepare to start working on your project once the coding period begins. 58 | Check that your work environment is set up, and that you can access all the necessary code, data, or other prerequisites for your project. 59 | This time should also be used to discuss your project in more detail with your mentors and, with their assistance, introduce it to the broader developer community. 60 | 61 | Describe what you plan to do during the community bonding period and how you'd like to communicate with your potential mentors during this time, and anything you'd ask from your mentors in the way of support during this period to get you and your project up to speed for the coding period. 62 | 63 | ### Schedule of Deliverables 64 | 65 | Here you should list your planned activities for the coding period, ideally on a weekly basis, and any specific milestones you plan to work towards in the schedule. You can break down the coding period into different periods if you prefer (e.g. every two weeks), provided that you set specific targets for each phase and describe them clearly. Each target should be split into sub tasks with time estimates. 66 | 67 | #### **Phase 1** 68 | * **Week 1** 69 | * **Week 2** 70 | * **Week 3** 71 | * **Week 4** 72 | * **Week 5** 73 | * **Week 6** 74 | 75 | Mid-point: List deliverables at the mid-way point, in addition to any specified during the week-by-week work breakdown above.. 76 | 77 | #### **Phase 2** 78 | * **Week 7** 79 | * **Week 8** 80 | * **Week 9** 81 | * **Week 10** 82 | * **Week 11** *Note: GSoC requires a final write up is submitted that your mentors will review in order to evaluate your work. It's strongly advised that you share your writeup with your mentors prior to the due date so they can give feedback. Consider planning to finish most of your coding by this week to ensure it can be merged/accepted and to focus on writing the report.* 83 | * **Week 12** 84 | 85 | #### **Final Week** 86 | End of the standard GSoC coding period. List the final planned deliverables for your project here. 87 | 88 | At this stage your project should be completed and your code should already have been submitted to your organization, final report written, reviewed, and submitted via the GSoC website. 89 | 90 | _**Please Note:** We ask our GSoC contributors to produce a final writeup summarizing their work prior to completion of GSoC. This can often be based on your final report or, if you prefer, can be a more narrative-style summary of your experience with GSoC (lessons learned, challenges, highlights, etc). The writeup should be posted either on a blogging platform where links tend to persist reliably (e.g. Medium, Hashnode, ?), or, if preferred, directly as a markdown-formatted GitHub gist. Please avoid personal GitHub Pages sites as we've found those to be less persistent (see our previous year's contributors' posts for dead link examples). See IOOS' 2024 GSoC [project results page](https://github.com/ioos/gsoc/blob/main/2024/project-results.md) for example contributor writeups._ 91 | 92 | ## Additional Background/Logistics 93 | 94 | Please provide brief answers to the following questions: 95 | * What is your preferred method to communicate with your project mentors during GSoC (community bonding period & coding period). What formats are you able to use: virtual check-in meetings, Slack, GitHub issue, email? 96 | * Is there anything your mentors should know about your previous committments, other work schedule, or studies during GSoC that you'll need to work around during GSoC? How do you plan to honor these committments while also completing your GSoC project? Please provide this info to ensure your mentors are aware and can be most effective in supporting you. 97 | * 98 | 99 | ## Appendix 100 | 101 | *Optional*: Please add any additional content or references/links that support your application. 102 | 103 | *Note: Portions of this application template were borrowed from the excellent template provided the Python GSoC organization: https://github.com/python-gsoc/python-gsoc.github.io/blob/main/ApplicationTemplate.md. Thanks!* --------------------------------------------------------------------------------