pump-io / pump.io Goto Github PK
View Code? Open in Web Editor NEWSocial server with an ActivityStreams API
Home Page: http://pump.io/
License: Apache License 2.0
Social server with an ActivityStreams API
Home Page: http://pump.io/
License: Apache License 2.0
Users should be able to edit their own profile.
This should be reflected in the 'person' object.
It should be possible, when viewing someone's profile page, to follow them.
Use socket IO to publish activity streams.
first, next, prev links for user inboxes
We should show two streams in the Web UI. One for posts (or shares of posts); another for all other notifications (likes, follows, etc.).
Not sure about comments; they should probably go in the notifications area.
We need Webfinger.
First, for OStatus stuff.
Also, for discovering a user's feed, and their inbox.
We need a lists collection endpoint.
first, next, prev links in API results for user list.
We should include a replies collections for activity objects:
This should probably just be added to ActivityObject.expandFeeds()
I'm interested in seeing this project make scale a priority.
So, here's my first scalability goal: consider a network of 100,000 users. There is a Pareto distribution of number of followers per user, with an 80-20 rule distribution (good enough) and an expected value of the Dunbar number, 150. See http://en.wikipedia.org/wiki/Pareto_distribution for help on this.
The scalability goal is to handle 10 new activities per second (aps) with a maximum delivery time of 100 seconds.
In the future, we can vary the numbers by orders of magnitude (100 aps, 10^6 users, 10s for delivery) to reach higher goals.
We need to show activities in lists in the Web UI.
It's probably a good idea to have a "default" activity view, then specialized views by the verb and object of the activity.
For example, "post" a "note" would have a special view; "share" an "activity" might have a different view. "follow" a "person" would have a different view.
first, last, next
Social networks are isolated and disconnected. People put their creative works, their social graph, and their personal connections into services with dubious terms of service. Service providers depend on the network effect to prevent healthy competition. Gigantic user databases are a one-stop-shopping target for hackers and spy agencies.
We must federate the social web.
Right now, streams are stored as lists of activity ids in a databank.
This probably won't scale well as we go to more than one node server per databank (race conditions on write) or 10^5 or 10^6 activities per stream.
There may be some options to archive old stream members, so a "stream" might consist of a "current" stream list plus many, many "archive" stream lists.
There are a whole bunch of new activity verbs at http://activitystrea.ms/specs/json/schema/activity-schema.html . We should support them all.
We should support lists (user-curated collections of other users).
We should allow posting comments in the Web UI, and showing posted comments.
List of a users followers. API and Web UI.
Because that's just lame.
We need a posting interface in the Web UI.
Initially it should let you post a note (text). Maybe with Markdown.
We should have a REST API endpoint for the list of people who've liked an object.
We need a way to upload an image in the Web UI.
We may want to support folders or images.
An activity posted with the 'favorite' verb should:
We should allow a POST by the user to their own favorites list.
It should generate a 'favorite' activity.
We should support remote follow using OStatus.
You should be able to log into a remote site using OAuth.
Once you're logged in, you should be able to generate activities related to that site: comments, faves, follows, and shares.
Include navigation links for user feeds: first, next, prev.
We should have a REST API endpoint for the user's favorites.
Use roll-up version of activities to show a conversation-oriented stream.
You should be able to restrict audience for a post by including an address.
Standard addresses: public, followers, site, ...?
Other addresses: people, groups, lists.
We should support OAuth access to the API.
We need dynamic client registration, as in http://openid.net/specs/openid-connect-registration-1_0.html
I think we should show the likes responses for an activity object in these cases:
List of people a user is following. API and Web UI.
UI to register a new user
first, last, next
A user should be able to POST to their own following list to follow someone new.
It should generate a new 'follow' activity, also.
We should support favoriting an object in the Web UI.
We should allow the user to upload an avatar picture.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.