Assignment for Making an app. Specifications are attached below
Microsoft Word - ITECH2000_FedUni-Assignment1-2020_07.docx 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