Kristofer Younger d3b6bb277f Update 'README.md' | 6 lat temu | |
---|---|---|
README.md | 6 lat temu |
a distributed facebook social media clone
Use the git server to record project plans in the project repo’s wiki. Each project must keep:
Each web-app project needs to include a server backed by a database and one or more clients (web? Mobile? terminal?). The project work should be in agile sprints of 3-5 days, commit histories are important. Each students should work in a different git branch). Multiple commits should be done daily on all personal work. All sprints end with a complete merge back to the master branch, and a demo/preso for an instructor. The project should start with simple features, and then add to it over the course of several weeks (and several sprints). The internet has many different ways of doing each of these projects, tutorials, descriptions and so on, describing how these things can be done. Research on the topics should be considered to be the very first task a group should do on the project. The User Interface for the project should start with simple UIs, and refine/embellish them over the sprints. The final front end UI should be written in Typescript/Ionic/Angular (or in a UX framework approved by Kris).
Each node represents a single member of the network. Each node owns and keeps all it’s data, but not the data from any other member.
The nodes do a P2P api protocol
Member api New user, new node
Connect api The node registers with a key server Links a github ID with a member entry Github_id Machine_name Each account (github_id) has a single spring.io server where data is kept.
Friend api make/break friend (by github_id) Refer a friend Each node tracks its friends
Channel api create/delete a channel invite /remove a friend from a channel (by owner?) Post/Comment api. Post to a channel, delete. Comment to a post, delete comment
Start with a simple server, posts, single private channel. Add public timeline Add friending(connection, listing, adding, deletion) Add channel creation, posting.commenting, image/text