$34.99
Testing Environment
● Your app will be tested using the iPhone 11. Before submitting, please ensure your application looks correct on this device.
Submission Checklist
Before you submit:
1. In your Firebase project, add the ______ email address as an Editor. You can find this option under Project Overview > Project Settings > Users & Permissions. See the course dropbox for what to replace ______ with.
a. Submissions that do not include this email as an Editor will automatically be graded 0.
2. Zip your entire project and name the file a4-studentname-studentid.zip
a. Replace studentname and studentid with your name and id
b. No .7zip or .rar files accepted
c. Ensure that your project contains the GoogleInfo.plist associated with your Firebase project.
3. Prepare a screen recording demonstrating the functionality you implemented. In your screen recording, you should provide a verbal description of what you are doing on the screen (as you do it).
In your screen recording, you should show your app running side by side with your Firestore console.
You should demo how your application is affecting the Firestore database.
In the assignment dropbox:
2. Submit your zip file containing the project
3. In the submission comments, provide:
a. The email address associated with your Firebase project. This will be used to locate your database.
b. The OneDrive link containing your screen recording.
For your submission to be graded, you must provide all the above information.
● This is an individual assessment.
● Permitted activities: Usage of Internet to search for syntax only; usage of course materials ● Not permitted:
○ Communication with others (both inside and outside the class)
○ Discussion of solution or approaches with others; sharing/using a “reference” from someone
○ Searching the internet for full or partial solutions
○ Sharing of resources, including links, computers, accounts
Grading Criteria
● Submissions are required to use the correct coding conventions used in class, professional organization of the code, alignment, clarity of names will all be part of the evaluation.
● The user interface of your application must be reasonably polished, easy to understand, and readable. Use reasonably pleasant colors and typography.
Problem Description
You have been hired to create a two screen IOS application that lets users discover tourist activities (things to do) in a given city or area. Users should also be able to build an itinerary containing a list of the tourist activities they want to visit.
Examples of tourist activities can be found on these webpages:
● AirBnb Experiences: https://www.airbnb.ca/s/experiences/
● Lonely Planet Experiences: https://www.lonelyplanet.com/experiences
Screen 1: List of Tourist Activities
1. Screen 1 should display a list of tourist activities in a tableview.
b. Your app should show a minimum of 5 tourist activities
c. For each activity, display the following information:
i. name of activity
ii. price per person
iii. star rating out of 5 (example 4 out of 5 stars). You are not required to use a star rating bar UI control.
iv. photo of the activity. HINT: Photos can be included in the Assets.xcassets folder, and the file name saved to Firestore.
2. The list of activities must be loaded from Firestore.
3. The user can add an activity from the tableview to their itinerary (the itinerary is a list of tourist activities that the user plans on participating in).
4. The user adds an item to the itinerary by selecting an item in the table view, then tapping an Add to Itinerary button. This Add to Itinerary button can be placed somewhere on the screen or in a Bar Button Item.
5. The user’s itinerary must be persisted to Firestore.
Screen 2: Itinerary DetailsScreen
1. This screen displays the user’s itinerary in a tableview.
2. The user should have the option of:
● Removing a single item from the list.
● Removing all items from the list
3. The itinerary list must be loaded from Firestore. Any changes made to the list must be persisted to Firestore.
Technical Requirements
1. Screen 1 and Screen 2 must be presented in a Tab Bar Controller.
2. Learners should make use of tableview features, such as swipe to delete.