From f20e9b4cc2228653b39dc357f6f4e248c8bd079b Mon Sep 17 00:00:00 2001 From: andrea-tabbles Date: Tue, 2 May 2023 12:26:20 +0200 Subject: [PATCH] update tech, quickstart, sign-up --- docs/_sidebar.md | 20 ++++--- docs/index.html | 4 +- docs/pages/components.md | 60 +++++++++++--------- docs/pages/user-manual/quickstart.md | 70 ++++++----------------- docs/pages/user-manual/sign-up.md | 83 ++++++++++++++++++++++++++++ 5 files changed, 147 insertions(+), 90 deletions(-) create mode 100755 docs/pages/user-manual/sign-up.md diff --git a/docs/_sidebar.md b/docs/_sidebar.md index cbb0212..bb8c887 100755 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -30,33 +30,35 @@ along with this program. If not, see . - [Sign up](/pages/user-manual-signup.md) ---> +- [Quickstart](/pages/user-manual/quickstart.md) - User manual - - [Quickstart](/pages/user-manual/quickstart.md) + - [Sign-up](/pages/user-manual/sign-up.md) - [Add project](/pages/user-manual/add-project.md) - [Project page](/pages/user-manual/project-page.md) - [Search project](/pages/user-manual/search-project.md) - [Contributions](/pages/user-manual/contributions.md) - - [Economic Model](/pages/user-manual/economic-model.md) - - [DID](/pages/user-manual/did.md) - [Digital Product Passport](/pages/user-manual/dpp.md) + - [W3C-DID](/pages/user-manual/did.md) - [Import from LOSH](/pages/user-manual/import-losh.md) - [Notifications](/pages/user-manual/notifications.md) + - [Economic Model](/pages/user-manual/economic-model.md) - **Features and components** -[Overview: tech features and stack](/pages/components.md) - - **Back-end** + - [Tech features and stack](/pages/components.md) + + - [Loshifacer](/pages/loshifacer.md) - **Sub-modules** - [Zenflows-crypto](/pages/zenflows-crypto.md) - +---> - Misc - [Contributing](/general/contributing.md) diff --git a/docs/index.html b/docs/index.html index 627df31..bc376fb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -21,7 +21,7 @@ - FabCityOS 📝 Documentation + Interfacer 📝 Documentation @@ -72,7 +72,7 @@ window.$docsify = { logo: "https://github.com/dyne/interfacer-docs/raw/main/docs/_media/general/interfacer-logo.png", formatUpdated: '{MM}/{DD}/{YYYY} {HH}:{mm}', - homepage: './pages/components.md', + homepage: './pages/user-manual/sign-up.md', repo: "dyne/interfacer-docs", relativePath: true, loadSidebar: true, diff --git a/docs/pages/components.md b/docs/pages/components.md index 242a089..99cdf4e 100755 --- a/docs/pages/components.md +++ b/docs/pages/components.md @@ -18,15 +18,12 @@ along with this program. If not, see . # Intro -Welcome to the documentation of Fab City Os core platform, one of the main components of the [Interfacer project](https://interfacerproject.eu). +Welcome to the documentation of Interfacer platform, one of the main components of the [Interfacer project](https://interfacerproject.dyne.org/. This platform provides innovative tools to support the complexity of a distributed accounting system for flexible collaboration processes, it leverages crypto technology to empower participants with privacy, transparency and data ownership and can be adopted to implement fair and equitable compensation mechanisms. -## User manual - -[The Instruction manual](/pages/user-manual/quickstart.md) has been carefully conceived for helping the user to make full use of the Interfacer Platform. The document contains detailed explanations regarding operations, procedures and functionalities and further support channels. - +--------------------------- ## Technical features @@ -36,59 +33,68 @@ well even on low-power hardware and, in some cases, ARM64 boards like the Raspbe cases, the Linux kernel and GNU tools are used where necessary. #### Cryptography and privacy -* The sign in/up flow of Fab City OS is managed by the [Zenflows-crypto](/pages/zenflows-crypto) scheme: +* The sign in/up flow of Interfacer is managed by the [Zenflows-crypto](/pages/zenflows-crypto) scheme: - Each operation performed by the user is signed using the [EDDSA](https://datatracker.ietf.org/doc/rfc8032/) scheme with the user's private key, which are **never communicated to the server**. The server knows only the public keys of each user, so in case of a server-side security breach, the hackers will not be able to impersonate any user. - The user's keyring is generated at sign-up based on the user's answers to a set of security questions. - Based on the user's answers to the security questions, a seed as [mnemonic passphrase](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) format is printed out, the seed can be used to recreate the private keys and sign in from the same device or a different one. - In case the seed is lost, it can be recreated by answering the security questions again. #### GraphQL and Valueflows -* Fab City OS uses [GraphQL](https://graphql.org/) to store and retrieve information in the back end: the front end communicates with the back end via *GraphQL mutations* instead of web APIs, which makes the development more lean and enables third parties to easily create applications that communicate with the back end. +* Interfacer uses [GraphQL](https://graphql.org/) to store and retrieve information in the back end: the front end communicates with the back end via *GraphQL mutations* instead of web APIs, which makes the development more lean and enables third parties to easily create applications that communicate with the back end. * The data is modeled using the [Valueflows](https://www.valueflo.ws/): an ontology designed to facilitate internetworking of software projects that handle economic transactions. #### Distributed caching and sharding -* Fab City OS uses [Zenswarm-storage](/pages/zenswarm-storage.md) as a distrbuted caching and sharding engine for images, documents and information. Designed to work as CDN, it can scale easily and deliver data faster. +* Interfacer uses [Zenswarm-storage](/pages/zenswarm-storage.md) as a distrbuted caching and sharding engine for images, documents and information. Designed to work as CDN, it can scale easily and deliver data faster. #### W3C-DID * Users' digital identities (DID) are stored and distributed using the [W3C-DID](https://www.w3.org/TR/did-core/) standard. For each user a W3C-DID document is stored: the document contains no private or sensitive information about the user (no name, email or other) making the whole platform GDPR compliant by design. -* The DIDs are produced, and can be resolved, using Dyne.org's open source [W3C-DID method](https://new.dyne.org/W3C-DID/#/), which is registered in the [W3C-DID method list](https://www.w3.org/TR/did-spec-registries/#did-methods). +* The DIDs are produced, and can be resolved, using Dyne.org's open source [W3C-DID method](https://dyne.org/W3C-DID/), which is registered in the [W3C-DID method list](https://www.w3.org/TR/did-spec-registries/#did-methods). +* Browse all DIDs on [explorer.did.dyne.org](http://explorer.did.dyne.org/) #### Blockchain and DPP * Users' DIDs as well as the DIDs of all the software infrastructure, are stored on blockchain -* Transactions between users are also stored on blockchain -* For any asset created or modified in FabCityOS, a Digital Product Passport (DPP) can be created: each DPP contains the history of the asset (up the DPP creation time), is stored on blockchain and can be verified on the platform, or by third parties, using a link or a QR code. +* For any asset created or modified in Interfacer, a Digital Product Passport (DPP) can be created: each DPP contains the history of the asset (up the DPP creation time), is stored on blockchain and can be verified on the platform, or by third parties, using a link or a QR code. + +#### Economic model: **Creative flows** +* Rewards for activities on the platform +* Rewards are cyclically converted to tokens #### Import from git or LOSH -* Assets on FabCityOS can be created manually or by importing them from git repositories or from the [LOSH](https://losh.opennext.eu/) database. -------------------- -------------------- +* Assets on Interfacer can be created manually or by importing them from git repositories or from the [LOSH](https://losh.opennext.eu/) database. +--------------------------- ## Components -List of the component stack that power FabCityOS. +List of the component stack that power Interfacer. + +### Back end + +* [Zenflows](/pages/zenflows.md): a tool to leverage commons-based peer production by documenting and monitoring the life cycle of products. Written in Elixir, stores data in [GraphQL](https://graphql.org/) using the [Valueflows](https://www.valueflo.ws/) ontology. +* Dyne.org's [W3C-DID method](https://dyne.org/W3C-DID/): stores DID of users and services in a machine readable interchange format, based on privacy by design principles. +* [Interfacer-proxy](https://github.com/interfacerproject/interfacer-proxy): a public Internet gateway service that acts as a proxy to route information flows to each of the back-end services, enabling a secure, modular, and scalable deployment architecture. +* [Zenflows-inbox](https://github.com/interfacerproject/zenflows-inbox): Federated simple inbox for interfacer-gui +* [Zenflows-wallet](https://github.com/interfacerproject/zenflows-wallet): the **Creative flows** economic model API's +* [Zenflows-bank](https://github.com/interfacerproject/zenflows-bank): Easy token management for the **Creative flows** economic model -#### Back end + -* [Zenflows](/pages/zenflows.md):a tool to leverage commons-based peer production by documenting and monitoring the life cycle of products. Written in Elixir, stores data in [GraphQL](https://graphql.org/) using the [Valueflows](https://www.valueflo.ws/) ontology. -* [Zenswarm-storage](/pages/zenswarm-storage.md): a distrbuted caching and sharding engine, powered by Tarantool - -* Dyne.org's [W3C-DID method](https://new.dyne.org/W3C-DID/#/): stores DID of users and services in a machine readable interchange format, based on privacy by design principles. -* [Zenflows-proxy]: a public Internet gateway service that acts as a proxy to route information flows to each of the back-end services, enabling a secure, modular, and scalable deployment architecture. -#### Front end +### Front end -* [Interfacer-GUI](/pages/interfacer-gui.md): a Progressive Web App (PWA) acting as Graphical User Interface (GUI) and crypto wallet (end-to-end crypto) for Fab City Os +* [Interfacer-GUI](/pages/interfacer-gui.md): a React based front end and acting as Graphical User Interface (GUI) and crypto wallet (end-to-end crypto) for Interfacer -#### Sub-modules and sub-components +### Sub-modules and sub-components -* [Zenflows-crypto](/pages/zenflows-crypto): library of cryptographic schemes, used in the back end and front end of FabCityOS written in [Zencode](https://decodeproject.eu/blog/smart-contracts-english-speaker.html) and powered by [Zenroom](https://zenroom.org/). +* [Zenflows-crypto](/pages/zenflows-crypto): library of cryptographic schemes, used in the back end and front end of Interfacer written in [Zencode](https://decodeproject.eu/blog/smart-contracts-english-speaker.html) and powered by [Zenroom](https://zenroom.org/). * [Zenroom](https://zenroom.org/): multiplatform cryptographic virtual machine and smart contract executor. It can be programmed using the English-like DSL [Zencode](https://decodeproject.eu/blog/smart-contracts-english-speaker.html), designed to be readable by non-programmers. * [Restroom-mw](https://new.dyne.org/restroom-mw/#/): nodeJS based collection of middlewares, that expose Zencode smart contracts to Web APIs and expand the Zencode language. +* [Interfacer-notebook](https://github.com/interfacerproject/Interfacer-notebook): a notebook-based tool/examples for GraphQL calls to the Interfacer back-end. Helps devs with DPP interoperability and prototyping. ------------------- ------------------- @@ -96,8 +102,8 @@ List of the component stack that power FabCityOS. ## Playgrounds -* **FabCityOS**: - - [Front end (staging)](http://interfacer-gui-staging.dyne.org) +* **Interfacer**: + - [Front end (staging)](https://beta.interfacer.dyne.org/) - [Back end (staging)](http://65.109.11.42:8000/api/) -# Intro +# Quickstart -Welcome to Interfacer. -On the landing page you can click on **sign in** to sign-in (if you haven't yet created a user) or sign-up. +Welcome to [Interfacer](https://interfacerproject.dyne.org/). +On the landing page you can: +* Browse existing projects, from a list or on the map +* Click on **sign in** to sign-in (if you haven't yet created a user) or sign-up. -# Top bar +## Features -- **Menu button**: on your left you will always fing the menu button that, when tapped, it opens the left side menu - -- **Search bar**: you can use the search bar for finding other projects and other people based on their name and keywords contained in their description text. - -- **Notifications**: internal notification system, used for sending and receiving collaboration requests and updates about the projects you decide to follow - -- **Language preferences**: At any time, you can easily change your language preferences. Nevertheless, the translations are automatic, not perfect and a continues community effort where support is needed +Here is a quick preview of some of the features of Interfacer. -![intro](../../_media/user-manual/screenshot_nru/nru_.png) - -# Projects +### Projects Create, share, and collaborate on your open source hardware projects using our user-friendly creation form. With fields for project title, description, tags, images, and documentation, you can provide all the necessary information for others to understand and contribute to your project. Plus, with features like version control, licensing options, and project updates, you can ensure that your project is always up-to-date and accessible to a global community of makers, designers, and engineers. More in the [Add Project](/pages/user-manual/add-project) section -## Design, Products, Services +### Design, Products, Services Designs, products, and services are the three types of projects that can be created on our platform. A design is a documented plan or schematic for making a product, while a product is a physical item made according to a design. A service, on the other hand, is a non-physical offering that provides a solution or meets a need. When creating a project, users can choose the appropriate type based on the nature of their work. Additionally, users can search for and discover these projects on our platform using various search criteria, such as tags, users, location, and more. More in the [Add Project](/pages/user-manual/add-project) section -# Sign-in - -The sign-in page offers you three options: - - Sign up - - Sign in: passphrase - - Sign in: answer questions - -![intro](../../_media/user-manual/screenshot_nru/nru_/sign_in.png) - - -## Sign-up +-------------------- -When signing up, you have to type in a valid email, your name and a username +## Navigation -![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up.png) +How to navigate the home -### Sign-up questions +### Home page -Next, you need to answer as many (at least 3) of these 5 questions: it's important that you choose the questions and the answers carefully, as those can later be used to sign in the platform. - -![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up_challenges.png) - - -### Sign-up passphrase - -After typing your answers, the platform will return you a **mnemonic passphrase** that you should store somewhere safe as you can later use it for sign-in the platform (from the a different browser or device, or if your browser storage is deleted). - -![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up_passphrase.png) - -## Sign-in for existing users - -After you have created a user, you can sign in from a different device (or browser) +![intro](../../_media/user-manual/screenshot_nru/nru_.png) -- **Sign-in: passphrase** by entering your email and using your stored passphrase +- **Menu button**: on your left you will always fing the menu button that, when tapped, it opens the left side menu -- **Sign-in: answer questions** if you don't have your passphrase, you can entering your email and answer to the questions in the same way you did when you first signed-up. +- **Search bar**: you can use the search bar for finding other projects and other people based on their name and keywords contained in their description text. -## Under the hood: sign-up process explained +- **Notifications**: internal notification system, used for sending and receiving collaboration requests and updates about the projects you decide to follow -The sign up process producess a set of crytpographic private and public keys, as well as a passphrase: -- The ***private keys*** are **stored in the browser storage** (and never communicated with the server) -- The ***public key*** is **communicated to the server** -- The ***passphrase*** is something you should to **store somewhere safe** +- **Language preferences**: At any time, you can easily change your language preferences. Nevertheless, the translations are automatic, not perfect and a continues community effort where support is needed -If the private key is not there (cause you are logging in from a different device/browser or you have deleted the history of your browser), **the passphrase can be used as a substitute to the private key** to sign-in the platform. -Behind the sign-up process is the cryptographic flow [Keypairoom](https://github.com/dyne/keypairoom/). \ No newline at end of file diff --git a/docs/pages/user-manual/sign-up.md b/docs/pages/user-manual/sign-up.md new file mode 100755 index 0000000..b623428 --- /dev/null +++ b/docs/pages/user-manual/sign-up.md @@ -0,0 +1,83 @@ + + + + + +# Sign-in and sign-up + +Welcome to [Interfacer](https://interfacerproject.dyne.org/)! + +Learn how to sign up and sign in on the Interfacer platform. The sign-in page offers you three options: + - Sign up + - Sign in: passphrase + - Sign in: answer questions + + +### Sign-up + +When signing up, you have to type in a valid email, your name and a username + +![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up.png) + +#### Questions + +Next, you need to answer as many (at least 3) of these 5 questions: it's important that you choose the questions and the answers carefully, as those can later be used to sign in the platform. + +![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up_challenges.png) + + +#### Passphrase + +After typing your answers, the platform will return you a **mnemonic passphrase** that you should store somewhere safe as you can later use it for sign-in the platform (from the a different browser or device, or if your browser storage is deleted). + +![sign-up](../../_media/user-manual/screenshot_nru/nru_/sign_up_passphrase.png) + +## Sign-in for existing users + +After you have created a user, you can sign in from a different device (or browser) + +- **Sign-in: passphrase** by entering your email and using your stored passphrase + +- **Sign-in: answer questions** if you don't have your passphrase, you can entering your email and answer to the questions in the same way you did when you first signed-up. + + + + +![intro](../../_media/user-manual/screenshot_nru/nru_/sign_in.png) + + + +## Under the hood: sign-up process explained + +The sign up process producess a set of crytpographic private and public keys, as well as a passphrase: +- The ***private keys*** are **stored in the browser storage** (and never communicated with the server) +- The ***public key*** is **communicated to the server** +- The ***passphrase*** is something you should to **store somewhere safe** + +If the private key is not there (cause you are logging in from a different device/browser or you have deleted the history of your browser), **the passphrase can be used as a substitute to the private key** to sign-in the platform. + +Behind the sign-up process is the cryptographic flow [Keypairoom](https://github.com/dyne/keypairoom/). + + +## Next step: add your first project! + +By now you should be logged in, meaning you can create your first project. Click on the **Add Project** link on the left to read about it. \ No newline at end of file