Skip to content

Commit d2f42e5

Browse files
committed
Minor updates to cloud spec and assignment description.
1 parent 40d5192 commit d2f42e5

File tree

2 files changed

+42
-34
lines changed

2 files changed

+42
-34
lines changed

assessment/cloud/main.tex

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,19 @@ \section{Introduction}
4747
For this assignment, you are working for AgeOverlow, a new UQ start-up.
4848
AgeOverlow uses (fictional) machine learning techniques.
4949
The analysis is able to identify percentage certainty of the given assets to their generational cohort,
50-
with an estimated age approximation.
50+
with an age approximation.
5151

5252
\paragraph{Task}
5353
AgeOverlow uses a microservices architecture to implement their analysis platform.
5454
The CTO saw on your resume that you are taking Software Architecture
5555
and has assigned you to design and implement the generation cohort analysis service.
56-
This service must scale to cope with the anticipated large number of tests.
56+
This service must scale to cope with the anticipated large number of requests.
5757

5858
\paragraph{Requirements}
5959
Automated identification of generational cohorts is an important service to ensure legal compliance in Australia.
6060
Manual verification by personale is labour intensive and time consuming.
61-
Automated tests provide faster responses with varying degree of certainty to allow manual review when its required.
62-
This is critical as tens or hundreds of thousands of tests need to be performed daily for users of new services.
61+
Automated analysis provide faster responses with varying degrees of certainty, to allow manual review only when its required.
62+
This is critical as tens or hundreds of thousands of analyses need to be performed daily for users of new services.
6363

6464
AgeOverflow's Generation Cohort Analysis Service (GCAS) needs to be designed to scale to match demand.
6565
Clients will obtain photographic documentation from users.
@@ -88,26 +88,27 @@ \section{Interface}
8888

8989
The interface specification is available to all service owners online:
9090

91-
\url{https://csse6400.uqcloud.net/assessment/ageoverflow}
91+
\url{https://csse6400.uqcloud.net/assessment/cloud/}
9292

9393

9494
\section{Implementation}
9595
The following constraints apply to the implementation of your assignment solution.
9696

9797
\subsection{Analysis Engine}
9898

99-
You have been provided with a command line tool called \texttt{AgeOverflow Engine} that must be used to analyse sample image sets.
99+
You have been provided with a command line tool called \texttt{AgeOverflow-Engine} that must be used to analyse sample image sets.
100100
The tool has varying performance, due to the difficulty of identifying cohorts.
101101
You will have to work around this bottleneck in the design and development of the GCAS.
102102

103-
Your service \textbf{must} utilise the \texttt{engine} command line tool provided for this assignment.
103+
Your service \textbf{must} utilise the provided \texttt{AgeOverflow-Engine} command line tool provided for this assignment.
104104
The compiled binaries are available in the tool's GitHub repository:
105105

106106
\url{https://github.com/CSSE6400/AgeOverflow-Engine}.
107107

108108
\warning{You are \textbf{not} allowed to reimplement or modify this tool.}
109109

110-
The analysis engine requires pre-processing of the images this is done by an upstream service.
110+
The analysis engine requires pre-processing of the images.
111+
This is done by an upstream service.
111112
For testing purposes, you \textbf{must} use the sample images provided in the \link{analysis engine's repository}
112113
{https://github.com/CSSE6400/AgeOverflow-Engine}.
113114
If you try to generate your own images, they are likely to fail analysis or give false results.
@@ -215,18 +216,16 @@ \subsection{Deployed to Cloud \& Scalability Submissions}
215216
\item We will run automated functionality and load-testing on the URL provided in the \texttt{api.txt} file.
216217
\end{enumerate}
217218

218-
\noindent
219-
\textbf{Important Note:} Ensure your service does not exceed the resource limits of AWS Learner Labs.
219+
\warning{Ensure your service does not exceed the resource limits of AWS Learner Labs.
220220
For example, AWS will \textbf{deactivate} your account if more than fifteen EC2 instances are running.
221-
If you use up your allocated budget in the Learner Lab, you will not be able to run any services.
221+
If you use up your allocated budget in the Learner Lab, you will not be able to run any services.}
222222

223223
\subsection{GitHub Repository}\label{sec:github}
224-
You will be provisioned with a private repository on GitHub for this assignment, via GitHub Classroom.
225-
You must click on the link below and associate your GitHub username with your UQ student ID in the Classroom.
226-
227-
%\url{https://classroom.github.com/a/o7GwUHX6}
224+
You will be provisioned with a private repository on GitHub for this assignment, via
225+
\link{GitHub Classroom.}{https://classroom.github.com/a/_o6vwSxE}
226+
You must click on the link below and associate your GitHub username with your UQ student ID in the
227+
\link{Classroom}{https://classroom.github.com/a/_o6vwSxE}.
228228

229-
\noindent
230229
Associating your GitHub username with another student's ID,
231230
or getting someone else to associate their GitHub username with your student ID, is \link{academic misconduct}
232231
{https://my.uq.edu.au/information-and-services/manage-my-program/student-integrity-and-conduct/academic-integrity-and-student-conduct}.
@@ -247,6 +246,7 @@ \subsection{Folder Structure}
247246
.2 README.md.
248247
.2 refs.md.
249248
.2 AI.md.
249+
.2 AI-log.md.
250250
.2 local.sh.
251251
.2 deploy.sh.
252252
.2 ....
@@ -261,7 +261,10 @@ \subsection{Tips}
261261
Your AWS Learner Lab can be reset using the reset button in the toolbar.
262262

263263
\noindent
264-
\includegraphics[width=0.9\textwidth]{images/reset-button.png}
264+
\vspace{-3mm}
265+
\begin{center}
266+
\includegraphics[trim=0 13 0 15,clip,width=0.85\textwidth]{images/reset-button.png}
267+
\end{center}
265268

266269
\noindent
267270
To ensure that you are not accidentally depending on anything specific to your Learner Lab environment,
@@ -281,7 +284,7 @@ \section{Criteria}
281284
corresponding to the three submission stages of the assignment.
282285
Functionality testing is to ensure that your backend software and API
283286
meet the MVP requirements by satisfying the API specification without any excessive load.
284-
Deployment is to ensure that this MVP can then be hosted in the target cloud provider.
287+
Deployment is to ensure that this MVP can then be hosted on the target cloud provider.
285288
Scalability testing is based upon several likely usage scenarios.
286289
The scenarios create different scaling requirements.
287290

@@ -311,7 +314,7 @@ \subsection{Scalable Application}\label{sec:scenarios} % Can it scale!
311314

312315
\paragraph{Curiosity Killed the Server}
313316
A client creates a web portal allowing an auditor to view results for their users.
314-
Tens of thousands of requests will try to access their users results in a short period of time.
317+
Tens of thousands of requests will try to access their users' results in a short period of time.
315318

316319
\paragraph{Compliance Early Stages}
317320
There is a significant increase in the number of analysis request submitted by a few clients.
@@ -335,24 +338,24 @@ \subsection{Scalable Application}\label{sec:scenarios} % Can it scale!
335338
Due to the high volume of analysis requests, there will be a high volume of queries for results.
336339
Any results that are still pending analysis jobs, will be repeated.
337340
Auditors make a moderate number of requests for batches of results from almost all clients.
338-
Clients start querying batches of results for individual patients.
341+
Clients start querying batches of results for individual users.
339342

340343
\paragraph{Compliance Tail}
341344
Almost all clients submit a large volume of analysis requests, but timing may be variable.
342345
Up to 10\% of the requests may be given an urgent status.
343346
Due to the high volume of analysis requests, there will be a high volume of queries for results.
344-
Most results that are still pending analysis jobs, will be repeated.
347+
Most requests for results that are still pending analysis jobs, will be repeated.
345348
Auditors make a moderate number of requests for batches of results from almost all clients.
346-
Clients query batches of results for a moderate number of patients.
349+
Clients query batches of results for a moderate number of users.
347350

348351
\paragraph{Auditing and BAU}
349352
Some clients submit a large volume of analysis requests due to influx of new users or backlog.
350353
Up to 5\% of the requests may be given an urgent status.
351354
Other clients are back to operating as per normal circumstances.
352355
There will be a moderate volume of queries for results.
353-
Most results that are still pending analysis jobs, will be repeated.
354-
Health authorities make a large number of requests for batches of results from almost all clients.
355-
Clients query batches of results for a large number of patients.
356+
Most requests for results that are still pending analysis jobs, will be repeated.
357+
Auditors make a large number of requests for batches of results from almost all clients.
358+
Clients query batches of results for a large number of users.
356359

357360
\paragraph{Research Project}
358361
An internal researcher wants to analyse the results of the analysis against a false positive database provided by the clients.
@@ -365,7 +368,7 @@ \subsection{Marking}
365368
\begin{itemize}[topsep=2pt,partopsep=0pt,itemsep=1pt,parsep=1pt]
366369
\item analysis requests, with their associated images, or
367370
\item analysis results to persistent storage.
368-
\end{itemize}.
371+
\end{itemize}
369372

370373
Your persistence mechanism must be robust, so that it can cope with catastrophic failure of your service.
371374
If all running instances of your services are terminated,
@@ -414,7 +417,7 @@ \section{Academic Integrity}
414417
As this is a higher-level course, you are expected to be familiar with the importance of academic integrity in general,
415418
and the details of UQ's rules.
416419
If you need a reminder, review the \link{Academic Integrity Modules}
417-
{https://web.library.uq.edu.au/library-services/it/learnuq-blackboard-help/academic-integrity-modules}.
420+
{https://web.library.uq.edu.au/study-and-learning-support/coursework/academic-integrity-modules}.
418421
Submissions will be checked to ensure that the work submitted is not plagiarised or of no academic merit.
419422

420423
This is an \textit{individual} assignment.
@@ -434,23 +437,28 @@ \section{Academic Integrity}
434437
All code that you submit \textbf{must} be your own work.
435438
You may \textbf{not} directly copy code that you have found on-line to solve parts of the assignment.
436439
If you find ideas from on-line sources (e.g. Stack Overflow),
437-
you must \link{cite and reference}{https://web.library.uq.edu.au/node/4221/2} these sources.
440+
you must \link{cite and reference}{https://guides.library.uq.edu.au/referencing} these sources.
438441
Use the \link{IEEE referencing style}{https://libraryguides.vu.edu.au/ieeereferencing/gettingstarted}
439442
for citations and references.
440443
Citations must be included in a comment at the location where the idea is used in your code.
441444
All references for citations \textbf{must} be included in a file called \texttt{refs.md}.
442445
This file must be in the root directory of your repository.
443446

444447
\subsection{AI Usage}
445-
You may use generative AI tools (e.g. Copilot) to assist you in writing code to implement your solutions.
446-
You may also use generative AI tools to help you test your implementations.
448+
You are developing a moderately complex software system.
449+
It is expected that you will make use of generative AI tools (e.g. Copilot) to assist you in implementing and testing your solutions.
450+
447451
You \textbf{must} include, in the root directory of your repository,
448452
a file called \texttt{AI.md} that indicates the generative AI tools that you used,
449453
how you used them, and the extent of their use.
450454
(e.g. All code was written by providing Copilot with class descriptions and then revising the generated code.
451455
Classes A and B were produced by the following prompts to ChatGPT
452456
and were then adapted to work in the assignment's context.)
453457

458+
You \textbf{must} also include, in the root directory of your repository,
459+
a file called \texttt{AI-log.md} that contains a log of the history of your interaction with the AI tool(s)
460+
that you used while developing your solution.
461+
454462
Uncited or unreferenced material, or unacknowledged use of generative AI tools,
455463
will be treated as not being your own work.
456464
Significant amounts of cited or acknowledged work from other sources,

assessment/cloud/spec.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ paths:
101101
in: query
102102
description: |
103103
Only return results submitted with this user identifier.
104-
The user identifier is a UUIDv4.
104+
The user identifier is a UUID.
105105
schema:
106106
type: string
107107
example: 'b6a6671c-f04c-47f8-a4d3-11374f0d75cb'
@@ -199,13 +199,13 @@ paths:
199199
parameters:
200200
- name: customer_id
201201
in: path
202-
description: The customer identifier.
202+
description: The customer identifier is a UUIDv4.
203203
required: true
204204
schema:
205205
type: string
206206
- name: request_id
207207
in: path
208-
description: The request identifier.
208+
description: The request identifier is a UUID.
209209
required: true
210210
schema:
211211
type: string
@@ -307,7 +307,7 @@ paths:
307307
type: string
308308
- name: user_id
309309
in: path
310-
description: The user's identifier is a UUIDv4.
310+
description: The user's identifier is a UUID.
311311
required: true
312312
schema:
313313
type: string

0 commit comments

Comments
 (0)