The Google Maps API challenge made making requests to a 3rd Party API very easy. All we needed to do was copy and paste. We mentioned that it would actually be much more difficult to actually make requests in real life and this challenge is for that.
Typically, when you make a request to a 3rd Party API, you read through the documentation, make a Request (you'll need that link later), and get a Response. Once you parse through the response, you can use that data to achieve your application goals.
This challenge is going to be rather nebulous and that's by design. Most software engineering features are going to come as a laundry list of wants from your client. It is up to you to figure out how it works and implement it.
When developing an app or feature using the Agile Methodology, you want to write the new feature from the perspective of the end user. This is called a User Story in agile developement.
For example: As a user, I want to be able to search for artist's concerts from the Home Page and be redirected to a list where their next 5 concerts will be displayed on a map and the 10 most recent news about that artist sorted by article popularity.
Each app has multiple User Stories.
You've been contacted by a client to build a new application. They'll pay you $50,000 to build a Minimum Viable Product (MVP) over the next 4 days. If all goes well, they want to hire you and your team to continue building out the application for 6 months. They have a budget of $400,000, which will go to you and your team.
Your client would like to build an application which allows users to search for concerts and news.
Here are some MUST HAVES from the client regarding the functionality of the MVP. (Required functionality)
- Must be able to search artist's concerts.
- Must be able to display the concert's locations on a map.
- Must be able to display news related to the artist that the user searched for.
- Must be able to search for news independently from the artist. Ex: Search for news about
Coding Bootcamps
. - Must be 'pretty'.
Here are some NICE TO HAVES from the client. (Not required but if you implement these features the more likelihood they'll hire you and your team)
- The ability to create Users
- The ability for Users to login
- The ability for Users to tag
I want to go
to their favorite artist's concerts. - The ability for Users to view a list of concerts they've tagged
I want to go
.
- As a user, I want to be able to search for artist's concerts from the Home Page and be redirected to a list where their next 5 concerts will be displayed on a map and the 10 most recent news about that artist sorted by article popularity. (Each concert will have it's own Google Map, don't display multiple points on a single map)
- As a user, I can search for news based on a search query/topic from the NavBar, the search bar should be on every page of the application. After typing in my search query and pressing 'search news' I should be redirected to a dedicated page showing the 20 most recent news article for input search query/topic.
- As a user, I can navigate to a dedicated search news page from the Nav Bar where it displays the Top Headlines in the US by default.
- As a user, I can filter news based on categories
business
,entertainment
general
health
science
sports
technology
on the dedicated search news page. - As a user, I can search for news based on a search query/topic on the on the dedicated search news page and sort by
relevancy
&popularity
.
- As a user, I can navigate to a dedicated signup page and type in a username and password and click
Signup
and an alert will show if I successfully signed up with a link to redirect me to theLogin
page. - As a user, I can navigate to a dedicated login page and type in a username and password and click
Login
and be redirected to the Home Page upon successfull login. - As an Authenticated User, after searching for artist's concerts I can tag
I want to go
to a specific concert (similar to alike
button on Facebook orheart
on Twitter). - As an Authenticated User, I can navigate to dedicated
My Concerts
page that will display a list of concerts I've taggedI want to go
.
Look up the available endpoints on Ticketmaster's Free API. Which ones do you need to figure out the next 5 concerts of the artist in question? You'll be making lots of requests and getting lots of responses. Ticketmaster gives you 5000 free calls per day.
Ticketmaster API Hint
Look at the 'keyword' query parameter.Use the News API to search for News articles based off several criteria. Research the available endpoints and request parameters
. This API has great documentation and is pretty straight forward. (NOTE: You DON'T need to use a Client Library!)
Use the Google Maps Embed API from the lecture to display concert locations.
Use Python's Request library and know what to do after you get the Response.
Get organized!
- Have one person in your group create a Github repository on their personal Github or fork over this repository and create a template Django Project and push it to the newly created or forked repository.
- In your repository settings, under
Manage access
invite your Group Members. - Other Group Members, DON'T FORK the group member who created the repository to your own Github, just clone it to your machine so you're all working on the same repository.
- When working on features, work on seperate
branches
. Never work directly on themaster
branch. You can addBranch protection rules
for your repository to prevent you from pushing code straight to themaster
branch. - Look into Trello or another project management tool to stay organized.
- Pair Program!