Complete the (Project 0 ) quiz on Collab. The project is due at the end of the semester.
Answer the following question in your group.
1. A non-technical description of your technology (3 to 5 sentences):
2. What problem are you trying to solve? How do you know it is a problem?
3. Describe the underlying technology:
4. How will your innovation solve the problem?
5. Who is (are) your target customers?
6. What is your product/solution’s competitive advantage?
Now is the time to let your creativity shine! Using what you have learned during the first two projects, create a mobile app of your own purpose and design!
The domain (i.e. what the app will do) is totally up to you. We find students enjoy projects more when they are invested in what the project actually does / means for them. So, here’s your opportunity to build the app of your dreams!… within reason, of course… you only have a few weeks.
And you can’t do a Bucket List app or anything that’s basically just a list with an info page for each item. You HAVE to branch out and do something substantively different. Not that you can’t have features in this space, but there has to be enough to establish that it is a wholly different project from the mini-app assignments.
Need ideas? Come talk to Prof. Graham during office hours! We can definitely think of something interesting!
Features and Rubric
For the final project, there is a set of required features and points that must be completed by all projects. After that, you may choose any combination of optional features up to the max.
- No extra credit is given past 100 pts.
- Required Features = 40 pts / Optional Features = 60 pts.
- You cannot do the same optional feature twice for more points.
- Students declare in their docs what they want to be considered for the optional features.
- We will not grade the “best” set of optional features (i.e. people can’t “shotgun” for more points).
- If your feature selection point total is between 60 and 70 points, and removing any features will drop you below 60 points, we will scale your points accordingly during grading (i.e. 65/65 => 60 pts, 63/65 => 58 pts, etc.).
- If your feature selection point total is over 70, you must select features that will not be graded.
15 pts – At least 3 “screens”/”major features”
– We expect your app to be of significant enough complexity that they are not “one screen” apps. “Trivial” screens will not be counted toward this (i.e. splash screen, etc.). (5 per feature – 5: Good and well-thought-out, 3: Reasonable but lacking, 1: Poor)
5 pts – App can rotate / can be interrupted and works “correctly” given the domain
– We expect your app to handle rotation and interruption as a full, professional release would. Games and other required locked-perspective apps do not have to do rotation, but they have to make up the points in the optional features. (5: Works, 3: Mostly works, 0: Doesn’t work)
15 pts – Design and Presentation
– We expect your app to be well-designed and polished. This includes everything from following interface guidelines to good layout to good fonts/colors. (15: Great, 12: Good, 9: Reasonable, 6: Okay, 3: Poor, 0: Unusable)
5 pts – Documentation
– Use the same format as the proposal, with these additional sections added after the wireframe explanation:
- Platform Justification – What are the benefits to the platform you chose?
- Major Features/Screens – Include short descriptions of each (at least 3 of these)
- Optional Features – Include specific directions on how to test/demo each feature and declare the exact set that adds up to ~60 pts
- Testing Methodologies – What did you do to test the app?
- Usage – Include any special info we need to run the app (username/passwords, etc.)
- Lessons Learned – What did you learn about mobile development through this process?
The format can be found here: https://docs.google.com/document/d/1I-4fN3LdXhIPiKXlqZICq3M7NRXnSGpNnB_1u4MpQZk/edit?usp=sharing
NOTE: Any feature you implement that is, in the opinion of the staff, added solely for the purpose of earning points and do not make sense in the context of the app will not receive full points if any.
15 pts – GPS / Location-awareness (includes using Google or Apple Maps)
– Your app uses the location of the user in some meaningful way in the app. A plain Google Map with just your location and no modification will not earn full credit. (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
15 pts – Camera
– Your app uses the camera to take a picture and use it directly in the app. The image is saved somehow, either locally or remotely. (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
10 pts – Device Shake
– Your app responds in an appropriate way to a device shake. “Made up” usages that don’t make sense will not earn many points. (10: Excellent, 8: Good, 6: Reasonable, 4: Has issues, 2: Poor, 0: Does not work)
15 pts – Accelerometer
– Your app responds in an appropriate way to tilt movements. (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
15 pts – Microphone / Audio management
– Your app uses the microphone to record audio and/or has advanced audio playback capability. Simply playing sounds when a button is pressed does not count for this feature. The feature must make sense in the context of the app (i.e. a random music player bolted onto something is not sufficient). (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
20 pts – Build and consume your own web service (including all server-side code)
– Your app uses a web service that you built yourself from the ground up. This service may run PHP, Python, or some other appropriate language and hosted on either the UVA web server or another approved server. (20: Excellent, 16: Good, 12: Reasonable, 8: Has issues, 4: Poor, 0: Does not work)
15 pts – Build and consume your own web service using a third-party platform (i.e Firebase)
– Your app uses a web service that requires some level of serious customization. A good example is Firebase, a mobile-ready cloud-based database you can use for free. A login feature that uses Firebase counts for this rubric item. (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
10 pts – Consume a pre-built web service
– Your app consumes some readily-available data sources, such as weather or stock prices. This feature must make sense in the context of the app (i.e. randomly loading the weather in an app that doesn’t need is not sufficient). (10: Excellent, 8: Good, 6: Reasonable, 4: Has issues, 2: Poor, 0: Does not work)
20 pts – Data storage using Core Data (iOS) or SQLite (Android)
– Your app stores data locally in a relational-type database model. (20: Excellent, 16: Good, 12: Reasonable, 8: Has issues, 4: Poor, 0: Does not work)
15 pts – Data storage using file read/write or data serialization read/write
– Your app stores data by either taking data structures (Array or ArrayList) and serializing them for direct writing to disk or you have your own data format you write to disk. (15: Excellent, 12: Good, 9: Reasonable, 6: Has issues, 3: Poor, 0: Does not work)
10 pts – Data storage using key/value pair storage (SharedPreferences or UserDefaults)
– Your app stores data in the provided key/value storage system of your platform. (10: Excellent, 8: Good, 6: Reasonable, 4: Has issues, 2: Poor, 0: Does not work)
5 pts – Open shared activity/features (i.e. Create an email to send, share with a text message, etc.)
– Your app interacts with another activity or feature of the device by passing data in a reasonable way. (5: Excellent, 4: Good, 3: Reasonable, 2: Has issues, 1: Poor, 0: Does not work)
Complete at least 60 pts for full credit. Points do not have to add up exactly to 60, but no more than 60 points can be earned. Any set of features that goes just over 60 will be scaled.
Optional Feature Clarifications
Sometimes, students will come up with unique situations that will require a decision by course staff. We will document those here for everyone.
- Things cannot “double count” in two categories.
Submit your written document to Collab.