Worked project · all nine steps
Worked Project: CampusCare Appointment System
One realistic project taken through every step of the course: proposal and plan, LaTeX report, IEEE SRS, SDLC choice, DFD Level 0 and 1, use cases, sequence and communication diagrams, class diagram and Figma wireframes.
← → move between slides · F full screen · M slide list
Before we start
Why this matters
What does a finished design project actually look like — and how do the proposal, SRS and all the diagrams fit together?
This deck follows one team, from a problem at the university medical centre to wireframes tested with users. Every step uses the method from its topic and refers back to the requirements, so you can see how the pieces connect.
Open it at the start of the course for the big picture, and again at each lab to see that step done in full.
Outline · All labs
Topics in this chapter
Select a topic to jump to the slide that explains it.
Worked project
Meet the project: CampusCare
The university medical centre books appointments on a paper register at the reception desk. Students queue before classes, and doctors cannot see who is coming. Team Pulse (four students) builds CampusCare: a web app where students and staff book, cancel and get reminders for appointments; doctors see their queue and record visit notes; the receptionist manages doctors’ schedules.
| Member | Role |
|---|---|
| Nafisa | Project manager, SRS |
| Arif | Analyst, DFD and use cases |
| Tania | Designer: UML and Figma |
| Rakib | Developer, LaTeX report |
The nine steps you will see
- Proposal and plan
Worked project
Meet the project: CampusCare (cont.)
- Report in LaTeX
- IEEE SRS
- SDLC model choice
- DFD Level 0 and 1
- Use cases
- Sequence and communication
- Class diagram
- Wireframes
Step 1 · Proposal and plan
Step 1 · Problem, objectives and related work
Problem statement
Students and staff need a way to book medical-centre appointments without queuing, because the reception desk handles about 120 walk-in requests a day and the average wait before being seen is 40 minutes (count taken by the team over one week). Today they queue in person, which clashes with classes and gives doctors no view of the day’s load.
SMART objectives
- By week 10, a registered user can book an appointment for the next 7 days in under 2 minutes.
- The system sends an SMS reminder 24 hours before every appointment.
- Doctors see their queue for the day and record a visit note for each patient.
Step 1 · Proposal and plan
Step 1 · Problem, objectives and related work (cont.)
- The receptionist can publish a doctor’s weekly schedule in under 5 minutes.
Related work (comparison)
| Feature | Paper register | Messaging-app group | General hospital booking sites | CampusCare |
|---|---|---|---|---|
| Book without queuing | ✗ | ✓ | ✓ | ✓ |
| See free slots | ✗ | ✗ | ✓ | ✓ |
| University ID login | ✗ | ✗ | ✗ | ✓ |
| Reminder SMS | ✗ | ✗ | some | ✓ |
| Doctor’s daily queue | ✗ | ✗ | ✓ | ✓ |
| Free for the centre | ✓ | ✓ | ✗ | ✓ |
The gap: nothing combines university login, free slots and reminders at no cost to the centre.
Step 1 · Proposal and plan
Step 1 · Feasibility, plan, budget and risks
| Feasibility | Finding |
|---|---|
| Technical | A web app with a database and an SMS API; the team has used both in earlier courses. |
| Economic | Estimated cost 80,300 Tk (below); saves the receptionist about 2 hours a day. |
| Operational | Doctors agreed in interviews; the receptionist wants training. |
| Schedule | Fits 11 weeks if built in three increments. |
| Budget item (estimates) | Tk |
|---|---|
| Hosting and domain, 1 year | 12,000 |
| SMS reminders (assumed rate), 1 year | 6,000 |
| 2 tablets for doctors | 50,000 |
| Training the receptionist | 5,000 |
| Contingency (10%) | 7,300 |
| Total | 80,300 |
Step 1 · Proposal and plan
Step 1 · Feasibility, plan, budget and risks (cont.)
Gantt chart (weeks)
| Task | Weeks | Owner |
|---|---|---|
| Proposal & plan | 1–2 | Nafisa |
| SRS | 2–3 | Nafisa |
| DFD & use cases | 3–4 | Arif |
| Sequence & class diagrams | 4–6 | Tania |
| Wireframes & prototype | 5–6 | Tania |
| Increment 1: accounts, booking | 6–7 | Rakib |
| Increment 2: schedules, queue | 8 | Rakib |
| Increment 3: reminders, notes | 9 | Rakib |
| Testing with users | 9–10 | all |
| Report & delivery | 10–11 | all |
| Top risk | P × I | Response |
|---|---|---|
| SMS API costs or access | 3 × 4 = 12 | Fall back to e-mail reminders |
| Doctors unavailable for feedback | 3 × 3 = 9 | Book two review slots now |
| Scope creep (lab results, pharmacy) | 4 × 3 = 12 | Freeze the SRS; log requests for v2 |
Step 2 · LaTeX report
Step 2 · The report in LaTeX
Rakib creates an Overleaf project from the course template. Each chapter is one file, so all four members can write at the same time without conflicts.
\documentclass[12pt]{report}
\usepackage{amsmath, graphicx, booktabs, float}
\usepackage[style=ieee]{biblatex}
\addbibresource{references.bib}
\title{CampusCare: Medical-Centre Appointment System}
\author{Team Pulse, CSE 308}
\begin{document}
\maketitle
\tableofcontents
Step 2 · LaTeX report
Step 2 · The report in LaTeX (cont.)
\input{ch1-proposal} % Nafisa
\input{ch2-srs} % Nafisa
\input{ch3-sdlc} % Arif
\input{ch4-design} % Arif, Tania
\input{ch5-ui} % Tania
\printbibliography
\end{document}Step 2 · LaTeX report
Step 2 · The report in LaTeX (cont.)
Step 2 · LaTeX report
Step 2 · The report in LaTeX (cont.)
Each \input file starts with its own \chapter; their text is shortened here. The contents and the reference list are generated.
Every diagram on the following slides is exported as PDF from draw.io or Figma and inserted as a numbered figure:
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{dfd-level1}
\caption{Level 1 DFD of CampusCare.}
\label{fig:dfd1}
\end{figure}
As Figure~\ref{fig:dfd1} shows, process 2.0 reads
the free slots from store D2~\cite{demarco1978}.Step 2 · LaTeX report
Step 2 · The report in LaTeX (cont.)
Step 2 · LaTeX report
Step 2 · The report in LaTeX (cont.)
In the full report the number would be 4.2 (chapter 4, second figure); the reference number comes from references.bib.
Step 3 · SRS
Step 3 · SRS: user classes and one feature
| User class | Needs |
|---|---|
| Patient (student or staff) | book, cancel, reschedule, view appointments |
| Doctor | see the day’s queue, record visit notes |
| Receptionist | publish and change doctor schedules |
| SMS gateway (external system) | receives reminder messages |
Scope: booking and reminders for the university medical centre. Out of scope: lab results, pharmacy stock, billing.
3.2 Book appointment — priority High
Stimulus/response: patient picks doctor and date → system shows free slots → patient picks one → system confirms with a reference number.
- FR-2.1 The system shall show only slots that are free at the moment the list is displayed.
- FR-2.2 The system shall not allow a patient to hold more than one future appointment with the same doctor.
- FR-2.3 If the chosen slot is taken before confirmation, the system shall say so and offer the waiting list.
- FR-2.4 The system shall give every confirmed appointment a unique reference such as CC-2291.
Step 3 · SRS
Step 3 · SRS: non-functional requirements
| ID | Type | Requirement (measurable) |
|---|---|---|
| NFR-PERF-1 | Performance | The free-slot list shall appear within 2 seconds for 95% of requests with 200 users online. |
| NFR-SEC-1 | Security | Users shall log in with their university ID; passwords shall be stored only as salted hashes. |
| NFR-PRIV-1 | Privacy | Only the treating doctor shall see a patient’s visit notes. |
| NFR-USE-1 | Usability | 9 of 10 first-time users shall book an appointment without help (tested in week 9). |
| NFR-AVL-1 | Availability | The system shall be available 99% of the time between 8 am and 8 pm on working days. |
| NFR-ACC-1 | Accessibility | All text shall meet WCAG 2.2 AA contrast (4.5 : 1). |
Step 4 · SDLC model
Step 4 · Choosing the SDLC model
| Priority | Criterion | Waterfall | V-model | Iterative | Spiral | Agile | Prototyping |
|---|---|---|---|---|---|---|---|
| 4 | Core requirements known | Yes | Yes | Yes | No | No | No |
| 6 | Users give feedback during development | No | No | Yes | Yes | Yes | Yes |
| 5 | Working version early | No | No | Yes | Yes | Yes | Yes |
| 3 | Explicit risk analysis | No | No | No | Yes | No | No |
| 5 | Security and reliability focus | No | Yes | No | Yes | No | No |
| 7 | Fits a fixed 11-week schedule | Yes | Yes | Yes | No | Yes | Yes |
| 30 | Total | 11 | 16 | 22 | 19 | 18 | 18 |
Step 5 · DFD
Step 5 · DFD Level 0
Step 5 · DFD
Step 5 · DFD Level 0 (cont.)
- The Patient sends sign-up and booking data and receives confirmations.
- The Receptionist supplies doctor schedules; the Doctor supplies visit notes.
- The SMS gateway is an external system that only receives reminders.
- No data stores yet: they are inside the system.
Step 5 · DFD
Step 5 · DFD Level 1
Step 5 · DFD
Step 5 · DFD Level 1 (cont.)
Balancing check: sign-up → 1.0 (registration details); booking → 2.0; confirmation ← 2.0; doctor schedules → 3.0; visit notes → 5.0; reminder ← 4.0. Every store has a flow in and a flow out.
Step 6 · Use cases
Step 6 · Use case diagram
Step 6 · Use cases
Step 6 · Use case diagram (cont.)
- Primary actors: Patient, Receptionist, Doctor. Secondary: SMS gateway.
- «include»: Book, Cancel, View, Manage schedules and Record notes all need Log in.
- «extend»: Join waiting list extends Book appointment only when the chosen slot is taken (FR-2.3).
- Send reminder is started by time (the day before), not by a person.
Step 6 · Use cases
Step 6 · Use case description: Book appointment
| Field | UC-01 Book appointment |
|---|---|
| Actors | Patient (primary) |
| Precondition | The patient is logged in (UC-00 Log in) |
| Trigger | The patient chooses “Book appointment” |
| Main success scenario | 1 Patient picks a doctor and a date · 2 system shows free slots (FR-2.1) · 3 patient picks a slot · 4 system reserves it and creates the appointment · 5 system shows the reference number (FR-2.4) |
| Alternative flows | 2a no free slots that day → system suggests the next free day · 4a slot taken meanwhile → system offers the waiting list (extension point, FR-2.3) · 4b patient already has a future appointment with this doctor → system refuses (FR-2.2) |
| Postcondition | One new appointment is stored; the slot is no longer free |
| Requirements | FR-2.1 – FR-2.4, NFR-PERF-1 |
Step 7 · Sequence and communication
Step 7 · Sequence diagram: Book appointment
Step 7 · Sequence and communication
Step 7 · Sequence diagram: Book appointment (cont.)
Messages 8–13 implement FR-2.1 and FR-2.4; the [else] operand implements FR-2.3. Each message becomes an operation in the class diagram: reserve(slot) → Slot.reserve(), create(p, slot) → the Appointment constructor.
Step 7 · Sequence and communication
Step 7 · Communication diagram
Step 7 · Sequence and communication
Step 7 · Communication diagram (cont.)
Step 8 · Class diagram
Step 8 · Class diagram
Step 8 · Class diagram
Step 8 · Class diagram (cont.)
- User is abstract; Patient, Doctor and Receptionist inherit login data.
- A Schedule is composed of Slots: delete a day’s schedule and its slots go too.
- An Appointment occupies exactly one Slot; a Slot has at most one Appointment (FR-2.1).
- An Appointment owns at most one VisitNote (composition): notes never exist without a visit.
- The Receptionist only uses Schedule (dependency) when publishing it.
Slot.reserve(), Schedule.freeSlots().Step 9 · Wireframes
Step 9 · Wireframes and testing
Step 9 · Wireframes
Step 9 · Wireframes and testing (cont.)
| Screen | Use case | Requirements |
|---|---|---|
| S-03 Book appointment | UC-01 step 1 | FR-2.1 |
| S-04 Free slots | UC-01 steps 2–3, alt 4a | FR-2.1, FR-2.3 |
| S-05 Booked | UC-01 step 5 | FR-2.4 |
Test with 5 users: 4 of 5 booked without help (NFR-USE-1 needs 9 of 10, so not yet met). Two users missed that 09:40 was taken → the team added a “taken” label and a lock icon, and retested.
Summary
Summary: one requirement through every step
Follow FR-2.3 (“if the chosen slot is taken, offer the waiting list”) through the whole project:
| Step | Where FR-2.3 appears |
|---|---|
| 1 Proposal | Objective 1: booking in under 2 minutes, even at busy times |
| 3 SRS | FR-2.3, priority High |
| 4 SDLC | Built in increment 1 and shown to users |
| 5 DFD | Process 2.0 reads D2 Doctor schedules (free slots) |
| 6 Use cases | Join waiting list «extend»s Book appointment; alternative flow 4a |
| 7 Sequence | The [else] operand of the alt fragment |
| 8 Class | Slot.isFree and Slot.reserve() : boolean |
| 9 Wireframes | Screen S-04 greys out taken slots and offers the waiting list |
Check yourself
Quiz
Resources
Further learning
Hand-picked material to go deeper. Links open in a new tab.
Summary
Summary
- A design project is one system seen through many models: proposal, SRS, SDLC, DFD, use case, sequence, communication, class and UI.
- Requirements get IDs in the SRS and are traced through every later model.
- The SDLC choice is argued with a weighted matrix and tied to the schedule.
- DFD levels balance; use cases group goals; sequence messages become class operations.
- Wireframes are traced to use cases and tested with real users; failures lead to changes.