Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Wikipedia article on ORM: https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping

Learning Objectives

  • Mastering the open-source workflow
    • Managing issues, pull requests, development branches, and repository content
  • Being part of an open community, navigating and utilizing different forums
  • Working in a team
  • Covering a broad spectrum of software development skills
    • Conducting unsupervised research for state-of-the-art solutions
    • Designing/implementing functionally rich, testable, maintainable software components
    • Introduction to model-driven software engineering approaches
    • Documentation and presentation skills
      • Developer documentation
      • User documentation
      • To-the-point, coherent presentation

Expected Outcome

  1. Survey existing (including DLT-independent) ORM solutions
  2. Define a methodology for translating data models to a key-value store-compatible scheme
  3. Explore/identify various possible strategies for storing entities on the ledger
  4. Implement the workflow for generating data access layer for Java chaincodes based on the input models

...

The project aims to enhance the chaincode development experience for the Hyperledger Fabric platform.

Mentee Skills

Education Level

At least an ongoing M.Sc. study in software engineering is recommended.

Technical Skills

Required skills:

  • Basic understanding of version control and git
  • Some experience with Java
  • Intermediate verbal and writing skills in English
  • High-level understanding of Hyperledger Fabric consensus and chaincode development

Nice-to-have skills (the mentee can learn these during the internship):

  • Advanced git usage (upstream repositories, branching, rebasing, etc)
  • Familiarity with Visual Studio Code or similar IDE
  • Experience in software modeling approaches
  • Writing documentation in markdown
  • Capability for unsupervised learning

Mentee Open Source Contribution Experience

Show us a code base (preferably on GitHub) you created/had a major role in creating and which you are proud of. If that's not applicable, our plan is to assign some programming tasks during the selection interview for such candidates.

Future plans

  • The project results can significantly lower the entry barrier for chaincode development, independently of the use case. Thus it would be highly beneficial for the community, for example, in the form of a hl-lab project after the mentorship.
  • Moreover, the project targets the Java language, but it can be extended later to support the other chaincode development languages.
  • Also, such functionality could be integrated into IDEs (such as VS Code) to support rapid chaincode prototyping.

...