Description: I am building a web app, let's say about an organization for approving participation in a free service. There will be the following roles:
a) Organization employee
b) Citizen
c) Administrator
The citizen can register / log in, select a type of application from the available ones, and fill in the required information – uploading supporting documents (PDF). They can view the applications they have submitted so far, track their status, and receive notifications. The employee can also register / log in, view the citizens' applications and either approve or reject the citizen's application. I also want to make a payment system like Stripe or PayPal - for paying a government fee.
For this kind of system using ASP.NET Core, would you recommend ASP.NET Core MVC or Web API for the backend?
I'm a student and we mainly use ASP.NET Core MVC at university. I want to apply some design patterns in the backend, such as Repository, Adapter, Observer or State Pattern.
Are these good choices for this type of application? Are there any other patterns you would recommend or that are commonly used in ASP.NET Core projects?
Thanks in advance!