Skip to content

Commit 517a4d6

Browse files
committed
Add introduction
1 parent 9995af3 commit 517a4d6

File tree

2 files changed

+57
-3
lines changed

2 files changed

+57
-3
lines changed

docs/source/images/graph-layer.png

118 KB
Loading

docs/source/tutorial/introduction.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,62 @@ title: 0. Introduction
33
description: Start here to learn how to build fullstack apps with Apollo
44
---
55

6-
<h2 id="apollo">What is Apollo?</h2>
6+
Welcome! We're excited that you've decided to learn Apollo. This fullstack tutorial will guide you through building your first app with the Apollo platform in about an hour. Throughout the tutorial, you'll learn how to build a graph API and connect it to a React frontend.
77

8-
<h2 id="learn">What you'll build</h2>
8+
We want you to feel confident that you have the knowledge you need to build a production-ready app with Apollo, so we're forgoing hello world in favor of a real world example complete with authentication, pagination, testing, and more. Ready? Let's dive right in!
99

10-
<h2 id="dev-environment">Set up your development environment</h2>
10+
<h2 id="what-is-apollo">What is Apollo?</h2>
11+
12+
Apollo is a complete platform for implementing a graph over your data. It includes two runtime libraries, **Apollo Server** and **Apollo Client**, for building and querying your graph's API. It also features developer tooling that integrates with your existing workflow and gives you full visibility into the performance and security of your graph.
13+
14+
Why do you need a graph? Today, one of the most difficult parts of building an app is figuring out your data layer. Often, there's many data sources you need to fetch from and many clients you need to support. When you layer a graph in between your services and your UI, you can remove a lot of complexity from your data fetching logic and ship features faster.
15+
16+
<div style="text-align:center">
17+
![Graph layer](../images/graph-layer.png)
18+
</div>
19+
20+
**[GraphQL](https://www.graphql.org/)** is the specification that we'll be using to communicate between our graph API and client. The spec itself is language-agnostic and unopinionated, so we're choosing to implement GraphQL with the Apollo platform.
21+
22+
<h2 id="tutorial-app">What we'll build</h2>
23+
24+
In this tutorial, we'll build an interactive app for reserving your spot on an upcoming Space-X launch. You can think of it as an Airbnb for space travel! All of the data is real, thanks to the [SpaceX-API](https://github.com/r-spacex/SpaceX-API).
25+
26+
Here's what the finished app will look like:
27+
<!-- TODO: Add screenshot -->
28+
29+
The app has five screens: a login screen, a list of launches, a launch detail, a profile page, and a cart. The graph API powering our space app connects to a REST API and a SQLite database. Don't worry if you're unfamiliar with those technologies, you don't need to know how to build a REST API or SQLite database from scratch in order to complete the tutorial.
30+
31+
We want this to model a real world Apollo app as much as possible, so we're covering essential topics like authentication, pagination, state management, testing, and deployment.
32+
33+
<h2 id="prerequisites">Prerequisites</h2>
34+
35+
The tutorial assumes that you're comfortable with JavaScript/ES6, you've fetched data from an API before, and you have basic familiarity with React. If you need to brush up on your React skills, we recommend going through the [official tutorial](https://reactjs.org/tutorial/tutorial.html). Building your frontend with React is not a requirement for using Apollo, although it is the most popular way developers integrate with Apollo Client. Even if you use another view layer like Angular or Vue, you will still be able to pick up on the concepts covered in the client section and apply them to your view layer of choice.
36+
37+
<h3 id="system-requirements">System requirements</h3>
38+
39+
Before we begin, make sure you have:
40+
- [Node.js](https://nodejs.org/) v6.9.0 or greater
41+
- [npm](https://www.npmjs.com/) 3.10.8 or greater
42+
- [git](https://git-scm.com/) v2.14.1 or greater
43+
44+
While it's not a requirement, we recommend using [VSCode](https://code.visualstudio.com/) as your editor so you can take advantage of all the awesome features the Apollo VSCode extension enables. We're hoping to support other editors in the future.
45+
46+
<h2 id="dev-environment">Set up your development environment</h2>
47+
48+
Now the fun begins! First, you'll need to install our developer tools:
49+
- Apollo Engine (required): Our cloud service where you'll register and manage your graph API
50+
- Apollo DevTools for Chrome (suggested): Our Chrome extension giving you full visibility into your client
51+
- Apollo VSCode (suggested): Our editor integration that offers intelligent autocomplete, metrics, and more
52+
53+
Next, in your terminal, clone this repository:
54+
```bash
55+
git clone https://github.com/apollographql/fullstack-tutorial/
56+
```
57+
58+
There are two folders: one for the server and one for the client. We will be working in the server folder first. If you're comfortable with building a graph API already and you want to skip to the client portion, navigate to the [last half of the tutorial](./client.html).
59+
60+
<h3 id="help">Where can I get help?</h3>
61+
62+
We know that learning a new technology can sometimes be overwhelming, and it's totally normal to get stuck! If that happens, we recommend joining the [Apollo Slack](https://www.apollographql.com/slack) community and posting in the relevant channel (either #apollo-server or #apollo-client) for some quick answers.
63+
64+
If something in the tutorial seems confusing or contains an error, we'd love your feedback! Just click the Edit on GitHub link at the bottom to open a new pull request or open an issue on the repository.

0 commit comments

Comments
 (0)