Skip to content

Commit

Permalink
Merge pull request #76 from marc-aurele-besner/feat/improveReadme
Browse files Browse the repository at this point in the history
Improve README.md, package.json and add CONTRIBUTING.md
  • Loading branch information
dbluhm authored May 7, 2024
2 parents f41d9e1 + 49a1267 commit 198658c
Show file tree
Hide file tree
Showing 3 changed files with 153 additions and 34 deletions.
58 changes: 58 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Contributing to DIDComm Browser Demo

We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:

- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer

## We Develop with GitHub

We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.

## We Use [GitHub Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests

Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://guides.github.com/introduction/flow/index.html)). We actively welcome your pull requests:

1. Fork the repo and create your branch from `main`.
2. If you've added code that should be tested, add tests.
3. Ensure the test suite passes.
4. Make sure your code lints.
5. Issue that pull request!

## Any contributions you make will be under the ISC Software License

In short, when you submit code changes, your submissions are understood to be under the same [ISC License](https://github.com/decentralized-identity/didcomm-demo/blob/main/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern.

## Report bugs using Github's [issues](https://github.com/decentralized-identity/didcomm-demo/issues)

We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/decentralized-identity/didcomm-demo/issues/new); it's that easy!

## Write bug reports with detail, background, and sample code

**Great Bug Reports** tend to have:

- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

People *love* thorough bug reports. I'm not even kidding.

## Use a Consistent Coding Style

- You can use `npm run format` to ensure your code conforms to our set style.
- Documentation updates are also welcome.

## License

By contributing, you agree that your contributions will be licensed under its ISC License.

## References

This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/master/CONTRIBUTING.md).
106 changes: 76 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,78 @@
# DIDComm Browser Demo

The [DIDComm Browser Demo][demo] contains a fully functioning DIDComm v2
application, capable of both sending and receiving DIDComm messages through a
DIDComm v2 capable mediator. The purpose of the [DIDComm Demo][demo] is to help
people understand the basics of [DID Communication][didcomm] without burdening
them with all the complexities of optional protocols, such as those pertaining
to verifiable credentials. With this in mind, only the following DIDComm
protocols have been implemented:

Protocols pertaining to mediation:
- https://didcomm.org/coordinate-mediation/3.0/
- https://didcomm.org/messagepickup/3.0/

Core Protocols:
- https://didcomm.org/routing/2.0/ (via the [didcomm][didcommts] typescript library)
- https://didcomm.org/discover-features/2.0/
- https://didcomm.org/trust-ping/2.0/

Protocols implemented to make the demo be easier to use:
- https://didcomm.org/basicmessage/2.0/
- https://didcomm.org/user-profile/1.0/

Along with the above protocols, `only did:peer:2` DIDs are supported at this
time. The [DIDComm Demo][demo] creates a new `did:peer:2` DID upon page load
and connects to a mediator (via the mediator's `did:peer:2` DID) to negotiate
mediation. Once the negotiation has completed, the demo's DID will appear at
the top of the screen.

[demo]: https://demo.didcomm.org
[didcomm]: https://didcomm.org
[didcommts]: https://www.npmjs.com/package/didcomm
## Overview

The [DIDComm Browser Demo](https://demo.didcomm.org) showcases a fully functioning DIDComm v2 application capable of both sending and receiving messages through a DIDComm v2 capable mediator. The primary goal of the demo is to simplify the understanding of [DID Communication](https://didcomm.org) (DIDComm) principles by implementing only essential protocols.

### Supported Protocols

**Mediation Protocols:**

- [Coordinate Mediation 3.0](https://didcomm.org/coordinate-mediation/3.0/)
- [Message Pickup 3.0](https://didcomm.org/messagepickup/3.0/)

**Core Protocols:**

- [Routing 2.0](https://didcomm.org/routing/2.0/) (via the [didcomm TypeScript library](https://www.npmjs.com/package/didcomm))
- [Discover Features 2.0](https://didcomm.org/discover-features/2.0/)
- [Trust Ping 2.0](https://didcomm.org/trust-ping/2.0/)

**Utility Protocols for Enhanced Usability:**

- [Basic Message 2.0](https://didcomm.org/basicmessage/2.0/)
- [User Profile 1.0](https://didcomm.org/user-profile/1.0/)

**DID Support:**
Currently, only `did:peer:2` DIDs are supported. Upon page load, a new `did:peer:2` DID is generated, which connects to a mediator to negotiate mediation.

## Getting Started

### Prerequisites

Before you can run or build the DIDComm Browser Demo, ensure you have the following installed:

- [Node.js](https://nodejs.org/) (LTS version recommended)
- [npm](https://www.npmjs.com/) (comes with Node.js) or [Yarn](https://yarnpkg.com/)

### Installation

Clone the repository and install the dependencies:

`git clone https://github.com/decentralized-identity/didcomm-demo.git`
`cd didcomm-demo`
`npm install` # Or use `yarn install` if you prefer yarn over npm

### Running the Application

To run the application locally:

`npm start` # Or `yarn start`

This command starts a local development server. Open http://localhost:8080 in your browser to view the application.

### Building the Application

To build the application for production:

`npm run build` # Or `yarn build`

This will bundle the application into static files in the `dist/` directory.

### Formatting Code

To format the TypeScript files in the `src/` directory:

`npm run format` # Or `yarn format`

## Contributing

Contributions to the DIDComm Browser Demo are welcome! Here are a few ways you can help:

- Report issues and suggest features in the [Issues](https://github.com/decentralized-identity/didcomm-demo/issues) section of the repository.
- Submit pull requests with bug fixes and new features.

Please read [CONTRIBUTING.md](https://github.com/decentralized-identity/didcomm-demo/CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.

## License

This project is licensed under the MIT License - see the [LICENSE](https://github.com/decentralized-identity/didcomm-demo/blob/main/LICENSE) file for details.
23 changes: 19 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,32 @@
{
"name": "didcomm-demo",
"version": "1.0.0",
"description": "",
"description": "A browser-based demonstration of DIDComm v2 messaging, showcasing simple and advanced protocols for decentralized identity communication.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack serve",
"build": "webpack build",
"format": "prettier --write \"src/**/*.ts\""
},
"keywords": [],
"author": "",
"license": "ISC",
"repository": {
"type": "git",
"url": "https://github.com/decentralized-identity/didcomm-demo.git"
},
"keywords": [
"DIDComm",
"decentralized identity",
"identity",
"communication",
"DID",
"messaging"
],
"author": "Decentralized Identity Foundation",
"license": "MIT",
"homepage": "https://demo.didcomm.org",
"bugs": {
"url": "https://github.com/decentralized-identity/didcomm-demo/issues"
},
"dependencies": {
"@noble/curves": "^1.2.0",
"didcomm": "^0.4.1",
Expand Down

0 comments on commit 198658c

Please sign in to comment.