Guide 6 min read
How to write FYP Chapter 4: system design and implementation
The chapter examiners read first. ERD and DFD Level 0 and 1 from your real schema, data dictionaries with keys and nullability, and code listings that cite file paths instead of placeholders.
When external examiners open your Final Year Project (FYP) dissertation, they do not start with Chapter 1’s project background or Chapter 2’s literature review. They jump directly to Chapter 4: System Design and Implementation.
Chapter 4 is where academic hand-waving stops and engineering proof begins. If your diagrams disagree with your code, or your database tables list phantom attributes not found in your repository, your defense grade takes an immediate hit.
1. The Three Deadly Sins of FYP Chapter 4
Over 80% of dissertation corrections handed out during viva defense trace back to three common oversights:
- The Disconnected ERD: Presenting an Entity-Relationship Diagram drawn in draw.io that lists 14 tables, while your active Prisma schema or Supabase migration only contains 6.
- Missing Data Dictionaries: Inserting an ERD screenshot without accompanying tables detailing field names, data types, nullability, and foreign key constraints.
- Placeholder Code Snippets: Pasting 8-line generic snippets (
def login(): pass) with no mention of source file paths, line ranges, or framework architecture.
Examiner Rule of Thumb: Every figure, table, and listing in Chapter 4 must cite a physical file path from your git repository. If an examiner cannot grep your codebase and find the matching symbol within 10 seconds, the claim is ungrounded.
2. Grounding ERD in Concrete Schema Models
Your ERD should be generated directly from your codebase’s Abstract Syntax Tree (AST) or database migration files.
For example, consider an authentication and session handler model in Prisma:
model Student {
id String @id @default(uuid())
matricNo String @unique
fullName String
programme String
cgpa Float?
submissions Submission[]
createdAt DateTime @default(now())
}
model Submission {
id String @id @default(uuid())
studentId String
chapter Int
wordCount Int
turnitinScore Float?
status String @default("PENDING")
student Student @relation(fields: [studentId], references: [id])
}
When describing this relationship in Section 4.2:
- Document the cardinality clearly: One Student to Many Submissions (
1:N). - Specify foreign key constraints explicitly (
Submission.studentId -> Student.id). - Include the exact migration timestamp and table naming convention.
3. DFD Level 0 vs. Level 1: Avoiding the Trap
Data Flow Diagrams (DFDs) trip up more students than any other diagram type. The most common mistake is confusing a DFD with a flowchart or sequence diagram.
DFD Level 0 (The Context Diagram)
- Must feature exactly one central process bubble representing the entire system (e.g.,
0.0 UniReport System). - External entities (e.g.,
Student,Faculty Supervisor,Turnitin API) interact strictly with the central process via directed data flow arrows. - Never include data stores in Level 0.
DFD Level 1 (Decomposition)
- Decomposes Process
0.0into sub-processes (1.0 Ingest Repository,2.0 Plan Diagrams,3.0 Run Cadence Gate,4.0 Assemble Manuscript). - Introduces data stores (
D1 Manifest Cache,D2 Student Archive). - Ensures conservation of data flow: every input arrow present in Level 0 must be accounted for across the decomposed processes in Level 1.
4. Structured Data Dictionaries
Never present an ERD without its accompanying data dictionary. Faculty templates require an explicit tabular breakdown for each entity:
| Attribute | Data Type | Nullable | Key | Description |
|---|---|---|---|---|
id | VARCHAR(36) | No | PK | UUID primary key generated at record insertion |
matricNo | VARCHAR(12) | No | UK | Student institutional matriculation ID |
fullName | VARCHAR(100) | No | - | Full legal name matching academic transcript |
cgpa | DECIMAL(3,2) | Yes | - | Cumulative GPA scale 0.00 to 4.00 |
createdAt | TIMESTAMP | No | - | UTC creation timestamp with default NOW() |
5. How UniReport Automates Chapter 4
With UniReport connected to your editor (Cursor, Claude Code, Antigravity, or Copilot), you don’t have to draft these tables manually:
> @unireport Draft Chapter 4 from this repository
The MCP agent executes four deterministic steps:
- AST Extraction: Scans your repository models, SQL migrations, API routes, and schema files.
- Mermaid Generation: Compiles publication-grade ERD and DFD
.mmddiagrams with SVG and high-DPI PNG assets. - Data Dictionary Synthesis: Formats complete Markdown tables with data types, nullability, and foreign key mappings.
- Cadence Gate Linting: Validates sentence variance (
>= 35.0) and coefficient of variation (>= 0.45) to guarantee publication-grade academic cadence.
Summary Checklist for Submission
Before binding your dissertation, run through this five-point audit:
- Every diagram in Chapter 4 is referenced in the preceding text (e.g., “as illustrated in Figure 4.2”).
- DFD Level 0 contains zero data stores and exactly one system process.
- ERD entity names strictly match your migration files and database collections.
- Every table has a numbered caption positioned above the table.
- Code listings specify physical repository relative paths and lines.
Draft your dissertation with UniReport
Connect the UniReport MCP server to Cursor or Claude Code and draft publication-grade chapters grounded in your real code.