funded
CardanoJ - Build dApps in Java
Current Project Status
In Progress
Amount
Received
₳120,000
Amount
Requested
₳150,000
Percentage
Received
80.00%
Solution

Create a library for Java developers to write off-chain code in Java, so they can write dApp faster.

Problem

Java Developers without Haskell experience need to spend lot of time in learning Haskell before they can build dApps on Cardano.

Impact Alignment
Feasibility
Value for money

Team

2 members

CardanoJ - Build dApps in Java

Please describe your proposed solution.

The Idea

CadanoJ will provide Java developers with APIs to write entire off-chain code for their dApps in Java.

For the Java Programmers Community

For Java developers, it means instead of spending weeks or even months learning advanced Haskell, they can now build dApps in days.

Background

2.5 years ago when Udai and Narendra started exploring Cardano Tech stack, they faced lot of difficulties to get started. They both learned Haskel and Plutus and they have been part of Plutus Pioneer Program in 2022-2023. They have extensive experience on Java technologies, each of them 20+ years experience on Java Development and technical Design and Architecture. As they manage Java Developers teams, they receive lot interest from their team members.

This encouraged them to start building tools for Java Developers. This is first tool for Java developer to write off-chain code for dApps.

CardanoJ

The CardanoJ library will have core functionalities that enable developers to:

  • Compose datums and redeemers, which are used in transactions that interact with Plutus script
  • Query and deserialize datums and redeemers to Java object
  • Build transactions to interact with Plutus script
  • Stake ADA locked in Plutus scripts to designated pools
  • Test different use cases and scenarios on a local chain
  • Deploy Plutus scripts to testnet and mainnet

Apart from core functionalities, we will also create two end-to-end educational dApps that can be directly deployed to testnet or mainnet. The dApps will be similar to the ones in Plutus pioneer program, but with all off-chain code written in Java.

Please define the positive impact your project will have on the wider Cardano community.

The Challenge and Opportunity

Cardano Community facing couple of major challenges: One is adaoption of Cardano Blockchain and second is developers availability. Well, both are inter related. Availability of ready Developers can help in building dApps and other usecases on Cardao. This can encourge and support entrepreneurs and solution providers to bring solutions to the market faster. As adoption increases, there will be further increased demand of Developers.

Worldwide, Number one is Javascript and related framework developers, that is around 35%, second is Java developers, that is around 30%. Today, there are libraries for Javascript developers to write dApp off-chain code however there is nothing similar for Java developers.

The Solution

CardanoJ will encourage Java developers to write dApp and reduce development time. It will empower Java Developers and attact them to Cardano Development Ecosystem, that can have considerable positive impact for Cardano Ecosystem and its adoption.

As this is opensource and community project, it will be open for community to update and upgrade as required.

Measurables:

A Simple measure is how many new Java Developers are becoming part of Cardano Development commnuity and writing On-chain and off-chain applications.

Number of times CardanoJ library is used can be tracked by anyone online. Other mechansim is to run a survey to get developers feedback.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

We are passionate about technology, and we have been leveraging Java Technology for more than 2 decades. Since we got introduced to Cardano by a Cardano community Evangelist 2.5 years ago, we have learned Cardano tech stack as well delivered multiple projects on Cardano blockchain.

Our team's capability to deliver this project with high levels of trust and accountability is grounded in our extensive experience and expertise in both blockchain technology and Java Technology. Here’s how we validate our approach and ensure the feasibility of the project:

Team Expertise and Experience:

  • Blockchain Experts: Our team includes seasoned professionals with in-depth knowledge of blockchain technology, specifically in the Cardano Dev Stack
  • Java Developers: We have large pool of experienced and very senior Java Developers with software architecture and technical design experience on enterprise solution.
  • Project Management: Our experienced project manager will oversee the project, ensuring milestones are met efficiently and effectively.

Validating the Approach:

  • Feasibility: We are ourselves Java Developers and we experience the challenge first hand
  • Feedback: While we approached community in various forums for solution, no ready solution found, rather members agreed they facing same challenge
  • Ecosystem: As the Cardano Ecosystem already have similar library for Javascript and Python, validate there is need for such for Java Developers as well

Trust and Accountability in Fund Management:

  • Transparent Budgeting and Reporting: Detailed budget plans will be openly shared
  • Stakeholder Engagement: Regular updates and feedback sessions with the Cardano community and stakeholders to maintain transparency and address concerns.

Steps to Ensure Trust:

  1. Kick-off Meeting: With all stakeholders to align on goals, expectations, and reporting structure.
  2. Regular Progress Updates: Through community forums, social media, and direct reports.
  3. Mid-project Review: An in-depth review at the midpoint to assess progress and adjust strategies if necessary.
  4. Final Report: Detailed project report and financial at the completion.

By combining our team's expertise with a rigorous approach to project management and stakeholder engagement, we believe we are well-positioned to deliver this project successfully. Our commitment to transparency, accountability, and continuous communication ensures that we can be trusted to manage funds properly and achieve the project’s objectives.

What are the key milestones you need to achieve in order to complete your project successfully?

Timeline: Month 1 and 2

Description:

Core Plutus APIs in Java : Developing Main Building Blocks

Deliverables/Output:

  • Serialization and deserialization for datum and redeemer
  • Transaction builder that supports script transactions
  • Automatic fee estimation for script transactions
  • Stake delegation for funds locked in Plutus scripts

Acceptance criteria: CadanoJ code and documentation published on Github, accessible to the public.

>Timeline: Month 3

Description:

Core Plutus APIs in Java: This milestone provides all necessary Java API documentation for developers to create script transactions.

Deliverables/Output: API documentations

Acceptance criteria: CadanoJ API published on Github, accessible to the public.

>Timeline: Month 4 and 5

Description:

Plutus Java SDK: This milestone provides toolings for developers to create, test, and manage their projects in shorter amount of time.

Deliverables/Output:

  • Helper functions for dApp environment setup and simulation
  • Command line interface (CLI) that launches and manages local testnet
  • CLI that bootstraps dApp projects
  • CLI that creates and manages wallets
  • CLI that builds and tests dApps
  • CLI that deploys Plutus scripts to blockchain

Acceptance criteria: CadanoJ SDK and documentation published on Github, accessible to the public.

>Timeline: Month 6

Description:

Educational dApps: This milestone introduces the Java library to a broader audience by showing how to use the library in real working dApps.

Deliverables/Output:

  • Two end-to-end full stack dApps
  • Backend built on the APIs and SDK from previous milestones
  • Frontend webApp where users will be able to use light browser wallet to use the dApp
  • Comprehensive documentations on the designs and architectures for the dApps
  • Detailed blog posts about building

And Final Closing Report.

Acceptance criteria: CadanoJ code, SDK and API documentation published on Github, accessible to the public. Closing Report Published.

Who is in the project team and what are their roles?

Our team is engaged on Telegram, Discord and Cardano Forums. Udai has relationships with Project Catalyst Fund operational and technical team members and are involved in various forums. Narendra is active participate in various technical forums on Discord.

Udai Solanki ( Software Architect, Solution Engineer and Project Cordinator) , CTO at www.erevmax.com

<https://www.linkedin.com/in/solanki>

Technical Architect |Java Programmer|Plutus and Haskell Programmer

20+ years Technology and programming experience

2+ years Cardano Tech Stack experience

Narendra Das ( Software Architect, Developer)

https://www.linkedin.com/in/naren4das/

Technical Architect |Java Programmer|Plutus and Haskell Programmer

20+ years programming experience

2+ years Cardano Tech Stack experience

Deepak Kumar Singh (Developer)

https://www.linkedin.com/in/deepak-kumar-singh-3839231a/

Technical Architect |Java Programmer|

16+ years programming experience

Mahendra Sharma (Developer)

https://www.linkedin.com/in/mahendra-sharma-79a988b8/

Software Architect|Java Programmer and Delivery Manager

18+ years Programming and Technology experience

Please provide a cost breakdown of the proposed work and resources.

The requested budget is for our time and expenses for six months of the project from its commencement in March to August 2024 to deliver the Code & relevant documentation for each milestone.

Milestone 1 : Core Plutus APIs in Java : Developing Main Building Blocks

Duration: 2 months

Solution Architecting and Design : 20 person days x $200 =$4,000

Development, 2 developers : 80 person days x $150 = $12,000

Project Cordination and Documentation : 20 person days x $150 = $3,000

Total: $19,000

Total ADA @ 0.38 = ADA 50,000

Milestone 2 : Core Plutus APIs in Java : API documentations

Duration: 1 month

Solution Architecting and Design : 10 person days x $200 =$2,000

Development : 40 person days x $150 = $6,000

Project Cordination and Documentation : 10 person days x $150 = $1,500

Total: $9,500

Total ADA @ 0.38 = ADA 25,000

Milestone 3 : Core Plutus APIs in Java : Plutus Java SDK:

Duration: 2 months

Solution Architecting and Design : 20 person days x $200 =$4,000

Development : 80 person days x $150 = $12,000

Project Cordination and Documentation : 20 person days x $150 = $3,000

Total: $19,000

Total ADA @ 0.38 = ADA 50,000

Milestone 4 : Core Plutus APIs in Java : Educational dApps:

Duration: 1 month

Solution Architecting and Design : 10 person days x $200 =$2,000

Development : 40 person days x $150 = $6,000

Project Cordination and Documentation : 10 person days x $150 = $1,500

Total: $9,500

Total ADA @ 0.38 = ADA 25,000

Total Budget: $57,000

Total Budget in ADA @ 0.38 = ADA 150,000

How does the cost of the project represent value for money for the Cardano ecosystem?

The Cost of the proposed project is less than 1.5% of the Category budget to develop a solution that many developers can benefit and it is an open source project. It is project for community to expand and involve more members.

For this smaller cost, this solution can save lot of development time for many community projects. Its usage is not one time, this can continue being used long time. Even few hundred of developers use it, it brings justification to cost. Java developers are second largest programmer community and CardanoJ has huge potential to attact these Java Developers pool and extend benefit to save time.

It brings indirect value by increasing Cadano blockchain adoption. As more developers are attacted to ecosystem and the development is happening faster, that is immense value in terms of adoption to the Cardano Ecosystem.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00