Project Ideas
This page contains project ideas for contributors. Unlike the Roadmap, this page is just a collection of ideas that is loosely ordered by priority. Feel free to add projects to this list. Even if the idea is vague, add it and we can build on it together.
FRONTEND | End-to-end applications that rely on the platform/core. |
---|---|
PLATFORM | Extensible frameworks that build on the core service. |
CORE | The heart of the Concourse infrastructure (i.e. storage engine, RPC, etc). |
RELEASE | Elements that affect how Concourse Server is maintained and released. |
Project | Description | Acceptance Criteria | Required Skills | Skill Level | Mentor |
---|---|---|---|---|---|
Browser Shell & Tutorial FRONTEND | Create a browser-based shell (similar to CaSH) that has an interactive tutorial. The goal is for users to experiment with ConcourseDB and learn the API without having to first download and install the software. |
|
| Medium | Jeff Nelson |
Language Bindings PLATFORM | We need native client libraries for non-JVM languages. The goal is to ship client APIs in Python, Ruby, PHP, Go and Javascript. We are open to shipping clients for other languages as well, but the aforementioned are the priorities. This is obviously a project that several people can work on since there are multiple target languages. Each of the targets is supported by Thrift, so the crux of these projects will center on designing an API that feels right for the language (i.e. the Python client should conform to Python conventions, which are very different from Java conventions). |
| To work on a library for a particular language, you need to have enough experience in that language to respect its conventions and traditions. You should also be familiar with popular packaging/distribution mechanisms for that language. | Medium | Jeff Nelson |
HTTP API PLATFORM CORE | Add an HTTP API to Concourse Server that allows users to CRUD data using HTTP endpoints. The API should try to be as REST-like as possible. |
|
| Medium | Jeff Nelson |
Browser Dashboard FRONTEND | Create a browser based Dashboard that allows users to visualize, analyze and administer data in real-time. At a minimum, this should provide an interface (similar to PhpMyAdmin) that allows users to see data and run queries. A stretch goal is to provide graphs and charts for more advanced data analytics. |
|
| Advanced | Jeff Nelson |
Package Manager Integration RELEASE | Make Concourse Server installable using OS specific package managers like Yum, Apt and Homebrew. Using a tool like https://github.com/jordansissel/fpm may be an option for this project. |
|
| Beginner | Jeff Nelson |
Performance Testing CORE | Conduct performance tests to see how ConcourseDB scales with different data sets and workloads. A stretch goal is to create a re-usable framework to automate the performance tests and integrate with our release process. We already have a test framework upon which to build. | The ability to answer the following questions:
|
| Advanced | Jeff Nelson |
Document all the things RELEASE | We have some documentation, that needs to be improved (e.g. made more readable and consistent). We also need documentation for all the things that don't have it. |
|
| Beginner | Jeff Nelson |
Automate API Documentation CORE | We have API documentation in a lot of places, each of which is manually written. This leads to things getting out of sync easily. This project will try to consolidate the places where documentation exists and make generating copies of the documentation automatic.
|
|
| Medium | Jeff Nelson |
-
CON-214Getting issue details...
STATUS
Automatic data storage compaction/expansion CORE |
|
|
| Advanced | Jeff Nelson |
-
CON-215Getting issue details...
STATUS
Windows Support CORE | Right now Concourse does not work on Windows. It's also very hard for Windows developers to contribute. We'd like to change that. |
|
| Medium | Prakash Dubey |
- CON-201Getting issue details... STATUS CCL - Concourse Criteria Language CORE PLATFORM | Allow Concourse to parse structure statements written in natural language to Criteria objects. This is not designed to be an entire query language akin to SQL. Instead, we want to provide a limited language that allows users to express complex criteria similarly to the Criteria builder, but using natural language as the interface. |
|
| Advanced | Jeff Nelson |