Skip to content

cmput-404-transparent/social-distribution

Repository files navigation

SocialDistribution </>

A decentralized social blogging platform that enables users to share posts and aggregate content from other sources, using a simple, RESTful inbox model.

Features 🌟

  • Distributed Social Network: Allows users to interact across different nodes, maintaining autonomy while sharing posts and content.
  • Inbox Model: Posts, likes, and comments are routed through an inbox system, ensuring that content is shared with the appropriate users (public posts to followers, friends-only posts to specific users).
  • Content Aggregation: Users can aggregate posts from authors they follow across different nodes, creating a personalized feed.
  • RESTful Architecture: The platform is built with a simple, RESTful architecture, focusing on ease of use and scalability without complex protocols like ActivityPub.
  • User-Friendly: Designed to be intuitive and easy to navigate, making it simple for users to interact with posts, like and comment, and manage their content without a steep learning curve.

Requirements 📋

SocialDistribution requires Python 3.11+ and Node.js 20+ to run.

Install ⚙️

To install dependencies, run the following command.

make dependencies  

Running Locally 🚀

To run the webapp, first create a production build of the frontend.

make build

Then, run the Django server.

make backend

Documentation 📚

To view documentation for API endpoints, run the Django server, and visit /redoc/.

Testing 🧪

To ensure the reliability and functionality of the backend, unit tests have been written using Django's testing framework. These tests cover various parts of the application, including model logic, views, and API endpoints.

To run them, execute the following command.

make test

Deployed Nodes 🌐

The following are our nodes that are already deployed on Heroku.

  1. https://social-distribution-tqyoung-bad8770cc2df.herokuapp.com/
  2. https://transparent-jwan-de425e3e313f.herokuapp.com/
  3. https://social-distribution-omelchuk-a7deff81f6a3.herokuapp.com/
  4. https://social-distribution-asolanki-45d4887bf9b6.herokuapp.com/
  5. https://jastegh-socialdistribution-c7853f320baf.herokuapp.com/
  6. https://socialdistribution-jassidak-a0db46597407.herokuapp.com/

Contributors 👩‍💻

Contributing 🤝

Contributions are welcome! Please open an issue or submit a pull request. Make sure to follow the coding standards outlined in the repository.

License 📜

This project is licensed under the Apache 2.0 License.