As this is a university project, I would like to focus on making correct architectural decisions and structuring my ASP.NET Core backend in a clean and maintainable way.
Would ASP.NET Core MVC with Razor Views be sufficient for this type of portal, or would a Web API approach be more appropriate?
Additionally, what architectural style (e.g. layered architecture, Clean Architecture) would you recommend for such a system in order to remain maintainable and scalable?
What would be a recommended way to organize the solution and its layers (e.g. Controllers → Application Services → Domain → Infrastructure)?
Also, where should business rules such as application state transitions (e.g. approve/reject) and payment processing logic ideally reside, and how should these be separated from the MVC layer?