Skip to content

Unified system of donations built on a microservice architecture

Notifications You must be signed in to change notification settings

ApachUSA/USOD-Unified-system-of-donations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unified system of donations

P.S. This is my first attempt at implementing a microservice architecture, so some decisions may be wrong. 🫶

Introduction

The purpose of this master's thesis is to develop a unified collection system aimed at supporting various charitable initiatives, including donations for the military, IDPs, children, animals, etc. Problems of the chosen subject area:

  • Fragmentation of information.
  • Lack of centralization.
  • Lack of transparency.

Technologies

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

Architecture


  • The architectural pattern of the entire system is Microservice Architecture.
  • The only access point is the Ocelot gateway.
  • JWT token is used for authorization and authentication.
  • Each microservice is implemented as a RestFull API and deployed in docker containers.
  • Each microservice has its own database, which interacts with the Entity Framework and is implemented using the repository pattern.
  • Each microservice sends its logs to Seq using RabbitMq
  • RealTime microservice uses SignalR to send notifications and comments in real time.
  • Postman was used for convenient storage and calling the api

Functions

The system is divided into three roles (sponsor, fund owner, administrator).

Sponsor:

  • Registration and authorization
  • View Funds
  • View projects and goals
  • Subscribe to a fund to receive notifications (if authorized)
  • Commenting on projects (if authorized)

Fund Owner:

  • Includes sponsor features
  • Editing a fund (about the fund, media, members)
  • Create/edit/delete projects
  • Create/edit/delete collection targets
  • Edit report (if fundraising is over)

Admin:

  • Includes sponsor and fund owner functions, but has access to all funds
  • Creating/deleting a fund and assigning an owner
  • Has access to api which includes all functions from the web version + ability to create/edit/delete data from auxiliary database tables (payment type, media type, etc)

Screenshots

Login


Main


Profile


FundList


FundDetails


FundAbout


ProjectList


ProjectDetails


ProjectCreate


ApiCalling