Home
★Worked Project: CampusCare Appointment System
★

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.

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.

MemberRole
NafisaProject manager, SRS
ArifAnalyst, DFD and use cases
TaniaDesigner: UML and Figma
RakibDeveloper, LaTeX report

The nine steps you will see

  1. Proposal and plan

Worked project

Meet the project: CampusCare (cont.)

  1. Report in LaTeX
  2. IEEE SRS
  3. SDLC model choice
  4. DFD Level 0 and 1
  5. Use cases
  6. Sequence and communication
  7. Class diagram
  8. Wireframes
A realistic example written for these notes, so you can see every artefact of the course connect. Use it to learn the method; your own project must be your team’s work.

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

  1. By week 10, a registered user can book an appointment for the next 7 days in under 2 minutes.
  2. The system sends an SMS reminder 24 hours before every appointment.
  3. 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.)

  1. The receptionist can publish a doctor’s weekly schedule in under 5 minutes.

Related work (comparison)

FeaturePaper registerMessaging-app groupGeneral hospital booking sitesCampusCare
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

FeasibilityFinding
TechnicalA web app with a database and an SMS API; the team has used both in earlier courses.
EconomicEstimated cost 80,300 Tk (below); saves the receptionist about 2 hours a day.
OperationalDoctors agreed in interviews; the receptionist wants training.
ScheduleFits 11 weeks if built in three increments.
Budget item (estimates)Tk
Hosting and domain, 1 year12,000
SMS reminders (assumed rate), 1 year6,000
2 tablets for doctors50,000
Training the receptionist5,000
Contingency (10%)7,300
Total80,300

Step 1 · Proposal and plan

Step 1 · Feasibility, plan, budget and risks (cont.)

Gantt chart (weeks)

TaskWeeksOwner
Proposal & plan1–2Nafisa
SRS2–3Nafisa
DFD & use cases3–4Arif
Sequence & class diagrams4–6Tania
Wireframes & prototype5–6Tania
Increment 1: accounts, booking6–7Rakib
Increment 2: schedules, queue8Rakib
Increment 3: reminders, notes9Rakib
Testing with users9–10all
Report & delivery10–11all
Top riskP × IResponse
SMS API costs or access3 × 4 = 12Fall back to e-mail reminders
Doctors unavailable for feedback3 × 3 = 9Book two review slots now
Scope creep (lab results, pharmacy)4 × 3 = 12Freeze 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.

LaTeX source
\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}
Output · what the PDF shows

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:

LaTeX source
\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}.
Output · what the PDF shows

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 classNeeds
Patient (student or staff)book, cancel, reschedule, view appointments
Doctorsee the day’s queue, record visit notes
Receptionistpublish 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

IDTypeRequirement (measurable)
NFR-PERF-1PerformanceThe free-slot list shall appear within 2 seconds for 95% of requests with 200 users online.
NFR-SEC-1SecurityUsers shall log in with their university ID; passwords shall be stored only as salted hashes.
NFR-PRIV-1PrivacyOnly the treating doctor shall see a patient’s visit notes.
NFR-USE-1Usability9 of 10 first-time users shall book an appointment without help (tested in week 9).
NFR-AVL-1AvailabilityThe system shall be available 99% of the time between 8 am and 8 pm on working days.
NFR-ACC-1AccessibilityAll text shall meet WCAG 2.2 AA contrast (4.5 : 1).
Every NFR has a number or an observable test. Compare them with the vague examples in topic 3.

Step 4 · SDLC model

Step 4 · Choosing the SDLC model

PriorityCriterionWaterfallV-modelIterativeSpiralAgilePrototyping
4Core requirements knownYesYesYesNoNoNo
6Users give feedback during developmentNoNoYesYesYesYes
5Working version earlyNoNoYesYesYesYes
3Explicit risk analysisNoNoNoYesNoNo
5Security and reliability focusNoYesNoYesNoNo
7Fits a fixed 11-week scheduleYesYesYesNoYesYes
30Total111622191818
Decision: iterative model (22 of 30). The core requirements were clear after interviews, but doctors and students must react to real screens. Three increments fit the 11 weeks: (1) accounts and booking, (2) schedules and the doctor’s queue, (3) reminders and visit notes. A Figma prototype is shown to users before increment 1.

Step 5 · DFD

Step 5 · DFD Level 0

Context diagram: one process, four external entities, five flows.

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

Five processes and three stores. Every Level-0 flow reappears here, so the diagrams balance.

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

Eight goals for four actors; Log in is included by every use case that changes data.

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

FieldUC-01 Book appointment
ActorsPatient (primary)
PreconditionThe patient is logged in (UC-00 Log in)
TriggerThe patient chooses “Book appointment”
Main success scenario1 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 flows2a 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)
PostconditionOne new appointment is stored; the slot is no longer free
RequirementsFR-2.1 – FR-2.4, NFR-PERF-1

Step 7 · Sequence and communication

Step 7 · Sequence diagram: Book appointment

The main scenario and the “slot taken” alternative in one alt fragment. Boundary → control → entity.

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

The same interaction as a network; numbers match the sequence diagram (replies omitted).

Step 7 · Sequence and communication

Step 7 · Communication diagram (cont.)

The links here (Screen–Controller, Controller–Schedule, Controller–Appointment) tell Tania which classes must know each other in the class diagram.

Step 8 · Class diagram

Step 8 · Class diagram

Classes found from the SRS nouns and the sequence-diagram messages.

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.
Check: every message in step 7 exists as an operation, e.g. Slot.reserve(), Schedule.freeSlots().

Step 9 · Wireframes

Step 9 · Wireframes and testing

Three screens of the booking flow, built in Figma with a Button component and auto layout.

Step 9 · Wireframes

Step 9 · Wireframes and testing (cont.)

ScreenUse caseRequirements
S-03 Book appointmentUC-01 step 1FR-2.1
S-04 Free slotsUC-01 steps 2–3, alt 4aFR-2.1, FR-2.3
S-05 BookedUC-01 step 5FR-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:

StepWhere FR-2.3 appears
1 ProposalObjective 1: booking in under 2 minutes, even at busy times
3 SRSFR-2.3, priority High
4 SDLCBuilt in increment 1 and shown to users
5 DFDProcess 2.0 reads D2 Doctor schedules (free slots)
6 Use casesJoin waiting list «extend»s Book appointment; alternative flow 4a
7 SequenceThe [else] operand of the alt fragment
8 ClassSlot.isFree and Slot.reserve() : boolean
9 WireframesScreen S-04 greys out taken slots and offers the waiting list
That traceability is the point of the course. Each model looks at the same system from a different angle; if one requirement cannot be traced through all of them, something is missing.

Check yourself

Quiz

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.