Information Systems homework help

Information Systems homework help. ITECH2000 Mobile Development Fundamentals
ITECH2000 – Assignment 1 (Semester 20/07) Page 1 of 8
Assignment 1: AppInventor App
You will implement in AppInventor a multi-screen app, based on a given project specification. This app will use a
range of components and persist data between executions. You will also submit a brief report containing
pseudocode and describing how your solution utilises various concepts we have learned in class.
Timelines and Expectations
Percentage Value of Task: 25% (of final semester mark for this course)
Final Due Date: 11:59pm, Sunday 10th May, 2020 (end of Week 8)
EXTENDED: 11.59pm, Sunday 17th May, 2020 (penalty each day after this date)
Cut-off Date: 11.59pm, Sunday 24th May, 2020 (no submissions accepted after this date).
Minimum time expectation: 10 hours
Maximum time expectation: 30 hours – Most students do not require 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 weeks 1 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
anything that you plan to submit (such as screenshots of code you might want to submit).
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. Lecturers are obligated to report any suspicions to the plagiarism
officer. 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.
ITECH2000 – Assignment 1 (Semester 20/07) Page 2 of 8
1. Application Description
Your assignment is to develop an Android application, using MIT AppInventor, which will store diary entries. The
user should be able to write new diary entries and also view previous entries. It should be possible for users to
delete a diary entry. Users should also have the option to protect diary entries with a password, such that a
protected entry cannot be viewed or deleted unless the correct password is entered.
The application should contain a number of screens, which are described in the following sections. Note: Your
app does not need to look identical to the provided screenshots. As long as you fulfil the requirements in a logical
way, you have free reign to design your interfaces as you like.
Screen 1: Menu
When the application is first opened, a menu should be displayed with links to the New Diary Entry, View
Previous Diary Entries, and Edit Profile screens. For example, the image below displays a simple menu screen.
Clicking on each entry in the menu should open the appropriate screen.
Screen 2: New Diary Entry
When the user opens the New Diary Entry screen, it will display something different depending on whether the
user has completed their profile.
• If the user has not yet completed their profile, a message should be displayed informing the user that they
must complete their profile first, and a button should be available that takes the user directly to the Edit
Profile screen when clicked.
• If the user has completed their profile, this screen should provide a space for the user to write their diary
entry and a way to select whether they want this entry to be password-protected.
There should be a button for the user to save the diary entry, and a button to cancel and go back to the menu
screen. When the save diary entry button is clicked, the diary entry should be saved in a persistent manner and a
message should appear to let the user know it was saved successfully. The app should then navigate
automatically back to the menu screen. Note: You will need to make use of both TinyDB and File in this app, but
the actual diary entry text should be stored in a File.
When the cancel button is clicked, the user should be navigated back to the menu screen. No data that has been
entered on this screen should be saved.
ITECH2000 – Assignment 1 (Semester 20/07) Page 3 of 8
Screen 3: View Previous Diary Entries
This screen should display a list of all previous diary entries that the user has saved. Each entry should be
displayed using both the date and time it was created, and the user’s name at the time of writing the diary entry.
As described in the Edit Profile screen section, the user has the option to change their name, or alias, at any time,
so your app needs to keep track of the current alias when persisting a diary entry so that it can be displayed
correctly later.
When a diary entry is clicked on, the View Diary Entry screen should open and display the complete details of this
diary entry. To achieve this, some data must be passed from this screen to the View Diary Entry screen.
Note: Keep in mind that AppInventor uses a single TinyDB instance for all apps. If you design your app correctly,
this screen should only display diary entries that were created using your app. You may lose marks if your app
lists irrelevant entries.
ITECH2000 – Assignment 1 (Semester 20/07) Page 4 of 8
Screen 4: View Diary Entry
This screen should display the details of an individual diary entry after it has been selected on the View Previous
Diary Entries screen, including the author’s name (at the time of writing the diary entry), the date and time it was
saved, and the text that was written in the diary entry.
However, if the selected diary entry is password protected, the user should first be prompted to enter the
password (as set on the Edit Profile screen) before the diary entry text can be viewed. If the password is entered
correctly, the text should be loaded and displayed. If the password is entered incorrectly, the app should continue
to prompt the user for the correct password until the correct password is entered, or the user decides to cancel
and exit the screen.
Once a diary entry has been successfully loaded (with or without a password), there should also be an option to
delete this diary entry. Deleting the diary entry should remove it entirely from any persistent storage (e.g. TinyDB
and/or File), so that it no longer appears in the View Previous Entries screen.
Screen 5: Edit Profile
This screen should allow the user to update both their name and their password.
The first time the app is used, there will be no name or password saved, so the user should simply be able to set
a name and password and save it in persistent storage.
On subsequent visits to this page, the app should load in the existing profile details so they can be edited. When
the user attempts to save any changes, they should be prompted to enter their current password. If the current
password is entered correctly, then the name and/or new password should be updated in persistent storage. This
ensures that another user cannot access the password-protected diary entries by simply changing the password.
Note: The password that is used to access the password-protected diary entries should always be the current
password that has been set on this screen, whereas the author listed against each diary entry should be whatever
name was saved on this screen at the time the diary entry was created.
ITECH2000 – Assignment 1 (Semester 20/07) Page 5 of 8
General Requirements for Coding
While your app should meet the functionality described above, you need to ensure that you demonstrate all of the
concepts we have covered in ITECH2000 so far. To achieve full marks you will need to ensure that you have
correctly 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, VerticalArrangement or TableArrangement (or all of them)
• a TinyDB component to gain access to persistent data stored in a database
• the File component for persistent storage
• the list construct
• a repetition construct
• a decision construct
• a boolean (AND or OR) expression.
• Procedures that you have defined using the ‘to do’ or ‘to do … result’ blocks.
Please read through all of the requirements before you commence work on the app, so you get a full
sense of what is required to be done. It is recommended that you first model any events using
pseudocode before commencing programming.
ITECH2000 – Assignment 1 (Semester 20/07) Page 6 of 8
2. Brief Report Requirements
As well as completing the program described above in AppInventor, you are also required to submit a brief report
that includes the following:
• A title page that includes your name and student ID number.
• Pseudocode describing the behaviour of three (3) events that your app will respond to. Ensure that you
clearly label these events so that it is clear what aspect you are modelling.
• For each of the design elements/blocks listed in the previous section (General Requirements for Coding),
you should describe in 2-3 sentences how you used this component in your solution and justify why. If
you have used a component multiple times, please describe one example.
Submission
You must export your AppInventor project for submission. To do this, go to the “Projects” menu, and select
“Export selected project (.aia) to my computer”. Name your .aia file “A2_YourName_YourStudentID.aia”.
You should also save your brief report as a PDF, named “A2_YourName_YourStudentID.pdf”.
Upload these files to Moodle through the assignment link labelled “Submit Assignment 1”. This link will only
become available after you have completed the ‘Declaration of Originality’ form for the assignment, which
requires you to accept the Student’s Statement. It is a legal declaration that the work was done by you, without
any part of it being done by someone else.
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.
You may be required to attend an interview with the marker to answer questions about your work before
they will mark your submission.
ITECH2000 – Assignment 1 (Semester 20/07) Page 7 of 8
Marking Criteria
Student Name: _________________________ Student ID: ________________________
Requirement Marks Awarded
Screen 1: Menu
A menu screen is the first screen included in the application
[1 mark for including a menu screen as the first screen in the application]
All three options are included and clicking on them opens the appropriate screen
[0.5 marks each for inclusion; 0.5 marks each for opening the correct screen on click]
1
3
Screen 2 – New Diary Entry
Input/output elements included on this screen appropriate for requirements
[0.5 marks each for text input, password option, save option, and cancel option]
Persistent storage of all diary entry details when user selects the save option
[2 marks if persisted correctly; 1 mark if attempted but some issues; 0 marks if not attempted]
Diary entry text is stored in a File
[1 mark if diary text is stored using File; 0 marks if other method used or if not attempted]
Cancel button behaves correctly by navigating back to home screen
[1 mark if this button works as expected; 0 marks if it doesn’t]
Correct behaviour if the user has not yet completed their profile
[2 marks if behaviour is correct; 1 mark if attempted but some issues; 0 marks if not attempted]
2
2
1
1
2
Screen 3 – View Previous Diary Entries
Input/output elements included on this screen appropriate for requirements
[1 mark for displaying a list of previous diary entries using an appropriate component]
Previous diary entries loaded from persistent storage
[2 marks if loaded correctly; 1 mark if attempted but some issues; 0 marks if not attempted]
Previous diary entries displayed using the correct metadata, e.g. date/time/author
[2 marks for including date/time/author; 1 mark for using only one; 0 marks if not displayed]
List only displays diary entries created by this app
[1 mark if only relevant entries are displayed; 0 marks if other items are listed]
Clicking on a diary entry opens the View Diary Entry screen, passing relevant data
between screens
[2 marks data passed to screen; 1 mark screen opens but no data passed; 0 marks not attempted]
1
2
2
1
2
Screen 4 – View Diary Entry
Data from previous screen is accessed when this screen first loads
[1 mark for correctly accessing the data sent from the previous screen]
The diary entry is loaded from persistent storage
[2 marks for loading diary entry; 1 mark if attempted but some issues; 0 marks if not attempted]
Diary entry information is displayed on the screen
[0.5 marks each for date/time/author of diary entry; 1 mark for displaying diary entry text]
Password protection implemented
[3 marks if working correctly; 1.5 marks if attempted but some issues; 0 marks if not attempted]
Delete button implemented and deletes entry from persistent storage
[2 marks if working correctly; 1 mark if attempted but some issues; 0 marks if not attempted]
1
2
2
3
2
Screen 5 – Edit Profile
Input/output elements included on this screen appropriate for requirements
[0.5 marks each for edit name, edit password, save function, and cancel function]
Existing profile data (if any) is loaded and displayed when this screen is accessed
[2 marks if data loaded; 1 mark if attempted but some issues; 0 marks if not attempted at all]
Profile data is persisted correctly when the user selects the save option
[2 marks if persisted; 1 mark if attempted but some issues; 0 marks if not attempted at all]
2
2
2
ITECH2000 – Assignment 1 (Semester 20/07) Page 8 of 8
Requirement Marks Awarded
Password before updating profile functionality is implemented correctly
[2 marks if works correctly; 1 marks if attempted but some issues; 0 marks if not attempted]
2
General Programming Requirements
[For each of the following criteria – full marks if included and no issues; half marks if included but
some issues; no marks if not demonstrated]
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
1
1
1
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 formed procedures appropriately and in appropriate circumstances
Has used the TinyDB component appropriately
Has used the File component appropriately
Has used the Clock component and “time instant” values appropriately
1
1
1
1
1
1
1
1
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.
1
Validation is implemented correctly and thoroughly throughout the app. 2
Brief Report
Three (3) events are adequately modelled using pseudocode
[0.5 marks each for inclusion; subtract 0.25 marks for incomplete or difficult to follow pseudocode]
Examples and explanations provided for each of the 15 elements/components listed in
the General Requirements for Coding section
[0.5 marks each for inclusion of all 15 elements; subtract 0.25 marks for incomplete or poor
explanation; 0 marks for any that are not included at all]
1.5
7.5
TOTAL: 60
PERCENT: 25

Information Systems homework help