GithubHelp home page GithubHelp logo

shared-economy / share-your-stuff-api Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 2.0 49 KB

Please refer to: https://github.com/mycelium-network

Home Page: https://github.com/mycelium-network

shared economy social share stuff sharing-economy sharing-platform sharing-service sustainability rust

share-your-stuff-api's Introduction

Status: Draft

Find me on CCCAMP2019:

  • Current: already on my way back home :(

share-your-stuff-api

This should be a open source api to allow small groups and individual share resources with each other.

Key Functionality

The main concept of the API should allow a decentralized setup. The following are example scenarios of typical use cases:

  1. You want to borrow your friends some unused tools or games, all the stuff that is only lying around 99% of the time.
  2. You want to share cars with a certain group of people and track usage.
  3. You want to rent/borrow your neighbors tools or other stuff.

Unauthenticated features

  • Offer object statics as open data, such as shares, objects registered, persons, CO2 reduced, etc.

Authentication

  • Login using password and email
  • 2 Factor Login
  • OAuth 2.0 as SSO to allow distributed access
  • Allow use of other Login provider (Github, Google, etc.)

User Information

  • Change user details
  • Set notification interval

Object Management

  • Add new object
  • Delete object
  • Update object details
  • Configure visibility (e.g. closed, friends, friends+1)
  • Remind the person who borrowed that you need the object (maybe earlier) to a specific data.
  • (Optional): Add a price for the borrow/rental to cover for wearing off if the product is expensive (e.g. Car has insurance and tax costs in addtion to the wearing off per km)

Reminder

  • Reminder (before leaving the house, at a specific time, etc) to take the object with you. (Co-worker whats to have a game, and you take it with you.)
  • Reminder for the return of the borrowed objects
  • Reminder to insert some more items

Rental

  • Search for objects in the your adjacent network
  • View object
  • Show availability/status of the object (rented out, next availability, is there a pre-booking)
  • Rent/borrow an object
  • Extend the time of use for the object
  • Report a defect on the product.

Handover

The handover is a critical point, both parties should note prior defects on the object and acknowledge the handover. The following process could be an example:

A wants to borrow object O from B.

  1. User meet for handover. (A&B)
  2. Form with photos of object and text of usage state. (A)
  3. Form generates a QR-Code, (A)
  4. QR-Code is scanned and acknowledged. (B)
  5. This is repeated after the object is returned.

The data generated can be used to have a tracking history of the people and defects over time.

Wishlist

  • Add an object to the wishlist. Users in adjacent network will get a notification if they have this object with the request to insert the object.

Internal Chat

  • Internal chat to discuss handover.

Crawler for Product information

This should help users insert new objects into the application by providing crawled information:

  • Search for EAN and other Product data to facilitate the item setup.
  • Offer repair guides with the iFixit API

Misc

The following list is for ideas that can be discussed before implemented:

  • Evaluate a user. (unsure)

Competitive Products/Services

What is the state of the art at the moment? How well are they working? What can be learned from them?

Commercial

  • Weeshare: Single platform with a lot of good features, but safes password in Local JavaScript. Registration doesn't work at the moment. (23.08.2019)
  • peerby:: Startup from the netherlands, with global target, can view objects near to my location only. No user verification. (23.08.2019)
  • niriu:: No longer available. (23.08.2019)
  • WhyOwnIt:: No longer available. (23.08.2019)

Open Source

  • leila:: Undocumented open source implementation for a "__Le__ih __La__den". (23.08.2019)
  • Commons Booking (Wordpress Plugin):: An open source wordpress plugin to administrate the rental of cargo bikes. (23.08.2019)

Decentralized Setup

Decentralized Setup (made with draw.io)

Each group should be able to setup their own pod (server with the api running) to have control about their data (see pod3). A central instance (Central Route Pod) will be used to host an api instance for all users without technical knowledge and as a routing service for pods to find each other. E.g. Pod1 wants to find Pod2 to share stuff with each other.

Ideas

All unsorted ideas below here:

Additional APIs

Contribute

Create an issue on github to contribute.

share-your-stuff-api's People

Contributors

tim-conrad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

share-your-stuff-api's Issues

Check out hoffnung3000

https://hoffnung3000.de/

These folks have similar ambitions, some existing software that's web based, are Berlin based and open to collaboration. Also checkout p2panda which is somehow related I believe...

Check serverless webrtc

https://github.com/cjb/serverless-webrtc

This sounds interesting as a possible way to move away from any server. I would like to use public servers and piggy back on their infrastructure. So every client could have its own data and nothing else.

But I don't know if this is possible with all the features I have in mind.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.