Skip to content

Imports a package file, and presents generic tools to the developer to send and receive messages to a Holochain App backend

Notifications You must be signed in to change notification settings

christopherreay/holochain.genericInterface

Repository files navigation

Clutter

Code Status In Progress Gitter License: GPL v3

P2P twitter-clone built on holochain A group of cats is called a Clutter, Cludder, Clowder, Kendle, or Kindle. Maybe it's time for a fully distributed shoutcast network of cool cats to eat a certain bluebird.

Clutter is a work in progress, sample application which exists to demonstrate how easy it is to build applications on holochain.

Code Status: Pre-alpha. Not for production use. This application has not been audited for any security validation.

Installation

Prerequiste: Install holochain on your machine. You can install clutter very simply with this:

hcdev init -cloneExample=clutter

Usage

To do a test run of clutter simply type

cd clutter
hcdev web

you should see something like:

Copying chain to: /home/bootstrap/.holochaindev
...
Serving holochain with DNA hash:QmZYxoxcqgCp6Xf6xVe8ptzPkmH8QMzxqp4r49QYpS2fEF on port:4141

Then simply point your browser to http://localhost:4141 access the clutter UI.

Tests

To run all the stand alone tests:

hcdev test

Currently there are two scenario tests:

followAndShare

hcdev scenario followAndShare

This test spins up two nodes jane and joe and tests that following and reading posts works. To watch the network traffic and details try:

hcdev -debug scenario followAndShare

scaling

This test is designed to be run on separate machines and spins up many clones on each and confirms that they all talk to eachother.

Feature Roadmap and Current Progress

  • Set default handle from AgentID string
  • Enable users to change their handle
  • Share mews (tweets) -- up to 256 characters
  • Follow someone (by specified handle)
  • Unfollow someone
  • View post stream of people you follow sorted by time
  • Detect #hashtags in post text
  • Create hashtag anchors if they don't exist
  • Link from hashtag anchor to posts with that hashtag
  • Show posts which have a particular hashtag
  • Mark posts as a favorite ⭐
  • Link favorited posts from a user/handle
  • Show someone's ⭐ favorited posts
  • Edit a previous post (partially implemented)
  • Refollow someone previously unfollowed (partially implemented - Have to fix put/del/put links sequence)
  • Detect @mentions in post text
  • Link from handle posts which @mention them
  • Show @mentions for a user/handle
  • Lists - Special anchor type with text being "[userhandle]-[listname]" with links to users on a named list which is named unique-per-user
  • Reply to mew (add reply-to link + link to replies)
  • Remew/Retweet (link to original in content of post? + new content?)
  • Enable direct messages via N2N private messaging
  • Detect links
  • Include links (w/ link shortening?) as linked link
  • Pretty display of OpenGraph data for first link
  • Create/Read/Update/Delete User profile info (first name, last name, location, picture, website, etc.)
  • Keyword indexing/search with Holodex integration
  • Search with result groupings/tabs (people, posts, tags, trending, )
  • Add UI tabs/views: feed, mentions, direct messages, lists
  • Embed pictures ("pic" link to url) with pretty render
  • Integrate with Twitter for publishing mews to tweets from your unique userspace
  • Integrate with DPKI for bridging app contexts

Contribute

We welcome pull requests and issue tickets. Find us on gitter to chat.

Contributors to this project are expected to follow our development protocols & practices.

License

License: GPL v3

Copyright (C) 2017, The MetaCurrency Project (Eric Harris-Braun, Arthur Brock, et. al.)

This program is free software: you can redistribute it and/or modify it under the terms of the license provided in the LICENSE file (GPLv3). This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Note: We are considering other 'looser' licensing options (like MIT license) but at this stage are using GPL while we're getting the matter sorted out.

About

Imports a package file, and presents generic tools to the developer to send and receive messages to a Holochain App backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published