For six modules you have practiced on the Order Book of Brandt Building Services, step by step, with the instructions of the lessons. Now comes what is the normal case on the job: Nobody tells you what the next step is. You decide for yourself what you modernize, in which order, what you protect yourself with, and when you stop. The final project is the same method as before, only without instructions.

This module teaches nothing new. It points to modules M1 to M6 and requires you to apply them. It also has no module exam: The reviewer reads your repository, your plan, your decisions and your final report and grades them with the grid below. Plan on about ten hours for the whole module.

Lesson What comes out of it
M7.1 Planning the final project docs/final-project/plan.md, seams.csv, at least two ADRs, the tag final-start
M7.2 Carrying out the final project the history: one step per commit, one test per step, evidence
M7.3 Operating, evaluating, closing pilot, measurement, decision, final-report.md, the submission

Two paths: the maintenance plan or your own program

You have two options. Both lead through the same steps and are graded with the same grid.

Variant A: the maintenance plan Variant B: your own program
Starting point your Order Book repository after module M6 a Windows Forms or WPF program that you maintain or inherit
Advantage you know every spot; maintenance rule, export and permissions are already there you learn on the program you really have
Price some building blocks already stand; you provide evidence for them and finish the rest the inventory (lesson M1.3) and the cut cost time, and you carry the program's risk
Suitable if you did modules M1 to M6 on the Order Book the “Suitability” table below yields only Yes

Choose A if you are unsure. The maintenance plan is cut as a function block so that it touches all stations of the course: data access, API, page, window, export, permissions, pilot and switching off.

Variant A: what already stands, and what remains

The lessons built the Order Book all the way through and took parts of the maintenance plan along. That is intended: In this project you do not repeat the build, you repeat the method. For every building block you check whether it really stands, write the evidence into the plan and do the rest.

Building block Status after the lessons Your remainder
Rule “next maintenance” in the library, with tests (lesson M3.1); the trigger's rule was added with the switch-off (lesson M6.5) write the evidence into the plan: tests green
Data access and writers MaintenanceDueQuery, MaintenanceWriter, OrderWriter.CompleteAsync (lessons M3.2, M3.3, M6.5) check that nothing hangs on the procedure or trigger anymore (Check-Shutdown.ps1)
Permissions policies Read and Edit for GET /maintenance and POST /maintenance/{id}/order in the test rig (lesson M5.2) build the endpoints in the real API with the same policies
Format of the technicians' file MaintenanceExport in the library, byte comparison with the old file (lesson M4.5) write the file to Blob Storage and settle the reader, the tablet
Page and window not built “Maintenance plan” page in Blazor; the MaintenanceForm window as a client with a switch
Pilot, measurement, switching off planned for the order list and the invoices (lessons M6.3 to M6.5) pilot plan, measurement and switch-off conditions for the maintenance plan

If a row does not fit your repository (you are further along or less far along than the table says), strike or add it in the plan and write down why. A plan row that does not fit the repository is the most common mistake of this project.

Variant B: suitability

You may choose your own program only if you answer every row with Yes. Otherwise the grid cannot be met, and you will only notice at the end.

Question Why
Is it a Windows Forms or WPF program in C#, and do you have the source code? Module M2 needs it
May you show the source code to the reviewer? You submit your repository
Are there no real customer data and no secrets in the repository and in the database? House rules: no secrets in Git; the database for the exercise is invented or anonymized
Does it build today, and do you know its behavior? without a starting point there is no safety net (lesson M2.1)
Is there a database that old and new can share? ownership and protective layer (lessons M3.3, M6.2)
Is there a sign-in or permissions, a file that someone outside reads, and an output like printing? Entra ID, consumers, export (lessons M5.1, M4.5, M6.5)
Can a function block be pulled out that is not the whole program? one to three forms with a group of related tables

For variant B, first do the inventory from lesson M1.3 and read the result before you fix the cut.