Skip to content

Google Summer of Code 2025 Ideas List

Diana Lease edited this page Feb 6, 2025 · 16 revisions

1. Linter for Concerto

Write a linter in TypeScript for Concerto Source files. It should make use of existing functionality to validate the Concerto DSL syntax and JSON AST of Concerto model against a set of rules. Rules should be defined in Typescript and which rules are run should be configurable.

Expected Outcomes:

A configurable linter program written in TypeScript and NodeJS.

Skills required/preferred:

Algorithms, Functional programming, Back end development, NodeJS, TypeScript

Possible Mentors:

Jamie Shorten, Sanket Shevkar

Expected size of project:

175 hours (medium)

Expected difficulty:

Medium

2. DCS JSON-YAML-JSON Convertor

Design and implement a convertor that would convert Decorator Command Sets JSON Objects to a much more human readable YAML format and vice-versa. Currently DCS JSON objects are very verbose to read, write and edit. With the new custom YAML format we aim to make DCS objects much more easier to read, write and edit.

Expected Outcomes:

  • A utility/method in DecoratorManager to convert DCS JSON to YAML and from YAML to JSON.
  • 1:1 conversion is not expected. YAML should have a custom format that is less verbose and more readable.

Skills required/preferred:

NodeJS, Typescript, Javascript, Basic understanding of Data Formats like JSON and YAML

Possible Mentors:

Sanket Shevkar

Expected size of project:

175 hours (medium)

Expected difficulty:

Medium

3. Accord Project Agreement Protocol

The Accord Project Agreement Protocol (APAP) defines the protocol used between a document generation engine or contract management platform and an agreement server that provides agreement features like template management, document generation, format conversion etc.

Expected Outcomes:

  • TBD

Skills required/preferred:

NodeJS, Typescript, Javascript, REST API design

Possible Mentors:

Dan Selman, Niall Roche(?)

Expected size of project:

350 hours (large)

Expected difficulty:

TBD

4. Test Refactoring

Our testing is in need of an overhaul! We'd like to migrate to a robust, proven testing framework like Jest and have a new dedicated concerto package used for testing. An AI tool may be useful in helping with the migration, so feel free to mention how AI could help you with this project!

Expected Outcomes:

  • Migration to Jest (or other appropriate framework)
  • New concerto package for tests

Skills required/preferred:

TBD

Possible Mentors:

Dan Selman, Ertugrul Karademir

Expected size of project:

TBD

Expected difficulty:

TBD

5. Incorporating AI into Template Playground

Our Template Playground web application is used to help onboard users to our technologies. We'd love to make this even easier by adding AI features to make it easier to create, edit, and preview contract templates.

Expected Outcomes:

  • Allow users to upload a file and we'd use AI to convert it to an Accord Project template
  • Possibly incorporate auto-complete suggestions when editing using the code editors built into the web app

Skills required/preferred:

ReactJS, AI tooling

Possible Mentors:

TBD

Expected size of project:

TBD

Expected difficulty:

TBD

6. Testing for Code Generation targets

We have tools that allow users to generate code from their Concerto models, supporting several languages. We like to introduce a way of testing this code generation that compiles code for each language we are generating.

Expected Outcomes:

  • Set of Docker images for each code generation target
  • Run code gen tests within the correct image using GitHub actions

Skills required/preferred:

Systems engineering, Docker, GitHub actions

Possible Mentors:

Dan Selman, Ertugrul Karademir

Expected size of project:

TBD

Expected difficulty:

TBD

7. Migration of Template Playground to use Tailwind CSS

As mentioned previously, our Template Playground web application is used to help onboard users to our technologies. By using a popular, well-maintained CSS framework like Tailwind, we could improve performance and code maintainability.

Expected Outcomes:

  • Template Playground updated to use Tailwind CSS
  • Existing UI tests updated
  • Possibly other UI changes to make user experience better, more performant, and/or optimized for multiple screen sizes

Skills required/preferred:

ReactJS, Tailwind CSS

Possible Mentors:

TBD

Expected size of project:

TBD

Expected difficulty:

TBD

Clone this wiki locally