The Build Phase at a Glance
Chapter Thirty-Eight
Syllabus topic Module 2 (30 hours), "Implementation, Testing, Deployment & Evaluation Phase", as a whole: its five topic rows and the "Final Deliverables at the End of Module 2".
Pages 246 to 250 of 499
In one line
Module 2 is the build phase: in its 30 hours you turn the four design documents into a working application, prove that it works with tests, put it where its users can reach it, keep every step of it in GitHub, check its speed and its security, write it up, and hand in four deliverables: the working application, the GitHub repository, the final report, and a presentation with a demonstration.
In the wording to use when asked: Module 2 of Mini Project I covers application development (frontend and backend implementation, database integration, authentication and validation, and error handling), integration and system testing (unit, black-box and integration testing, test case preparation and bug tracking), deployment (cloud deployment or local hosting, an APK build, server configuration where applicable, and version control with GitHub, which MU makes mandatory), performance and security testing, and final documentation, and ends in four deliverables: the working application, the GitHub repository, the final report, and the presentation and demonstration.
What MU prints for Module 2
MU heads the module "Implementation, Testing, Deployment & Evaluation Phase". Under the heading come five topic rows and four deliverables:
| MU's topic row | What it asks you to do | Chapters |
|---|---|---|
| Application Development: Frontend implementation, Backend implementation, Database integration, Authentication & validation, Error handling | build the application the design describes | 39 to 49 |
| Integration & System Testing: Unit testing, Black-box testing, Integration testing, Test case preparation, Bug tracking | prove that it works, at every level, and keep track of what does not | 50 to 56 |
| Deployment: Cloud deployment / Local hosting, APK build, Server configuration (if applicable), Version control using GitHub (Mandatory) | put it where its users are, and keep its history | 57 to 62 |
| Performance & Security Testing: Basic load testing, Input validation checks, Security validation | show that it is fast enough and hard to misuse | 63 to 65 |
| Final Documentation: Technical Report, User Manual, Screenshots, Source Code Documentation | write it up for the examiner, the user and the next developer | 66 to 69 |
And the deliverables, printed as "Final Deliverables at the End of Module 2":
| Deliverable | What it is | Chapter |
|---|---|---|
| Working Application | the system running, doing what the SRS says, in front of the examiner | 71 |
| GitHub Repository | the code, its whole history, its issues and its releases | 72 |
| Final Report | the permanent written record of the project | 73 |
| Presentation & Demonstration | the project shown and explained, live | 74 |
Chapter 70 puts the four together, and Chapters 75 and 76 are the external examination and its viva.
Four details of the wording matter:
- "Cloud deployment / Local hosting": the slash offers a choice. The worked team hosts its trial locally, on the college lab's desktop, because constraint C-3 requires the college's machine; Chapter 58 covers the cloud.
- "Server configuration (if applicable)": it applies whenever you run your own server. The worked team does, a Linux desktop with Nginx in front, so Chapter 60 configures it.
- "Version control using GitHub (Mandatory)" is the only item MU marks mandatory, and the repository is also one of the four deliverables. It is used from the first day, not uploaded at the end (Chapters 61 and 62).
- System testing appears only in the row's heading, "Integration & System Testing", and not in its list. Test the whole system anyway: the SRS says how each requirement will be verified, and only testing the whole system does that (Chapter 54).
The Build Phase at a Glance
How the design becomes the build
Module 1's documents are not left behind in Module 2; every one of them becomes something that runs or something that is tested. The thread from design to build, for the worked project:
| Designed in | Becomes | Chapters |
|---|---|---|
| the pages and wireframes (Chapter 27) | the five HTML pages, one stylesheet and the page scripts | 40, 41 |
| the layers and the middleware pipeline (Chapter 28) | the Express application, its middleware and its routes | 42 |
| the state machine and the rules (Chapters 23, 28) | the rules module: the slots, the moves, the totals, the clock | 43 |
| the schema (Chapter 29) | the database, the connection pool and the store's queries | 44 |
| ADR-5 and the transaction's sequence diagram (Chapters 22, 36) | placing an order in one transaction that cannot oversell | 45 |
| the security design, S1 to S17 (Chapter 31) | password hashing, sessions, roles and guards | 46 |
| the API's validation rules (Chapter 30) | the validation module | 47 |
| one shape for every error (Chapter 30) | the error types and the error handler | 48 |
| the SRS's verification column (Chapter 11) | the tests, their cases and their reports | 50 to 56, 63 to 65 |
| the deployment diagram (Chapter 25) | the lab desktop configured: the environment file, the service, Nginx | 57, 60 |
| ADR-1's Android wrapper (Chapter 36) | the WebView app and its APK | 59 |
When the build shows that a design document was wrong, the document is corrected and given a new version, as the worked UML set was on 25 September (Chapter 35). The code and the documents describe one system for the whole semester, not only until the design review.
The order the worked team built it
The plan of Chapter 17, from the day after the design review:
| Task | Dates | What it produces | Owner |
|---|---|---|---|
| F: Frontend | 11 Sep to 28 Sep | the pages, the stylesheet and the scripts, the student's pages built first against a mock of the API | Sneha |
| B: Backend and database | 11 Sep to 24 Sep | the application, its routes, services, rules and store; the database; placing an order | Farhan |
| V: Authentication, validation, errors | 25 Sep to 5 Oct | registration and its password rules, staff accounts, the limit on failed sign-ins, the validation module, the error handler | Rohan, with Farhan for the errors |
| Y: Deployment and APK | 6 Oct to 9 Oct | the application on the lab desktop, and the APK | Rohan |
| T: Integration and system testing | 6 Oct to 12 Oct | the routes and the database tested together; the whole system against the SRS | Rohan and Aditi |
| L: Load and security testing | 13 Oct to 15 Oct | the lunch rush simulated; the security design tested line by line | Rohan |
| R: Report, manual, presentation | 16 Oct to 26 Oct | the final report, the user manual, the presentation | Aditi and Sneha |
The Build Phase at a Glance
Unit tests have no task of their own: they are written with the code they test, in B and V, which is where their hours fall. Around the tasks sit five dates that matter as much: the practice deployment on the lab desktop in week 8, 14 to 18 September, answering the one skill nobody had; the first increment review on Thursday 24 September; the guide's code review on Thursday 1 October; the second increment review on Friday 9 October, with the head cook; and the last day of work, Monday 26 October. Friday 2 October is a holiday.
Two increments, each one working
The tasks are grouped into the two increments of Chapter 15, and each ends in something the canteen can use:
| Increment 1, 11 to 24 September | Increment 2, 25 September to 9 October | |
|---|---|---|
| Requirements | signing in, with the seed accounts (FR-2); today's menu and stock (FR-4, FR-6); placing an order, its slot, its stock, its number and the one-order-per-slot rule (FR-7 to FR-11); my orders (FR-12); the counter's list and moving orders on (FR-14, FR-15) | the counter's list refreshing itself, first of all (FR-14); registering (FR-1); staff accounts (FR-3); menu items (FR-5); cancelling (FR-13); the kitchen list (FR-16); the daily report (FR-17) |
| Also | the database, the transaction, unit tests of the rules | the password rules and the limit on failed sign-ins (NFR-6), the validation module, the error handler, deployment to the lab desktop, the APK |
The first increment needed a signed-in student before anyone could order, so signing in came with it, using the accounts the setup script creates; registering new accounts waited for the second. FR-10, a Should, came early for the reason Chapter 15 gives: it is checked inside the same transaction as the stock rule.
The hours
Module 2's 120 person-hours, as the WBS shares them (Chapter 16):
| Work | Packages | Hours |
|---|---|---|
| 4 The application | frontend 18, backend 16, database 10, authentication and validation 12, error handling 3, reviews and stand-ups 12 | 71 |
| 5 Testing | unit 8, integration 5, system and acceptance 5, load and security 4 | 22 |
| 6 Deployment | local hosting 2, the Linux server 4, the APK 4, the GitHub repository and release 2 | 12 |
| 7 Documents | the report 8, the manual and screenshots 3, the presentation 4 | 15 |
| Total | 120 |
The Build Phase at a Glance
Four students at 30 hours each. Notice what is small: deployment is 12 hours, a rehearsal in week 8 included, not a panic in the last weekend; and the documents are 15, because most of the report is Module 1's documents, already written and already corrected.
How to read Module 2 of this book
Module 1 printed documents. Module 2 prints the application itself, and three rules make what it prints trustworthy:
- Every file is the real file. Each listing marked with a file name is checked, character for character, against the worked application's source, so the book cannot show a line the application does not contain.
- Every terminal session was run. Each one was run on Ubuntu 24.04, the system the worked team deploys to, against that exact code, and its output copied from the screen, not typed.
- The application's tests pass. The whole suite runs on three versions of Node.js, 22, 24 and 26, before any session in this book can be run at all.
And the rule from Chapter 2 still holds: copy the method, never the project. Read what the worked team built and why, then build the same kind of thing for your own problem. An examiner who asks for a small change during your demonstration will find out at once whose code it is.
Do this for your project
- Put your build plan's dates in your plan, with your increment reviews and your guide's code review on fixed dates.
- Set up every member's machine in the first days, and create the repository on the first day (Chapters 39 and 61).
- Build in thin slices that each work end to end, Must Haves first, and show each one to your users.
- Write the tests with the code, not after it.
- Deploy once early, as a rehearsal, long before it counts.
- When the build shows a design document is wrong, correct the document and give it a new version.
- Keep the last two weeks for testing at scale, the report and the presentation.
Mistakes that cost marks
Everything built, then everything tested, in the last week, when nothing can be fixed any more.
The first deployment on the day of the demonstration. It fails for a reason nobody has seen before, in front of the examiner.
One member writing all the code. The repository's history shows exactly who did, and the viva asks the others.
The Build Phase at a Glance
Code and design that drifted apart without anyone noticing, so the report describes a system that was never built.
Documentation written from memory the night before, with screenshots of a version that no longer exists.
Quick revision
- Module 2: Implementation, Testing, Deployment & Evaluation Phase, 30 hours per student.
- Five rows: application development, integration and system testing, deployment (with GitHub, mandatory), performance and security testing, final documentation.
- Four deliverables: working application, GitHub repository, final report, presentation and demonstration.
- Every Module 1 document becomes code or tests; when the build proves one wrong, it gets a new version.
- Build in increments that each work; tests with the code; deploy early as a rehearsal.
Questions you must be able to answer
1. What does MU's Module 2 cover, and what are its deliverables? Application development (frontend and backend implementation, database integration, authentication and validation, error handling), integration and system testing (unit, black-box and integration testing, test case preparation, bug tracking), deployment (cloud deployment or local hosting, an APK build, server configuration where applicable, and GitHub, which is mandatory), performance and security testing, and final documentation. Its deliverables are the working application, the GitHub repository, the final report, and the presentation and demonstration.
2. What does "Cloud deployment / Local hosting" in MU's syllabus mean for a project? That either is acceptable: the application may be put on a cloud server or hosted on a local machine. The worked team hosts its trial locally, on the college lab's desktop, because its constraints require the college's machine and network.
3. How do the Module 1 documents relate to the Module 2 work? Each becomes something built or tested: the pages and wireframes become the frontend, the schema becomes the database, the API specification becomes the routes and their validation, the security design becomes the authentication code and its tests, and the SRS's verification column becomes the test plan. When the build shows a document to be wrong, the document is corrected and versioned.
4. Why did the worked team build in two increments rather than all at once? So that each increment ended in something that worked and could be shown to the canteen: after the first, students could already order and the counter could serve, and the review of it found a change, the counter's list refreshing itself, early enough to make before anything was built on top of it.
5. Why write unit tests during the build rather than after it? Because a test written with the code catches a mistake while the code is fresh and nothing depends on it yet, and because tests written at the end, under time pressure, are the first work to be cut.
The rest of this subject
These notes are cut from the University's printed syllabus. Open the syllabus itself for the same subject.