👋 Great to see you in Part III of this Lift-off series!
Lift-off III: Arguments is a certifying course!By completing this course, you're getting one step closer to earning your Graph Developer - Associate Certification.
So far, we've built a homepage for our Catstronauts app that's filled with learning tracks for aspiring cat space explorers. We closely followed a GraphQL query's journey from client to server and back, and we set up resolvers to pull live data from a REST data source.
In this course, we'll add a second feature to our Catstronauts app: we want users to be able to click a track card on the homepage to navigate to a page that shows more details about that specific track.
To do this, we'll learn how to query for a single track using GraphQL arguments. We'll continue to apply our schema-first approach while adding to our schema's types and fields. We'll then update our resolvers and data sources accordingly. Finally, we'll jump into the frontend to send our query using GraphQL variables, and we'll add page navigation to tie everything together.
Clone the repository
In the directory of your choice with your preferred terminal, clone the app's starter repository:
git clone https://github.com/apollographql/odyssey-lift-off-part3
This repo picks up where Lift-off part II left off. Our project is a full-stack app with the back-end app in the
server/ directory and the front-end app in the
You'll also find a
final/ folder that contains the final state of the project once you've completed the course. Feel free to use it as a guide!
Here's the file structure:
📦 odyssey-lift-off-part3┣ 📂 client┃ ┣ 📂 public┃ ┣ 📂 src┃ ┣ 📄 README.md┃ ┣ 📄 package.json┣ 📂 server┃ ┣ 📂 src┃ ┃ ┣ 📂 datasources┃ ┃ ┃┣ 📄 track-api.js┃ ┃ ┣ 📄 index.js┃ ┃ ┣ 📄 schema.js┃ ┃ ┣ 📄 resolvers.js┃ ┣ 📄 README.md┃ ┣ 📄 package.json┣ 📂 final┃ ┣ 📂 client┃ ┣ 📂 server┗ 📄 README.md
Now, open the repository in your favorite IDE.
Note: The examples in this course use
npm, but you're welcome to use
yarn if you prefer.
Let's start with the server app.
In a terminal window, navigate to the repo's
server directory and run the following to install dependencies and run the app:
npm install && npm start
If all goes well, you'll see the installation complete and a message in the console indicating that the server is running.
Next, the client app.
In a new terminal window, navigate to the repo's
client directory and run the following to install dependencies and start the app:
npm install && npm start
The console should show a bunch of output and a link to the running app at
localhost:3000. You can navigate to
localhost:3000 in the browser and see our homepage, which shows multiple track cards.
Setting up the Apollo Studio Explorer
To write our queries, we'll be using the Apollo Studio Explorer. The Explorer is free to use, and it provides awesome development features like interactive query building, query history, and response hints. This will make building our queries fast and fun.
If you've already set up your Studio development graph in Lift-off I, check off the task below. If not, click "Set-up Explorer" below and follow the steps!
Ready to have fun? Let's get started!