-
Peter J. Keleher authoredPeter J. Keleher authored
Semester Project
Due: May 3, 2020, 11:59:59 pm, v1.02
NOT REQUIRED if you do Assignments 4, 5
Requirements
The Semester Project is intended to be the capstone to this course. Your team should use the basics we learned in the first half of the course as a springboard to a project that contains elements we have not discussed in class, or at least not in any detail. The requirements are as follows:
- build an app using novel technologies or ideas, where novel means
something that we have not discussed in detail in the class. Note
that in class
we will be doing a small amount of augmented reality, ofmachine learning, and networking with Firebase. These are still fine for the project. - write a five-ten page report describing the evolution of your ideas, the process you went through to end up at the final app, and of course the app project itself.
- A five-minute screen-capture video (with audio desribing the app's features). I will choose among these for the last full week of classes. Each such team gets a 10% bonus.
- Turn in the app. It must compile and work as in the video/presentation.
Group Assignment
This is totally up to you:
- You can form your own group if you know others that you want to work with.
- You can advertise for teammates for teammates on piazza at @6.
Groups sizes are three or fewer students. You may work alone, but I will require you to justify why you can now work in a group in an email directly to me. If I disagree, you will be placed in a randomly-created group.
I expect groups with either two or three members to produce projects of roughly equivalent sophistication. Individuals would be expected to do somewhat less.
Group Communication and Workspace
You and your teammates can communicate any way you wish. Elms (build your team under the "Semester Project" tab, not "Student Groups") has a mechanism to build group collaboration spaces that allow group members to message and share files. However, I expect email and messaging to be more commonly used.
Each group will be assigned a new gitlab repository for development once groups have been defined.
Topics
Your app topic should satisfy the following constraints:
- be a significant departure from what we have explicitly covered in class.
- be an app is more suited to a mobile device that somehow takes advantage of the abilities or characteristics inherent to mobile phones circa 2020, i.e. mobile, (almost) always-connected, good graphics, useful hardware (camera, audio and video recording, gyroscope, GPS antenna, etc.).
Your team must write up and propose a topic (see below for specifics). I may disallow it if I consider it not innovative/novel enough, or not sufficient for a month-long project with multiple team members.
You will generally be expected to use techniques and/or APIs that we have not discussed at length in class. The ARKit and machine learning libraries are expansive enough that I encourage you to build on what we discuss in class, if we get there. FireBase may or may be considered novel, depending on how you are using it.
Artifacts to be turned in
-
Due 4/7: 1-2-page PDF document with/
- Project Name
- Group Name
- Group Members (names)
- Minimal product goals (1 paragraph)
- Stretch goals (1 paragraph)
- Projected timeline, w/ milestones and assignment of work to group members.
- Sample here
- Weekly updates of current progress will be submitted each Sunday night starting by midnight 4/12, possibly via Google Forms. Exact format of this will be defined once we find out how many groups we have.
- Due 5/10: Final project, including video, due.
Project Ideas
These are ideas, you can either choose one of them to build on, or define your own. However, you need explicit permission for a proposed app from Dr. Keleher before proceeding.
- Asteroids-equivalent shooter game, including:
- spritekit,
- sound,
- artwork.
- Augmented Reality
- Pokeman Go-lite
- Grocery store ingredients scanner (for those with sensitivities to specific ingredients
- AVController for recording audios of people’s voices and plays with them adding different effects
- Bike route planner / tracker
- track route with line on map
- export to a .fit
- upload to strava
- plan from current location (this would require google map sdk)
- Cryptocurrency/Stock price tracker
- Get price data as a stream (NSURLSession)
- Add streams to current app instance
- Display graphs, compute price indicators based on data
- Healthkit data mining and presentation.
- Local events: Swipe to find events, and event hosters can swipe to match with who they want to invite.
- GPS to find events based on location
- Basic UI with swipe gestures, notifications, etc.
- Location based messaging app. All users would be anonymous, and can choose to see and reply to posts made within a radius of their choosing.
- Machine learning:
- Models at https://developer.apple.com/machine-learning/models/, https://github.com/SwiftBrain/awesome-CoreML-models Build an app to recognize specific types of objects and pull up online information and links for those recognized objects.
- Proximity-based swapping, messaging.
- Use app-generated QR codes the camera to get an anonymous handle. Even better if the messaging is secure.
- Weasley magic clock (inspired by Harry Potter)
- clock laid out with pre-specified locations (home, work, gym..)
- arm for each family member / friend, pointing out where they are
- intelligent interpolation for intermediate states
- Something else.
Grading
You grade for this project will be composed of:
- 25% novelty/innovation of idea
- 25% degree of difficulty
- 25% overall execution of product
- 25% overall polish, look and feel
These are rough overall guides. If you propose a beautiful new idea for an app but do nothing, you still get a zero. If your propose something beautiful and ambitious but run out of time you might still get a very high score.
The weekly checkpoints are not graded, but they are required, and will influence the final grade, especially if the project falls short in the end.
Submitting
More details of the group repositories and submissions are forthcoming.