ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.01k stars 3k forks source link

`ipfs tour` #171

Open jbenet opened 9 years ago

jbenet commented 9 years ago

It would be great to have ipfs tour give users a tour through the tool, starting at the basics and proceeding. Something like nodeschool.io, but included.

It could work like this. We have a sequence of sections which are just numbered markdown documents: (1, 2, 2.1, 10.1.2, etc). We keep a tour section in the config:

type Tour struct {
  Resume    string    // pointer to doc to show
  Read      []string  // list of tour points "read"
}
# show the tour section pointed at by `config.Tour.Resume`
> ipfs tour
# IPFS Tour - 5. Mounting

Like any self-respecting filesystem, IPFS can be mounted onto your
local unix filesystem.
...

# list a bunch of topics (the check denotes "Seen")
> ipfs tour list
- ✓ 0.    Hello Mars.
- ✓ 0.1   The tour.
-   1.    What is IPFS?
-   1.1   The IPFS stack.
    ...
- ✓ 5.0   Mounting
-   5.1   Mounting Command
-   5.2   Mounting IPFS
-   5.3   Mounting IPNS
  ...

# show a specific part
> ipfs tour show 7.
# IPFS Tour - 7. IPNS

IPFS provides a public-key cryptography based namespace. Unlike
other namesystems, IPNS is egalitarian, global, secure, and completely 
decentralized.
...

# advance the tour pointer + show
> ipfs tour next
# IPFS Tour - 5.1. Mounting Command

The command to mount IPFS is `ipfs mount`. It can mount both
IPFS and IPNS (you'll learn about IPNS in T 7.1).
...

# resets tour pointer to beginning, wipes Read
> ipfs tour restart
# IPFS Tour - 0. Hello Mars

Welcome to the IPFS Tour! We will walk you through a number of
concepts, features, and tools to make sure you get up to speed
with IPFS very quickly. 

First things first, let's test everything works. Try running

    ipfs cat Qmafmdamfdmafmadfsafdmas

This should connect to mars.i.ipfs.io, and download a file
using ipfs. It should print out: 

    > ipfs cat Qmafmdamfdmafmadfsafdmas
    Hello, from Mars!

There! Your very own greetings from outer (ipfs) space!
When you're done, run:

    ipfs tour next

The help of the command should look like:

  UsageLine: "tour",
  Short:     "Take the IPFS Tour",
  Long: `ipfs tour - Take the IPFS Tour

    ipfs tour              - Start or resume the tour.
    ipfs tour list         - Show a list of topics.
    ipfs tour show <part>  - Show a specific part.
    ipfs tour restart      - Restart the tour. 

This is a tour that takes you through various IPFS concepts, 
features, and tools to make sure you get up to speed with
IPFS very quickly. To start, run:

    ipfs tour

`,
whyrusleeping commented 9 years ago

+:100: :+1:

jbenet commented 9 years ago

213 Implements the basic command structure. Still need to write all the content.

dborzov commented 9 years ago

Whoah, cool! :+1:

jbenet commented 9 years ago

ATTENTION all watchers of this repo

It would be really helpful to us to work closely with 1-5 people new to IPFS tool to define the contents of our ipfs tour. let me know if you'd like to be part of this (post here or let me know on irc)

dborzov commented 9 years ago

Hey, hey I want to help you guys out with clearing the contents for ipfs tour. With all these changes, I think I am qualified as being "new" to the current ipfs tool interface.

jbenet commented 9 years ago

@dborzov great! i'll have a sample for you to try out ~mon or tue

caioalonso commented 9 years ago

I'm pretty new to IPFS and I'd like to help!

giodamelio commented 8 years ago

I am pretty new and would love to help!

daviddias commented 8 years ago

We can totally make a nodeschool out of this and even help use JS people learn how to use the js-ipfs-api directly :D I'm up to start this, if anyone wants to collab, let me know :)

Skeleton on https://github.com/ipfs/go-ipfs/issues/225

mattisstenejohansen commented 5 years ago

Hi all. If it is not too late (I would assume it is not, since it's still open), I'd love to help out/contribute to this in any way I can. I would not consider myself a newbie in the IPFS ecosystem, but I am a rather basic user.

cc @jbenet

cfdair commented 5 years ago

Hey, I'd be up to helping out on this one. I've been watching this repo for a bit and looking for an entry point to start contributing.

However doesn't seem to be a branch on this issue yet, so maybe this is on the backburner for now?

Stebalien commented 5 years ago

I've added it to the backlog but nobody's currently assigned to it.

We now have a website, proto.school, with some tutorials for building with js-{libp2p,ipfs,ipld}. Given that IPFS is almost entirely controlled via the HTTP API, we can probably add lessons here. These lessons would have to tell users how to grant proto.school access to the local IPFS node but that shouldn't be too difficult.

Personally, I'm partial to the command line but a web-based tutorial is going to be more flexible here. We can even provide users with a fake "shell" to make it feal like a normal CLI.

Tutorials are designed here: https://github.com/protoschool/protoschool.github.io/labels/new%20tutorial


cc @mikeal (time permitting)

mikeal commented 5 years ago

Looping @terichadbourne in as well.