Skip to main content

Design

Class Diagram

Gateway

Patreon Shout is comprised of three parts: the gateway, the frontend, and the database. The gateway allows us Patreon Shout to have communication between the frontend and the database through the use of http requests and endpoints. Everything starts at PSApplication where the gateway starts up, PSApplication uses Spring Boot to create associations between classes and to startup the endpoints. The frontend can send http requests to the following endpoint classes in order to send and receive data from the database: WebAccountSvc, TagSvc, SearchFilterSvc, PostSvc, ListSvc. These endpoints have associations with classes that handle the logic of CRUD operations using the Repository classes along with the database entity POJO classes required for Spring Boot. Every POJO in the gateway uses annotations to provide getter and setter methods for every variable so both Spring Boot and the rest of the program can operate on the data contained. Furthermore, Social Platforms also send information to the ReceiverSvc endpoint, this is where we handle the logic for Social Platform OAuthorizations and the content creator cross posting. Finally is the PSConfiguration class that looks for a configuration file and sets up our database transaction manager, CORS configuration, security configuration, Patreon client information, and Twitter client information.


Click this link

if you are unable to view the detail within the gateway diagram. Make sure you either enable "Pan & Zoom" or click "Full Screen" in the top right in order to fully view the diagram.

Database Diagram

The database mostly focuses on the profile table, with it only having 1 instance per the multiple instances of objects in the posts. The profile table holds the main information about a user of Patreon Shout, such as their username, and who they follow. The profile table has a direct 1-to-1 relationship with the patreon_info table, which holds the user creator information that we may use to get the posts. If the user is not a creator, we will have an instance of an object relating to the profile so we could see if they are registered as a creator or as a user with Patreon Shout. Furthermore, the lists hold all the information needed for the user to create lists of creators that would overlap their main feed. This includes the name of the list, the creator that they added to the list, and the user that created the list. Finally, we have the posts table that holds the information of the post that we store to publish on different social media, or to publish it into our website. It will have the creator of the post, as well as all the information contained in the post itself such as the title, and the published date for us to show others.