Project Overview - haydin505/SWE-573 GitHub Wiki

Product Management Overview

This project has been developed for a content management and sharing platform suitable for a multi-user structure. Users may create content and decide who can see the created content. Content visibility consist three types: Everyone: Everyone can see the content. In other words, the creator, friends and other non-friend users can see the content. Friends: Only the users in the friend list can see the content. In other words, the creator and friends can see the post. Private: Only the creator can see the content.

Moreover, users may add a content to the liked contents list so that they can easily find them. Users may add tags to contents. Users can search contents, users and contents with tags. Users may add other users as friends and manage friend relationships.

Technological Overview

The frontend and backend of the app are not tightly coupled. We can deploy them separately. This functionality fits perfectly with the deployment strategy as we use docker and cloud technologies to deploy our app. Moreover, we can scale our app horizontally, which means we can deploy a few more apps during peak hours and serve them easily. The architecture works much more efficiently during the deployment phase compared to other full-stack implementations. Since we don't need the front-end applications as much as the back-ends, we can deploy different numbers of frontend and backend servers. For example, we can deploy 2 frontend applications and 10 backend applications separately. In addition, since we developed the backend application as a REST API, we can easily integrate mobile applications or desktop applications.

Frontend:

  • React.JS
  • Redux
  • React Router Dom

Backend

  • Spring Boot Starter (REST application)
  • Hibernate as ORM
  • MySQL