Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

thomasjfox1/fullstack-apollo-react-express-boilerplate-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

115 Commits

Repository files navigation

fullstack-apollo-react-express-boilerplate-project

Slack

A full-fledged Apollo Server 2 with Apollo Client 2 starter project with React, Express and PostgreSQL.

GraphQL Server Tutorial

Features

  • React (create-react-app) with Apollo Client 2
    • Queries, Mutations, Subscriptions
  • Node.js with Express and Apollo Server 2
    • cursor-based Pagination
  • PostgreSQL Database with Sequelize
    • entities: users, messages
  • Authentication
    • powered by JWT and local storage
    • Sign Up, Sign In, Sign Out
  • Authorization
    • protected endpoint (e.g. verify valid session)
    • protected resolvers (e.g. e.g. session-based, role-based)
    • protected routes (e.g. session-based, role-based)
  • performance optimizations
    • example of using Facebook's dataloader
  • E2E testing

Installation

  • git clone git@github.com:rwieruch/fullstack-apollo-react-express-boilerplate-project.git
  • cd fullstack-apollo-react-express-boilerplate-project

Client

  • cd client
  • npm install
  • npm start
  • visit http://localhost:3000

Server

  • cd server
  • touch .env
  • npm install
  • fill out .env file (see below)
  • npm start
  • optional visit http://localhost:8000 for GraphQL playground

.env file

Since this boilerplate project is using PostgreSQL, you have to install it for your machine and get a database up and running. You find everything for the set up over here: Setup PostgreSQL with Sequelize in Express Tutorial. After you have created a database and a database user, you cann fill out the environment variables in the server/.env file.

DATABASE=mydatabase
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
SECRET=asdlplplfwfwefwekwself.2342.dawasdq

The SECRET is just a random string for your authentication. Keep all these information secure by adding the .env file to your .gitignore file. No third-party should have access to this information.

Testing

  • adjust test-server npm script with TEST_DATABASE environment variable in package.json to match your testing database name
    • to match it from package.json: createdb mytestdatabase with psql
  • one terminal: npm run test-server
  • second terminal: npm run test

Want to learn more about React + GraphQL + Apollo?

About

πŸ’₯A sophisticated Apollo in React and Express boilerplate project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.4%
  • HTML 3.5%
  • CSS 0.1%

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /