Homework 2018-2019 Spring Grading 50% is home project Home project Min 10 domain entities - not counting m:m in-between entities and identity entities. Home project grading 50% final presentation and code Project stages 50% Every day over deadline - 10% 50% / stage count = percents per stage. Every late day 10% of percents per stage. So max late days is 9! Deadline 01 - 2019-02-24 23:59:59 Domain models + CRUD controllers ERD Schema (QSee, UML, ....) Project description - using of school written policy is mandatory. Actual content minimum 1/2 of A4. All visual documents as source and pdfs. Deadline 02 - 2019-03-24 23:59:59 According to your domain models, implement all repos and UOW Replace in minimum 3 API (where you have queries with .include()) controllers AppDbContext with AppUnitOfWork Update 2019-03-22 - there are no includes in scaffolded controllers. so, please just update to UOW in some random 3 controllers. Or add includes first - and test the resulting json response. Most likely you will see circular reference errors. This will help somewhat: ---- services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddJsonOptions(options => { options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects; options.SerializerSettings.Formatting = Formatting.Indented; }); --- And then replace dbconttext with UOW and add required support for these includes to repos. Deadline 03 - 2019-04-11 23:59:59 Implement login/logout/register functionality in REST backend and in your client (UI). Implement 3 controller like functionalities in your client (implement your app user stories) - with required DTO'S and UOW/Repos in rest server. Use authentication/authorization where needed! Deadline 04 - 2019-04-25 23:59:59 Implement 3 controller like functionalities in your client (implement your app user stories) - with required DTO'S and BLL/Services in rest server. If you have this in your startup: options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects - remove it. Use correct DTOs or multiple endpoints as needed. Try to achieve minimal amount of db queries and rest requests. Deadline 05 - 2019-05-09 23:59:59 Add final maping of DTO's (PublicApi.v1.DTO in demo project). Add API versioning support. Add Swagger support. Add XML comments to Swagger. Add XML comment all your API controllers/methods. Deadline 06 - 2019-05-16 23:59:59 Move base projects from your solution to separate solution. Solution has to be named ee.itcollege.. Include new solution in your git project. Rename namespaces and project names. Publish all the packages to nuget.org Use your packages in your homework project. Typical projects to remove: Contracts.Base Contracts.DAL.Base Contracts.BLL.Base DAL.Base.EF BLL.Base Identity Demo project baseprojects are here: http://git.akaver.com/distributedsystems/ee.itcollege.akaver Deadline 07 - Project defence Hosting Deploy your apps into docker containers and deploy/run them from cloud (azure student). Project defence 30.05 Thursday 9:00 07.06 Friday 9:00-21:00 11.06 Tuesday 9:00 Home project has to be presented/defended before examination!!!! Examination 31.05 Friday 9:00 08.06 Saturday 9:00 13.06 Thursday 9:00 ==================================================== Demo exam excercise Library Create simple REST Api backend and Client App, which would enable you to create list of books and perform searches. Support identity (control resource ownership on rest operations - dont allow updating/deleting other users stuff). App should do: Books CRUD Comments for books Generate statistc for books and authors Perform book search, taking into account author, publisher, title