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
An activity posted with the 'favorite' verb should:
We should allow the user to upload an avatar picture.
We should allow a POST by the user to their own favorites list.
It should generate a 'favorite' activity.
We should have a REST API endpoint for the list of people who've liked an object.
I think we should show the likes responses for an activity object in these cases:
first, last, next
We need a way to upload an image in the Web UI.
We may want to support folders or images.
We should support OAuth access to the API.
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.
Because that's just lame.
We need Webfinger.
First, for OStatus stuff.
Also, for discovering a user's feed, and their inbox.
We need dynamic client registration, as in http://openid.net/specs/openid-connect-registration-1_0.html
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 should have a REST API endpoint for the user's favorites.
Include navigation links for user feeds: first, next, prev.
We need a lists collection endpoint.
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 include a replies collections for activity objects:
This should probably just be added to ActivityObject.expandFeeds()
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.
Use roll-up version of activities to show a conversation-oriented stream.
We should support remote follow using OStatus.
first, last, next
List of a users followers. API and Web UI.
UI to register a new user
first, next, prev links for user inboxes
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.
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 should support lists (user-curated collections of other users).
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.
We should support favoriting an object in the Web UI.
We should allow posting comments in the Web UI, and showing posted comments.
You should be able to restrict audience for a post by including an address.
Standard addresses: public, followers, site, ...?
Other addresses: people, groups, lists.
Use socket IO to publish activity streams.
We need a posting interface in the Web UI.
Initially it should let you post a note (text). Maybe with Markdown.
There are a whole bunch of new activity verbs at http://activitystrea.ms/specs/json/schema/activity-schema.html . We should support them all.
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.
first, next, prev links in API results for user list.
List of people a user is following. API and Web UI.
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.