Showcase Project
Introduction
This project will challenge you to use the technology you’ve become familiar with over the course of Mod 3, as well as force you to work inside some constraints. Everyone will be working with (at least) one API and one audience.
Project Goals and Requirements
- Use the technology you’ve been working with over the course of the module to
demonstrate mastery of the following:
- React
- Router
- Asynchronous JavaScript
- End to end testing with Cypress
-
Create personas and user stories to describe your target audience.
-
Work within constraints to deliver a product for your niche audience, which helps solve a problem unique to them.
- Your applications must have the following core functionality:
- Display the data from the API in a way that applies directly to your audience
- Ability for users to store/manipulate the data displayed in the application, such as (choose one) favoriting/unfavoriting, adding to/removing from a list, searching, commenting, etc
- Multiple views handled by Router
- Be deployed using Vercel, Heroku, Surge, or any other similar service
- PropTypes has been implemented in all components with props
- App is responsive across mobile, tablet and desktop sizes
Abstract
This project, having a short time frame, will need to pack a lot into a small space. We’re going to accomplish this by building an app that serves the needs of a very small, very niche audience.
You’ll create an MVP to serve a deeply specific audience of users.
What is an MVP?
Process
Here are some tips for creating an interesting, tightly-scoped application!
Finding an API
Choose an open API to work with where the data sounds interesting to you. A good place to start looking is this repo with a list of free/open APIs. You can also reference the list outlined in the Stretch project spec. Choose an API where you could make an application based on the data from the API. Do not choose an API that requires “OAuth or OAuth 2.0”, which is a more complicated authentication scheme. Also, be wary of APIs that have “CORS” value of “no.”
APIs that require an apikey
are usually easy to deal with, and some APIs don’t require an apikey
. If the API you want to use relies on an API key, be sure to request one ASAP!
Sometimes an API (especially open public ones) can cease to be maintained, so request keys from a few and start playing around with the data you can get!
Choosing an audience
After you have an API that interests you, the next thing you need to do is choose an audience. You need to be specific with your audience.
For example, if you chose an API that served cat data, your audience should not just be “cat lovers”. Instead, it should be something more specific like “cat lovers who live in Alaska”. This will give you some constraints for the project to make it more unique and design decisions a little easier.
GET WEIRD. HAVE FUN. (And also still be professional. Silliness is good; rudeness/crassness is not.)
Once you’ve chosen your API and audience, start thinking about how you’re going to build something for this audience, using that API. Come up with a few different ideas.
Niche audience
The best audiences for this project are highly specific. You won’t have a lot of time to build something, so a big app that has to serve lots of different audience members is not really feasible. You’re not building Airbnb or Twitter here.
Examples of past student apps that had excellent audiences:
- An app that interprets sports statistics into bite-sized sentences to share at work, intended to help non-sports-fans talk to sports-fans.
- An app for plant-killers to remember to water their plants.
- An app for wine-haters to find wines to try.
- An app for soon-to-be-dads to begin building up a repertoire of dad jokes.
As you can see, specific, niche audiences are more fun and interesting than broad audiences! These constraints will help inspire specific app features.
Thinking like a developer
This project is often a portfolio piece for FE students. So let’s make this as professional as possible!
User personas
We expect you to write 2 thorough user personas which describe two members of your niche audience. These personas should inform the design & features/functionality of your app.
Wireframes & design inspiration
Wireframing will be a major component of this project. The more time you spend intentionally thinking about the layout/views and user flow of your application, the better the final result will be.
There are many different tools you can use for this, including just plain old pen and paper. Just make sure you really spend time thinking about the user interactions. For a good overview of how to effectively wireframe a project, check out this video.
We also want you to choose two design inspiration pieces, which can be as broad as inspiration for the layout of your app, to as small as a color palette or a micro-interaction animation.
Deliverables
Day 0 Kick Off & Proposals Due (5 PM MT)
- Add the link to your MVP proposal in this google sheet.**
Day 2 before 3 PM MT
- The link to your repo
- The link to your Project Board
- A link to 2-3 pieces of design inspiration that you will aim to mimic - using this template
- A wireframe of your app - this can include sketches of your user interface, or a link to your Canva, InVision, etc.
- An Equity Analysis - using this template
PR Buddies - PR review
You’ll be assigned a PR buddy. Sometime this week, tag each other in a review that you’d like some eyes on (hopefully a PR for something that involves the learning goals of this project).
Plan to spend about 20 minutes deep-diving into your buddy’s code, asking questions, proposing refactors, and just generally discussing the code with one another.
There is a time block Thursday morning to connect with your PR buddy. PR buddy assignments will be posted in this calendar event. Your PR reviews can occur before or after this time block.
Evals
Unlike the evals for the previous projects in Mod 3, you will receive less feedback on this project. Instead, you’ll be asked to answer some high level questions about your code and the decisions you made.
The purpose of this is to give you an opportunity to begin experiencing what it is like to turn in a code challenge for a job interview. Often, you will not receive close code feedback - you’ll simply move on to the next round of interviewing, or not. It’s also common to be asked to talk about your code and what led you to make the decisions you did.
Eval process
Project evals will be asynchronous. The feedback for this project will be limited - but feel free to ask questions about your code. We highly encourage you to seek a code review and feedback from a peer, house mentor or from the #questions channel in slack - a great opportunity to connect with an alumni and create a warm contact for networking!
- We will DM you your scores
- In a DM, we will send you a link to part of your project code.
- Please describe that code in your own words:
- what does that code do,
- when is it used,
- what choices did you make when you wrote it?
- Answer the following question in a short paragraph, using specific examples from a Mod 3 project:
- “What is a benefit of using a framework like React over vanilla JS? What is a drawback?” (this is a common interview question!)
Minimum Professionalism Expectations
- Commits are atomic and frequent, effectively documenting the evolution/progression of the application.
- A project board is utilized (and updated throughout the project) with Github issues and labels.
- Developer uses branches, PRs and thorough code reviews to add new code to the main branch.
- The README is formatted well and at a minimum contains:
- Overview of project and goals
- Overview of technologies used, challenges, wins, and any other reflections
- Screenshots/gifs of your app
- List of contributors
Rubric
For the rubric sections below, you will be scored as Wow, Yes or Not Yet depending on whether you have demonstrated competency in that area. Each section lists examples of what types of things we may be looking for as demonstrations of competency. Just as there are many ways to approach code, there are many many ways to demonstrate competency. These are just some examples.
Does the project demonstrate student understanding of the learning goals & concepts?
In addition to any WOW examples listed below, you can strive for a WOW by demonstrating not just competency, but excellence and thoroughness across the rubric sections.