View a demo here.
Suagg is a cloud based web service for uploading and viewing memes. The architecture of this project consists of an MVC Application, Comment Microservice and Projection Manager.
HTML pages are rendered server side using an MVC architectural pattern. The MVC application is responsible for Post and User data which is stored in an SQL database. Entity framework core was used for all database access with Identity Framework Core managing the user information. Data relating to a post's comments is either commanded or queried through the Comment Microservice. This is done through REST api calls to the microservice.
Comments are implemented via a microservice with CQRS and Event Sourcing. All data transmission is done in JSON format. All commands generate events which are then stored into Event Store. Comment Data is then be queried through RavenDB.
The Projection Manager subscribes to the events that occur in the Comment Microservice. Events are pulled out of Event Stores event stream and asynchronously projected into RavenDB.
Install Event Store: https://eventstore.com/ and RavenDB: https://ravendb.net/
Clone the repo:
git clone https://github.com/BradenThomp/Ssuag.git
Run the comment microservice, projection manager, and MVC application through visual studio. Each project can be run independently.
N/A
- Braden Thompson
- Nathan Sehn
- Quinn Ceplis
- Eddy Gu
- Hunter Reboul
- Ethan Schafers