You’ve come a long way, and it's time to show it. This will be your most advanced project to date, and if you put creativity into it, it'll hopefully be the thing you want to show off most prominently in your portfolio.
You get to call the shots and invent your own idea, choosing frameworks & tools that are appropriate for what you want to build. Pull from everything you've learned so far, and tackle something that'll push you a little outside of your comfort zone.
For this project, you'll be working on your own and using product development strategies learned in unit 3 to come up with a project proposal that will be reviewed with your instructional team; this proposal is done to make sure you are building something that can be accomplish in the limited time we have while making sure it's something that will challenge you.
Your app must:
- Build a complete application
- Have an impressive design and user experience that follows Google's Design Guidelines and can impress future clients and employers
- Use at least one API or SDK
- Implement thoughtful user stories that are significant enough to help you know which features to build and which to scrap
- Be object oriented
- Be robust, and handle cases of failure well (e.g., failed network calls)
- Be available on the Google Play store, so it is publicly available
As always, your app must adhere to General Assembly's student code of conduct guidelines.
If you have questions about whether or not your work adheres to these guidelines, please speak with a member of your instructional team.
Week 10: Product Design and Proposal
- Approval from the instructional team
- A GitHub repository with a
research.md
file with:- A research plan that follows the format in the research plan worksheet
- Summaries of your user research including personas using the format in the personas worksheet and research highlights
- Your user stories – who are your users, what do they want, and why?
- Screenshot(s) of your competitive analysis spreadsheet
- A problem statement that follows the format in the problem statement worksheet
- A list of your prioritized features to match your user user goals
- Screenshots of your wireframes – sketches of major views / interfaces in your application
- Also in the repository should be project plan in a a
proposal.md
file or a presentation deck in Google Slides, Keynote, PowerPoint that answers the following questions:- What are your overall objectives for the project? What problem(s) are you solving? What user goals are you making possible?
- What is/are the main takeaways from your research findings? Briefly recap what you learned
- Who is your target audience?
- What features will you include? They should map to your user goals. Make sure you offer a coherent rationale for why they were chosen.
- How will this differentiate from your competitors? What pain points are being addressed?
- Are there any constraints you have to work with? (e.g. technological, timing, content, etc.)
- Is there anything else you think might help us (your stakeholders) understand what you’re proposing?
Week 11: Sprint
-
A working prototype with a GitHub URL that can be shared that includes:
- A basic, functioning user interface
- A successfull call to a web API, made NOT on the main/UI thread
-
In your GitHub repository, a
readme.md
file with the following added:- An embedded screenshot of the prototype
- A description of what the app does, and how it is useful
- Explanations of the technologies used
Week 12: Sprint, QA, Present
-
A 10 minute presentation on your application (7 mins) and process (3 mins)
-
A Git repository hosted on GitHub and frequent commits dating back to the very beginning of the project
-
A link to your app on Google Play in the URL section of your GitHub repo
-
Succesfull API calls to save and/or retrieve data from the internet
-
A polished user interface reflecting Material Design principles
-
In the
readme.md
file:- A screenshot of at least one screen of the working application
- A description of what the app does, and how it is useful
- Explanations of the technologies used
- A couple paragraphs about the general approach you took in your design process that point to your
research.md
file - If necessary, any special instructions on how to build the app in Android Studio
- Descriptions of any unsolved problems or major hurdles you had to overcome
- Don’t get too caught up in too many awesome features – simple is always better. Build something impressive that does one thing well.
- Design first. Planning with user stories & wireframes before writing code means you won't get distracted changing your mind – you'll know what to build, and you can spend your time wisely by just building it.
- Don’t hesitate to write throwaway code to solve short term problems.
- Read the docs for whatever technologies / frameworks / API’s you use.
- Write DRY code.
- Be consistent with your code style.
- Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.
- Keep user stories small and well-defined, and remember – user stories focus on what a user needs, not what development tasks need accomplishing.
- Write code another developer wouldn't have to ask you about. Do your naming conventions make sense? Would another developer be able to look at your app and understand what everything is?
- Make it all well-formatted. Are you indenting, consistently? Can we find the start and end of every div, curly brace, etc?
- Comment your code. Will someone understand what is going on in each block or function? Even if it's obvious, explaining the what & why means someone else can pick it up and get it.
- Write pseudocode before you write actual code. Thinking through the logic of something helps.
Using Google Places API, view information about the restaurant you are currently standing in (i.e., customer ratings and comments).
Given a place and time, the app tells the user the weather conditions at that moment.
Sometimes, using Stack Overflow is overwhelming. Using their API, develop an app that reorganizes their data in a more pleasing way, helping people find answers more efficiently, etc.
Create an app that makes finding an apartment or job easier. Maybe there is a way to rethink and improve how to match people with such resources!
- Android Developer Website
- Google Design Guidelines
- API Search (API Search service to help discover APIs on the web)
- HackDesign (beginner's reference for thinking like a designer)
- Visual Design Hacking (a great tips-and-tricks focused video from Front Row)
-
Project Workflow: Did you complete the user stories, wireframes, task tracking, and/or ERDs, as specified above? Did you use source control as expected for the phase of the program you’re in (detailed above)?
-
Technical Requirements: Did you deliver a project that met all the technical requirements? Given what the class has covered so far, did you build something that was reasonably complex?
-
Creativity: Did you added a personal spin or creative element into your project submission? Did you deliver something non-trivial and of value to the end user?
-
Code Quality: Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming? Did you comment your code as your instructors as we have in class?
-
Problem Solving: Are you able to defend why you implemented your solution in a certain way? Can you demonstrated that you thought through alternative implementations? (Note that this part of your feedback evaluation will take place during your presentation to your instructors, after you've completed the project.)
-
Total: Your instructors will give you a total score on your project between:
Score Expectations 0 Incomplete. 1 Does not meet expectations. 2 Meets expectations, good job!
This will serve as a helpful overall gauge of whether you met the project goals, but the more important scores are the individual ones above, which can help you identify where to focus your efforts for future projects!
- All content is licensed under a CC-BY-NC-SA 4.0 license.
- All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact legal@ga.co.