TBD54566975 / open-source-programs

Issue tracking and milestone scheduling for TBD's Open Source Programs.
Apache License 2.0
247 stars 21 forks source link

[PROPOSAL] - Getting Started Application #48

Open ALRubinger opened 1 year ago

ALRubinger commented 1 year ago

Getting Started Experience

Desired outcome Meet the needs of those curious about building Web5 Applications: get them going. 3 minutes to their first win. Scale as the point of entry for new applications for newcomers and experts alike. Create a robust experience for making Web5 applications: using software launchers (webapp and command-line), sample application, scaffolding for new applications, and playgrounds. A comprehensive, joyful experience which bridges software and services used to make new Web5 apps, supporting documentation, stores of examples and feature scaffolds, and playgrounds.

Tagline: "Your fully-working new Web5 Application, in 3 minutes."

Principles:

Current Gaps Right now: contributors and builders alike, including those on our team, don't yet have a clear understanding how to create a new Web5 application.

Implementation Suggestions This section will need to be prioritized and scoped into Phases. Brainstorming only:

User Input Suggestions From brainstorming w/ @michaelneale @csuwildcat:

Architectural Design to Consider

General Remits Defined as light guidance for slicing and parallelizing work

Types of Web5 applications

Example Web5 Application Ideas

Similar Approaches to Build Off

ALRubinger commented 1 year ago

Open for ideas and more input!

After that:

ALRubinger commented 1 year ago

Updated description to reflect additional inputs from @csuwildcat @michaelneale

pippellia-btc commented 1 year ago

Some building-block-apps that I personally would love to see on a getting started experience like this one:

1) Create a "Sign in with your DID" button, to be integrated in a webpage.

2) How to make two DIDs send messages to each other.

3) How to Issue a VCs after passing a CAPTCHA or something.

4) How to send a file to your DWN and store it there. How to get the file from there.

5) How to create a bash script that does point 4) automatically for a folder.

Simple stuff like these are really really helpful. The examples create something that one can use, but more importantly they give you the building blocks for your Web5 app.

nearlyjuly commented 1 year ago

Maybe a tutorial along the lines of the following:

A PWA that walks through a brief outline of a DID and then creates one and stores the details such as the tutorial here https://github.com/frankhinek/did-ion-examples. Then a brief outline of a DWN and then a form to create a record entry sent to a hosted DWN set up by TBD. Then a talk through the ways to query the DWN and a form to do so for a pre-prepared entry that allows access (and maybe an example for one where they don't have access). Then finally a talk through how VCs work and then one is issued to the user to finish the tutorial. So at the end of it they can download their DID info and VC in a text file so that they can perhaps use them for their own attempts, or just have something concrete to show how it all worked.

michaelneale commented 1 year ago

I like @pippellia-btc list above. #2 is addressed in a way by: https://github.com/TBD54566975/dwn-cli so that is good.

They are all nice ways to break it down into examples that someone can build from that are relevant to them.

angiejones commented 1 year ago

Some building-block-apps that I personally would love to see on a getting started experience like this one:

  1. Create a "Sign in with your DID" button, to be integrated in a webpage.
  2. How to make two DIDs send messages to each other.
  3. How to Issue a VCs after passing a CAPTCHA or something.
  4. How to send a file to your DWN and store it there. How to get the file from there.
  5. How to create a bash script that does point 4) automatically for a folder.

Simple stuff like these are really really helpful. The examples create something that one can use, but more importantly they give you the building blocks for your Web5 app.

excellent list! 🎯

angiejones commented 1 year ago
bobbilee19 commented 1 year ago

Some ideas from the team this week on the getting started code block...

Either of these...

  1. Generate a DID, store private keys
  2. Set up local DWN (instantiate DWN)
  3. Write first record to DWN
  4. Usage of record interface method
  5. Protocols
  6. For a credential application or presentation exchange:
    • set up server (create identities)
    • build your flow (create schemas, presentation definition)
    • test your presentation (issue yourself some credentials and submit)
    • open it to the public
ALRubinger commented 1 year ago

Closely related work, perhaps even to be aligned as pieces of one Workstream: