Skip to content

uofa-cmput404/404f23project-packet-pirates

Repository files navigation

CMPUT404-project-socialdistribution

Warnings

Running too many instances of the app might cause Heroku to crash. If this happens, please wait a few minutes and try again. If components are missing/not rendering, refresh the page.

SOME PICTURES USED IN POSTS ARE FROM (https://picsum.photos/200), WHICH IS A RANDOM IMAGE GENERATOR, THIS COULD CAUSE SOME IMAGES TO CHANGE UPON REFRESH

The Project is also deployed on Heroku at:

Frontend

Backend

Demo Video

This project was created for the course CMPUT 404 following a set of requirements

Setup

Install the packages for the Django backend

pip install -r requirements.txt
python manage.py migrate

Install the packages the Vite+React frontend

npm i

Run the frontend and backend concurrently

cd frontend
npm run dev
cd backend
cd socialdistribution
python manage.py runserver

User Stories Progress

  • ✅ As an author I want to make public posts.
  • ✅ As an author I want to edit public posts.
  • ✅ As an author, posts I create can link to images.
  • ✅ As an author, posts I create can be images.
  • ✅ As a server admin, images can be hosted on my server.
  • ✅ As an author, posts I create can be private to another author
  • ✅ As an author, posts I create can be private to my friends
  • ✅ As an author, I can share other author's public posts
  • ✅ As an author, I can re-share other author's friend posts to my friends
  • ✅ As an author, posts I make can be in simple plain text
  • ✅ As an author, posts I make can be in CommonMark
  • ✅ As an author, I want a consistent identity per server
  • ✅ As a server admin, I want to host multiple authors on my server
  • ✅ As a server admin, I want to share public images with users on other servers.
  • ✅ As an author, I want to pull in my github activity to my "stream"
  • ✅ As an author, I want to post posts to my "stream"
  • ✅ As an author, I want to delete my own public posts.
  • ✅ As an author, I want to befriend local authors
  • ✅ As an author, I want to befriend remote authors
  • ✅ As an author, I want to feel safe about sharing images and posts with my friends -- images shared to friends should only be visible to friends. [public images are public]
  • ✅ As an author, when someone sends me a friends only-post I want to see the likes.
  • 🔲 As an author, comments on friend posts are private only to me the original author.
  • ✅ As an author, I want un-befriend local and remote authors
  • ✅ As an author, I want to be able to use my web-browser to manage my profile
  • ✅ As an author, I want to be able to use my web-browser to manage/author my posts
  • ✅ As a server admin, I want to be able add, modify, and remove authors.
  • ✅ As a server admin, I want to OPTIONALLY be able allow users to sign up but require my OK to finally be on my server
  • ✅ As a server admin, I don't want to do heavy setup to get the posts of my author's friends.
  • ✅ As a server admin, I want a restful interface for most operations
  • ✅ As an author, other authors cannot modify my public post
  • ✅ As an author, other authors cannot modify my shared to friends post.
  • ✅ As an author, I want to comment on posts that I can access
  • ✅ As an author, I want to like posts that I can access
  • ✅ As an author, my server will know about my friends
  • ✅ As an author, When I befriend someone (they accept my friend request) I follow them, only when the other author befriends me do I count as a real friend -- a bi-directional follow is a true friend.
  • ✅ As an author, I want to know if I have friend requests.
  • ✅ As an author I should be able to browse the public posts of everyone
  • ✅ As a server admin, I want to be able to add nodes to share with
  • ✅ As a server admin, I want to be able to remove nodes and stop sharing with them.
  • ✅ As a server admin, I can limit nodes connecting to me via authentication.
  • ✅ As a server admin, node to node connections can be authenticated with HTTP Basic Auth
  • ✅ As a server admin, I can disable the node to node interfaces for connections that are not authenticated!
  • ✅ As an author, I want to be able to make posts that are unlisted, that are publicly shareable by URI alone (or for embedding images)

API Documentation

The API documentation is done via SWAGGER and can be found here

Contributors / Licensing

Authors:

  • Gabriel Giang
  • Jake Hennig
  • Kai Jie Lee
  • Jack Geiger
  • Caleb Lonson

Copyright 2023 Gabriel Giang, Jake Hennig, Kai Jie Lee, Jack Geiger, and Caleb Lonson

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

404f23project-packet-pirates created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published