Professional Documents
Culture Documents
1 - SA Assignment 2
1 - SA Assignment 2
Before you start the assignment please go through the whole assignment brief. If
there are any parts of the assignment you need clarified please consult the Tutor.
You are also required to submit a reflective report on how successful you were in
implementing tasks which involved use of knowledge/skills other than that acquired
in class and your overall performance through the whole project
You are to first create a directory named assignment2 on your VM and then create a
repository named sheffSurgeries on Github. You will then clone this repository
sheffSurgeries in the directory assignment2. The Grails application, which you will
name appintmentSystem is to be created inside the repository sheffSurgeries. Make
sure Chromium is set as default browser as it supports HTML5 well
The application has got to be developed from the normal user account and not the
root account. A mark of zero(0) will be awarded for an application developed from
the root account
The following are the suggested attributes for each domain class. Please feel free to
add more attributes to each domain class as long as the additional attributes do not
alter domain class relationships. You are not to remove any of the prescribed
attributes
Surgery
Name Description Example
name Name of surgery City Health Centre
21 Marble Street,
address Make up some address
Sheffield
postcode Make up a post code S11 5TY
Make up some valid-looking
telephone 0114 555 555
phone number
Maximum number of patients
numberOfPatients 50
that can be registered
Use placeholder
description Brief description of surgery
text
openingTime The time the surgery is open 09:00-17:00hrs
Doctor
Name Description Example
fullName First and last names Dr Sarah Macdonald
qualification Qualifications of doctor MBChB(Sheffield)
position Position of doctor GP, Surgeon
s.macdonald@myemail.co
doctorEmail Makeup an email
m
password Make up password secret222
doctorOffice Room number D-9888
doctorPhon Make up some valid-
01111777
e looking telephone number
bio Biography of doctor Use placeholder text
Patient
Name Description Example
patientName First and last names Tom Rivers
Make up address for 2 One Way Street,
patientAddress
patient Eckington
patientResidenc Name of village, town, city Sheffield, Barnsley,
e where patient resides Doncaster
patientDob Date of birth for patient 20/09/1988
patientID Makeup a patient ID E25555
Date employee was
dateRegistered 26/02/2018
registered at surgery
Make up a patient telephone
patientPhone 0114 222 4444
number
Receptionsit
Name Description Example
recepName Full name of receptionist Rob Kingston
r.kingston@email.co
recepEmail Make up email of receptionist
m
recepUsername Make up a username rking
recepPassword Make up a password secret2019
recepPhone Telephone number 0114 222 4445
Nurse
Name Description Example
nurseName Full name of nurse Susan Peters
qualification
Nurse qualifications Registered General Nurse
s
nurseEmail Make up email for nurse s.peters@myemail.com
nurseOffice Office number B-455
nursePhone Telephone number 0114 222 4433
Appointment
Name Description Example
appDate Date for appointment 11/04/2019
appTime Time 3:00pm
appDuration Duration of appointment in minutes 30, 45, 60
roomNumbe
Make up a room number A-1111
r
Prescription
Correctly translating the class diagram into domain classes as well as creating
relationships between the classes
Implementing functionalities as described in the tasks
Documenting the progress through GIT commits
The understanding you demonstrate (including clear explanations of problems met, even
if you have not successfully resolved the problems).
You are very strongly advised to make your work largely self-documenting as you
progress, though regular
GIT commits that have good explanatory human readable comments explaining the
work as it is progressed.
It is very unlikely that this assignment can be completed without regular, step-by-
step work towards the end-product.
Please make sure you name repositories, directories and files as suggested in the
assignment brief. This will enable the marker to find the evidence easily. Failure by
the marker to find the expected evidence will be taken as non-submission and will
lead to loss of marks.
Any evidence showing that the VM instance and/or the Grails application submitted
might have been created by someone else other than you will be regarded as
plagiarism. All VM files should be submitted including the log files. VMs with any files
missing including log files will not be accepted and a mark of 0(zero) will be awarded
for the task. The log files could be examined to make sure you are the originator of
the VM and the Grails application
GIT commits
You are required to provide credentials for your GitHub account in the User Guide
section of the report to enable markers to access the account to obtain evidence
about Git commits. Therefore, you need to ensure that you do not have content you
do not want to be seen by anyone else on your GitHub account. Failure to provide
correct credentials will lead to loss of marks for the task
[2 marks will be lost if application package is not defined as prescribed in this brief. 0
marks will be awarded for the whole task if any of the files has a package which
contains someone else's name]
Define class attributes and constraints [This is a good GIT commit point]. [14 marks]
[For each class 1 mark awarded for correctly defining all attributes with appropriate
data types and 1 mark for correctly defining the constraints. No marks awarded if
some or all attributes, constraints are not correctly defined or if data type assigned
to an attribute is not appropriate e.g. define a date as String. The list on pages 2 and
3 of this briefs presents the attributes to be defined as a minimum]
Define all domain class relationships as shown in class diagram. You can define additional
attributes so that the domain class relationships become more appropriate [9 marks] [No
marks are awarded if application is not running]
Demonstrate the basic scaffold workflow by creating all scaffolds (Controller and View)
for relevant classes [Good GIT commit point] [7 marks]
Git commits carried out and transferred to GitHub account. [2 marks] o Additional 1
mark awarded for correctly using branches
[Only 1 mark awarded if at least three quarters of prescribed commits are done, 2
marks if more than three quarters of all prescribed commits are carried out. There
are about 14 prescribed commits in total. This includes commits from the Basic,
Intermediate, Advanced and Advanced++ tasks. No marks will be awarded for this
task if the credentials for your GitHub account are not supplied or incorrect.]
[3 marks]
[No marks are awarded for just creating the database. All databases have to be
created and then configured correctly. 1 mark awarded for creating and correctly
configuring database. No marks are awarded if application is not running]
Records/data are added to database to demonstrate that all relationships have been
defined correctly. Instances should be represented by identifiable information e.g.
patientName, doctorName, etc and not by default text e.g. com.enrol.Patient: 1. [This is
a good GIT commit point] [4 marks].
Change the look and feel of home page so that it represents a page for a company that
runs surgeries. Links to controllers are to be removed from home page ONLY if you are
going to implement the login/logout facility whose tasks are described in the next
section. If you are not planning to implement the login/logout facility or were not
successful then you are not to remove the links to controllers from application home
page but would re-organise them on the application home page. You are to replace the
text links with buttons which will be accompanied by some descriptive text. [This is a
good GIT commit point] - [4 marks]
[Marks will be awarded for removing links to controllers from home page and for
adding appropriate content 2 marks) and styling of page 2 marks) if you are going to
implement login/logout facility.
If you are not going to implement login/logout facility 1 mark will be awarded for
styling page, 1 mark for reorganising links and adding own content. Only 2 marks
overall if page/s have same style as the ones created in class. No marks are awarded
if application is not running]
o Add/Create/Register Patients,
Doctors, Nurses, Receptionists o
Assign Nurses to Doctors
o Assign Patients to Doctors [Good GIT Commit Point] [4 marks]
[Marks awarded only for a fully functional login/logout facility including page to
which Receptionists are directed to when they are successfully logged in. No marks
are awarded if application is not running or if username and password (for
Receptionist) are not supplied to test the login]
o Create Prescriptions o
Display/List Prescriptions o
Display/List Patients
o Display/List Appointments [Good GIT Commit Point] [4 marks]
[Marks awarded only for a fully functional login/logout facility including page to
which Doctors are directed to when they are successfully logged in. No marks are
awarded if application is not running or if email address and password (for Doctor)
are not supplied to test the login]
Additional 2 marks are awarded for setting up the login/logout for the Receptionists and
the one for Doctors that are independent of each other. When a Receptionist logs in
successfully they should not see the login or logout links for Doctors. The same applies to
Doctors, when they successfully login they should not see the login or logout link for
Receptionists
Create a fully functional search facility to enable Receptionists to search for patients by
their full name, patient ID and/or by residence and then display matching records. Add a
link to the search form on the page Receptionists are directed to when they login [This is
a good GIT commit point] [5 marks]
[Marks only awarded for a fully functional search facility as described above. After a
search the results should be displayed on the appropriately styled results page. 2
marks will be lost if there are not at least 5 records to test the search facility. No
marks are awarded if application is not running]
Create a fully functional search facility to enable Doctors to search for prescriptions by
medicine, days of supply, and total cost required and then display matching records. Add
a link to the search form on the page Doctors are directed to when they login. [This is a
good GIT commit point] [5 marks]
[Marks only awarded for a fully functional search facility as described above. After a
search the results should be displayed on the appropriately styled results page. 2
marks will be lost if there are not at least 5 records to test the search facility. No
marks are awarded if application is not running]
Implement a technology or technique which was never taught in class. This technology
or technique should provide a functionality to the application [This is a good GIT commit
point] [5 marks] [No marks are awarded if application is not running]
1. User Guide
You are required to provide detailed instructions on how to and where to find your
Grails application. There is no need to include screenshots in the instructions, just
the names of directories/folders and login credentials. If you have more than one
VM in your work area you will need to provide the name of folder where the VM files
are located. You are also to include the username and password required to login to
the VM.
If you have successfully implemented the login/logout provide username and
password, you set up for one of the Receptionists and Doctors. Add to the User
Guide credentials (username and password) to access your GitHub, Database Server
(for both root and the user) accounts. If you have not installed
phpMyAdmin provide password for the user account. Make sure these details are
available and correct as the Tutor will use them to access your GitHub account, the
application files and test the application. Failure by the marker to find the expected
evidence/files will be taken as non-submission and a mark of 0 will be awarded for
the affected tasks
2. Reflective Report
As part of the assignment you have been asked to apply knowledge and skills other
than acquired in class particularly to do the following:
create own custom tag which is not similar in any way to the one created in class
implement a technology and/or technique which you did not learn in class
Explain how you executed the above tasks and how you resolved any problems you
might have encountered.
If you were not able carry out the above tasks explain how you would have
implemented them in your application. You can use screenshots if necessary
Conclude with a brief self-review of your performance on the whole project, how
well you expected to perform against the final outcome
[5 marks]
END