-
Notifications
You must be signed in to change notification settings - Fork 141
Google Summer of Code 2025 Ideas List
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. You may be able to make use of a tool like Spectral as the framework for defining our own rules over the Concerto AST (JSON).
A tool that allow users to:
- Specify the naming of declarations. E.g. all names of scalars should be in camel case.
- Specify the naming of properties, enum cases e.t.c
- Specify which language features can be used. E.g. disallow maps, disallow forward references in regex validators.
- Enforce the use of certain features. E.g. all string properties should have a length validator.
- Enforce the use of @Term decorators on all declarations and properties e.t.c
- All concepts in a namespace should extend a given concept
- All concepts in a namespace must have unique names across multiple namespaces
Algorithms, Functional programming, Back end development, NodeJS, TypeScript
Jamie Shorten, Sanket Shevkar
175 hours (medium)
Medium
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.
- 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.
NodeJS, Typescript, Javascript, Basic understanding of Data Formats like JSON and YAML
Sanket Shevkar
175 hours (medium)
Medium
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.
- Updated Open API specification
- Updated reference implementation for the specification
- Address (some of) open issues
NodeJS, Typescript, Javascript, REST API design
Dan Selman, Niall Roche
350 hours (large)
Medium
Our specification conformance testing is in need of an overhaul! We'd like to migrate to a robust, proven testing framework like Vitest which would support ESM, and be performant and have a new dedicated concerto package used for Concerto conformance 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! The goal is to have a set of tests that can be run against any Concerto implementation to assess whether it is conformant with the specification.
- Migration to Vitest (or other appropriate framework)
- Consolidation of testing methodology and tooling
- New concerto package for tests, focused on conformance
- Build a set of tests for the Concerto validation rules
- Node / Javascript
- Unit testing (Mocha / Jest for example)
- Behaviour driven testing (optional, Cucumber, for example)
Dan Selman, Ertugrul Karademir
175 hours (medium)
Medium
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. This project will build upon the work that was carried out last year in the context of VS Code.
- 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
ReactJS, AI tooling
Diana Lease
350 hours (large)
Medium
We have tools that allow users to generate code from their Concerto models, supporting several languages. We would like to introduce a way of testing this code generation that compiles code for each language we are generating.
- Set of Docker images for each code generation target
- Run code gen tests within the correct image using GitHub actions, for example, generate Java code and then compile and run it using
javac
to ensure the generated code is correct
- Systems engineering, CI/CD
- Docker, Docker compose
- GitHub actions
Dan Selman, Ertugrul Karademir
175 hours (medium)
Medium
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.
- 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
ReactJS, Tailwind CSS
Diana Lease
175 hours (medium) - 350 hours (large)
Medium
Accord Project
A leading Linux Foundation open source initiative developing an ecosystem and open source tools for smart agreements