P.S. This is my first attempt at implementing a microservice architecture, so some decisions may be wrong. 🫶
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.
- 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
The system is divided into three roles (sponsor, fund owner, administrator).
- Registration and authorization
- View Funds
- View projects and goals
- Subscribe to a fund to receive notifications (if authorized)
- Commenting on projects (if authorized)
- 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)
- 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)