ITECH2000 Mobile Development Fundamentals

ITECH2000 Mobile Development Fundamentals
ITECH2000 – Assignment 2 (2018 at Shaoguan University) Page 1 of 6
Supplementary Assignment:
AppInventor App
Overview
You will implement in AppInventor, a multi-screen app which uses a range of components and
persists data between executions, for a hotel company.
Timelines and Expectations
You have 3 weeks to complete this assignment. If you pass the assignment, you will pass the
semester.
Final Due Date: 11:59pm, Wednesday 9th December, 2020
Minimum time expectation: 5 hours
Maximum time expectation: 30 hours – but most students would not need this much time.
Learning Outcomes Assessed
This assignment has been designed to enable you to demonstrate your learning in regards to
the following outcomes of the course:
K1. Understand constructs typical of many programming languages such as: variables,
expressions, assignment, sequence, selection, iteration, procedures, parameters,
return values.
A1. Design, develop, test and debug mobile apps from a given textual program
specification.
S1. Analyse the input, processing and output needs of small programming problems.
S2. Design code sequences to realise algorithms in a programming language.
S3. Design basic user interfaces and develop storyboards to convey designed
interaction sequences.
In particular, the assignment has been designed to help give you further experience in using
AppInventor, and to assess your attainment of a range of the learning objectives from modules
2 through to 6 of the semester.
Getting Assistance and Clarification:
If any part of the task is unclear to you, or you are not quite sure how to do some aspect of the
task, you should either contact your lecturer directly (via email, or in person while they are in
class), or else post a question to the Discussion Forum on Moodle. However, any questions
posted to the forum on Moodle should not include any actual things that you plan to submit
(such as screenshots of code you might want to submit), but should instead be asked in a
more general way, e.g. asking about a technique, or a similar situation to what you need for
the assignment.
ITECH2000 – Supplementary Assignment (2020) Page 2 of 6
Assessment Details
You need to do create a functioning app that does the described functionality (listed later) for the
following scenario:
Scenario:
Your app will be used by the staff who work for a hotel.
The hotel has a range of rooms available for different days in the next week. Customers can book a
room for one night. If the day of the booking is in the future, the customer can cancel their booking.
(They cannot cancel booking on the day of the stay).
They want you to make an app that can be used to store the booking information, and report about the
bookings.
The “Requirements” listed below will help to explain what functionality the app needs to achieve. If you
feel you cannot do a particular one, then please try the other ones and then come back to it.
Remember that you can ask the lecturer questions by email to clarify what is meant by any of the
following requirements.
To get full marks you will need to ensure that you have made use of each of the following components
or constructs somewhere in your app:
• a Notifier
• a Spinner or ListView (or both)
• a CheckBox
• Labels
• TextBoxes
• Buttons
• A Clock and instants
• HorizontalArrangement or TableArrangement (or both)
• a TinyDB component to gain access to persistent data stored in a database.
• the list construct
• a repetition construct
• a decision construct
• a boolean (AND or OR) expression.
• Procedures you have defined using the ‘to do’ or ‘to do … result’ blocks.
Please read through all of the requirements before you commence the work, so you get a full
sense of what is required to be done.
ITECH2000 – Supplementary Assignment (2020) Page 3 of 6
Requirements to code:
Please make sure that your app meets as many of the following requirements as possible:
Requirement 1: There must be a welcome screen with buttons for the different functions.
This screen should be the first one presented to the user when they start your app – thus it needs to
be done on “Screen1”. The screen needs to have buttons which go to the screens which provide the
various functions that are offered by the app.
Requirement 2: Obtain information about a customer
It must be possible to enter the details of a new customer into the app. The customer might make
several bookings for different rooms (on different nights), or even just one room for one night.
However, before they can make a room booking, the customer’s personal details need to be input into
the app.
The following details need to be input:
• The name of the customer
• The address of the customer
• A 4 digit customer code that does not start with zeros (e.g. 1000 is the smallest acceptable
value, and 9999 is the largest acceptable value).
• Whether the customer wants a no-smoking room (yes/no).
There must be a specific screen where the user will enter this information. After validating the input as
being proper, the screen should store the customer information into a TinyDB, using the customer’s
unique code combined with a tag-prefix that is common for all customers.
Requirement 3: Let customers book rooms
For this assignment, let us assume that there are only 5 rooms in the hotel – this will make it easier for
you to think about. These are the 5 rooms:
• Room 1: 1 single bed, no smoking
• Room 2: 1 single bed, smoking allowed
• Room 3: 1 double bed, no smoking
• Room 4: 1 double bed, smoking allowed
• Room 5: 2 single beds, no smoking
When the staff user chooses to book a customer, the app should:
• ask the user to choose a customer (the customers must already be inside the app – see
requirement 2).
• ask which room they want (see above – 5 types)
• ask the date when they want the room (they get the room after dinner, until next morning)
You need to make sure that the room is not already booked by someone else for the same night. (But
customer is allowed to book 2 or more rooms on same night, because maybe they have children
needing other rooms).
When all the details are selected then the app needs to store the booking – so that we know from now
onwards, that the customer has booked that room for that date.
You should not be entering the customer’s personal details here. Requirement 2 is where the
customer’s personal details are entered. So you must make sure that the customer who wants to
make a booking has already been entered into the app before we come here to make the booking.
ITECH2000 – Supplementary Assignment (2020) Page 4 of 6
If the room is already booked at the desired date, tell the user that the room is not available.
Assume that there are only 5 days including “today”, which the app allows you to make bookings for. If
they try to choose a day that is more than 4 days after today, then it should not be allowed.
Requirement 4: Allow customers to cancel a booking
A customer is allowed to cancel their booking. You need to provide a way in the app, for removing the
customer’s booking – the room will become available to any customer (including the same customer if
they choose again to book that room in the future).
But: The booking can only be cancelled if the date is later that “today” (“today” means the day when
the user clicks the button to try to cancel the booking).
You need to think about how to specify the exact booking that is to be cancelled. This needs you to do
some problem-solving and make decisions before coding.
Requirement 5: Show summary information about rooms for a chosen day
There must be a screen which will display summary information about the bookings for a given day.
The user should specify the day and click a button to be told the following things:
• How many rooms are booked for that night, and
• The number of customers who want a no-smoking room.
Requirement 6: Information about customers details, must persist between separate uses of
the app
The details about customers from requirement 2, should only ever need to be entered once. If I enter
Mickey Mouse’s details in the morning, close the app, and then in the afternoon restart the app,
Mickey Mouse’s details should still be known to the app – we should still be able to book a room for
Mickey Mouse.
You should use TinyDB to achieve this. Do not use a File.
Requirement 7: Information about bookings must persist between separate uses of the app
The details of all the bookings of seats, made during requirement 3 (and possibly changed by
requirement 4), also need to persist. For example, if I book Mickey Mouse into room 1 for tonight, and
Donald Duck in room 3 for tomorrow night, and then close the app, and later today restart the app, the
app should still believe that those bookings are true, and that the vacant rooms are available for new
bookings.
You can use any type of persistence (File or Tiny DB) to achieve this, but it must be stored separately
from the customer’s personal details.
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is one’s
own without properly acknowledging that person. You must not allow other students to copy your work
and must take care to safeguard against this happening. More information about the plagiarism policy
and procedure for the university can be found online at:
http://federation.edu.au/students/learning-and-study/online-help-with/plagiarism.
Submission
You must “export” your AppInventor project in order to submit it. To do this, go to “Projects”
menu, and select “Export selected project (.aia) to my computer”.
ITECH2000 – Supplementary Assignment (2020) Page 5 of 6
Send the completed assignment to the lecturer’s email.
Feedback
You can expect to receive your final mark and feedback comments within 2 weeks of the due date, or
the date which you submitted your work, whichever is later.
Marking Criteria
You will be assessed according to the following scheme:

Requirement 1
Requirement 1 has been completed – it is included in the submitted app
Requirement 1 has been achieved in the most appropriate way.
1 mark
1 mark
Requirement 2
Requirement 2 has been completed, and behaves correctly
Requirement 2 has been achieved in the most appropriate way
1 mark
1 mark
Requirement 3
Requirement 3 has been completed and behaves correctly for correct uses
Requirement 3 behaves correctly for attempted incorrect uses
Requirement 3 has been achieved in the most appropriate way
1 mark
1 mark
2 marks
Requirement 4
Requirement 4 has been completed and behaves correctly
Requirement 4 has been achieved in the most appropriate way
1 mark
2 marks
Requirement 5
Requirement 5 has been completed and behaves correctly
Requirement 5 has been achieved in the most appropriate way
1 mark
2 mark
Requirement 6
Requirement 6 has been completed and behaves correctly
Requirement 6 has been achieved in the most appropriate way
1 mark
2 mark
Requirement 7
Requirement 7 has been completed and behaves correctly
Requirement 7 has been achieved in the most appropriate way
1 mark
2 mark

ITECH2000 – Supplementary Assignment (2020) Page 6 of 6

Appropriate Components
Student has selected appropriate components for input and for output of information across
all screens.
Has used TextBoxes, CheckBoxes, Labels, and Buttons appropriately (including using their
action blocks and event blocks) appropriately
Has used a Spinner or ListView (including their action blocks and event blocks)
appropriately
Has used the screen-changing mechanisms correctly and appropriately
Any other visual components used have not been used in an inappropriate manner
1.5 marks
1 marks
1 marks
1 marks
0.5 marks
Programming Constructs
Has used repetition construct to repeat code sequences appropriately and in appropriate
places
Has used decision constructs appropriately / in appropriate places
Has formed appropriate boolean and relational expressions
Has used the list construct for appropriate purposes and used its action blocks in an
appropriate manner to manipulate/use lists.
Has used the TinyDB component appropriately
Has used the Clock component and “time instant” values appropriately
2 marks
2 marks
2 marks
2 marks
2 marks
1 mark
Names of variables, components, procedures, etc.
The names used for variables, components, procedures and their argument slots, are the
appropriate, and are chosen to clearly communicate their purpose in the code.
2 marks
Overall ability to construct code sequences, in response to appropriate events, to achieve
problem solving of computer programming tasks
2 marks
TOTAL: 40 marks

You need to achieve 20 of the possible marks to pass this task, which will allow you to pass the semester.

WhatsApp
Hello! Need help with your assignments?

For faster services, inquiry about  new assignments submission or  follow ups on your assignments please text us/call us on +1 (251) 265-5102

🛡️ Worried About Plagiarism? Run a Free Turnitin Check Today!
Get peace of mind with a 100% AI-Free Report and expert editing assistance.

X