Skip to main content

Personal Project Final3

Assignment 5: Personal Project - Phase 4 (Weeks 11+) Microservices

EXTRA! (Not mandatory - TA's will give out extra points if this is done)

Based on your personal project proposal!

Implement based on your modular monolith architecture from phase3 - microservices. Move at least users module to separate microservice (communication via RabbitMQ).

What must be there:

  • domain design (everything in your project proposal, min 10 meaningful db entities)
  • rest api controllers, versioning, public dtos
  • swagger
  • auth (jwt)
  • client UX (mvc, scaffolded, no need to do anything fancy. just to prove that domain logic works)
  • admin UX (mvc, area, functional, protected, designed, nice, good to use. no viewbags/viewdata - use viewmodels)
  • translations in UI (i18n, resx files)
  • translations in DB (i18n, in db - langstr)
  • idor (user can only access their own data - in rest controllers)
  • ci/cd deploy (asp app, db)

Repositories, UOW, servives, BLL, mappers - mandatory.
Full Admin UX.

Test coverage - mandatory.

Separate client app

  • ci/cd deploy (client hosted from separate web server - if js, hosted from different url, cors handling)

bonus track: full coverage with unit, integration tests and e2e tests (playwright or similar).

Write your own client in any technology you like (react, angular, vue, blazor, android, ios, dotnet etc).
Using your own backend rest api and JWT/refresh_token authentication.
Deploy the client to your VPS (separate docker/domain) - if it is web based.

Client must be able to login/logout, use jwt and refresh token flow, and do CRUD operations against your backend (minimum 3 entities).

https://gitlab.proxy.itcollege.ee/2025-2026-spring/akaver-csharp-demo/