{"id":18436087,"url":"https://github.com/codenotary/immuchallenge","last_synced_at":"2025-07-12T02:03:05.742Z","repository":{"id":109942933,"uuid":"306075561","full_name":"codenotary/immuchallenge","owner":"codenotary","description":"immudb coding challenges","archived":false,"fork":false,"pushed_at":"2021-02-19T12:43:18.000Z","size":18,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-13T12:54:26.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codenotary.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-21T15:54:26.000Z","updated_at":"2022-10-18T17:11:23.000Z","dependencies_parsed_at":"2023-07-14T15:00:45.184Z","dependency_job_id":null,"html_url":"https://github.com/codenotary/immuchallenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenotary%2Fimmuchallenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenotary%2Fimmuchallenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenotary%2Fimmuchallenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenotary%2Fimmuchallenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codenotary","download_url":"https://codeload.github.com/codenotary/immuchallenge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239115676,"owners_count":19584254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:10:15.491Z","updated_at":"2025-02-16T10:24:55.982Z","avatar_url":"https://github.com/codenotary.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# The immudb Coding Challenge - Winter 2020 Edition\n\n```\n  The first immudb Coding Challenge is over and we're thrilled by the submissions! Many thanks to all participants and congratulations to the winners!\n```\n\n## Winners\n\n- 1st place - Oscar Fernandez (https://github.com/oscarpfernandez/immudbcc)\n- 2nd place - Antonio Navarro Perez (https://github.com/ajnavarro/immusql)\n\n\n\u003cimg align=\"right\" src=\"https://codenotary.io/images/immudb/mascot.png\" width=\"160px\" /\u003eTo all Gophers and data modeling wizards out there: do we have a challenge for you!!\nToday we announce our first #immuchallenge coding competition - Winter 2020 Edition. \n\nThe challenge: **Design and implement a document-like data model on immudb** \n\nOur Open Source immudb immutable datastore builds on the traditional key-value data model guaranteeing immutability  in a quite unique manner. This simple yet generic data model provides the basis for the design of more complex and challenging immutable data models - like document-like data models.\n\n## Instructions\n\nA document data model is composed of identifiable elements which have properties and may be related to other elements in many different ways. For more information about document data models, we've listed some helpful [resources](#More-Resources) below.\n\nWe expect a minimal functional implementation written in Go (including unit testing) - either fully integrated into immudb or as a standalone component. The new immutable document data model needs to be built on top of the immudb immutable key-value model in order to leverage immutability properties. \n\nBelow are the commands for getting the immudb Docker image using a Linux shell. You'll find more details about how to download and get started with immudb in our [developer jumpstart](https://docs.immudb.io/0.9.0/jumpstart.html).\n\n1. Pull immudb Docker Image from Docker Hub:\n\n```sh\ndocker pull codenotary/immudb:latest\n```\n\n2. Run immudb in a container:\n\n```sh\ndocker run -it -d -p 3322:3322 -p 9497:9497 --name immudb codenotary/immudb:latest\n```\n\nIn developing your solution, you'll have to make decisions that are related to:\n\n1. **API** which stores and retrieves documents and provide proof of no tampering \n2. **Data format** which defines how objects are exchanged between final application and storage \n3. **Atomicity** at the level of document property, single, or multiple document \n4. **Concurrency** to allow concurrent read and update operations \n5. **Granularity** of evidence to prove whether a whole document or only the document property is unchanged and untampered\n\nPlease submit your solution via email to challenge@vchain.us before **February 15th, 2021, 0:00AM CST**. All code submitted at a later time, will not be included in our decision process.\n\n## Competition Price Assignment Panel \n\nOur panel is comprised of Jerónimo Irázabal, immudb maintainer and project manager, Dennis Zimmer, CTO of vChain, and Michele Meloni, immudb core developer.\n\nThe two winners of the competition will be announced on this page on February 18th, 2021. We will select the best data models based on design decisions, implementation and performance as well as overall code quality. \n\nFeel free to also share your approach, testing, and/or anything interesting you have learned in the #immuchallenge channel in [slack](https://open-immutability.slack.com). \n\n## Prizes\n\n- 1st place - **$750** (Amazon.com Gift Card)\n- 2nd place - **$350** (Amazon.com Gift Card)\n\n## Questions \u0026 Clarifications\n\nFor further questions and modifications, contact jeronimo@vchain.us. \n\n## More Resources\n\n[immudb repository](https://github.com/codenotary/immudb)\n\n[immudb website](https://codenotary.io/technologies/immudb/)\n\n[immudb documentation](https://docs.immudb.io/)\n\nimmudb SDKs:\n\n1. Java: [immudb4j](https://github.com/codenotary/immudb4j)\n2. Golang: [immudb-go](https://docs.immudb.io/0.9.0/sdks-api.html)\n3. .NET: [immudb4dotnet](https://github.com/codenotary/immudb4dotnet)\n4. Python: [immudb-py](https://github.com/codenotary/immudb-py)\n5. Node.js: [immudb-node](https://github.com/codenotary/immudb-node)\n\nDocument data model references:\n\n1. https://en.wikipedia.org/wiki/Document-oriented_database\n2. https://www.mongodb.com/document-databases\n3. https://aws.amazon.com/nosql/document/\n4. https://apple.github.io/foundationdb/data-modeling.html#documents\n\n[Privacy Statement](https://codenotary.io/privacy-statement)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodenotary%2Fimmuchallenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodenotary%2Fimmuchallenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodenotary%2Fimmuchallenge/lists"}