Term Project Expectations
Table of contents
Your overall task is to create a functioning prototype of an application that links together four cloud services. Note that this is about a half-term project. If you wish to start at the very beginning of the class because you want to use this as an excuse to build something really incredible feel free to chat with me when you have a thought.
Additionally, if you have any desire to work on a research project please also discuss with me early on, as this is both a possibility for extra credit and in-class research experience.
Project teams can be from 1 to 4 people.
Project Responsibilities
- Form a project team (if desired) and decide on your project
- Develop a project proposal
- Provide updates as requested
- Deliver a final presentation and demonstration (last week of class)
Project Limitations
Using a built-in service does not count towards the four required. For instance, Cloud Shell, logging, IAM, etc. are not valid components for the four term project services. You should absolutely use them to support the project (because, of course you need to secure them with IAM, for instance), however they are not the ‘core’ aspects.
Project Examples
Your team has the option to choose whatever project you wish to work on (pending approval and scoping, naturally).
I would anticipate that most people choose to use Google Cloud as you have free credits there, however if you wish to use your free trial of AWS (or any other provider) that is fine too, as long as you still hit the key requirements.
Next are some past examples of term projects (from the graduate class):
- Internet of Things pipeline
- Food logging application
- Image classification chatbot
- Infinite Craft clone
- Load-balanced Minecraft servers
- Collaborative notes application
- Load-balanced restaurant website
- Rick and Morty fan website + chatbot (master’s project)
- Insect identification phone application
- Automated language translation system
- Automated scheduling system for sports
- Quizzing / Flashcards
- Various flavors of chatbot
Project Tips
- Ensure you pick something achievable for your team. For example, if nobody has any Python experience it might not make sense to write your project in Python. Conversely, if there is something you really want to learn then this might be a good opportunity to do that. Just ensure that you scope your project appropriately (e.g., don’t shoot for an MMO if you’ve never written networking code before).
- Pick a project that you’ve always wanted to work on, but never have had time to do that. I view this project as a forced push to do something interesting. I don’t know about you, but I tend to start projects and never finish them unless I have a forced deadline.
- Be proud of what you’ve worked on - ideally this will be part of your project portfolio that you can show off to future employers.
- That being said, given this is on the cloud it will probably be taken offline after class is over, given that you would have to start paying for it otherwise. As such, make backups or, at minimum, take screenshots!
- If you are using starter code, libraries, tutorials, etc., ensure that you cite your source in your project documentation.
- DO NOT simply clone/copy someone else’s project (either from this class or the Internet) and call it your own without significant iteration. For example, you can use Codelabs, Qwiklabs, or any other tutorialas as long as you significantly extend AND cite them.
Team Member Issues
No matter how much you try, there will inevitably be friction on project teams. Interestingly enough - this carries over to industry - learning how to work together and have open discussions is a critical skill that will help you throughout your career. If you are struggling with your team and/or teammates, here are a few tips to help:
- Communicate! Talk to each other! Even if you’re mad, upset, frustrated, express your issues. If you silently fume, shut down, or just stop participating then nothing will be solved.
- If you are in a rough emotional state, save your message/email until you are ready to talk openly. Don’t let anger or frustration force problems to become worse.
- Check out this Team Communication page to get some external suggestions.
- If all else fails, email me or schedule an appointment. I will try to help mediate and work to solve your issues. If you wait until the last possible day in the semester then there is nothing I can do. If you talk to me earlier then I can help.