Home
Softono

Fullstack Apollo Express Mongodb Boilerplate

Open source MIT JavaScript
336
Stars
99
Forks
26
Issues
12
Watchers
6 years
Last Commit

 About Fullstack Apollo Express Mongodb Boilerplate

💥A sophisticated GraphQL with Apollo, Express and MongoDB boilerplate project.

Platforms

Web Self-hosted

Languages

JavaScript

Need Help Installing Fullstack Apollo Express Mongodb Boilerplate?

We provide expert installation service for this software. Our team will install, configure, and secure Fullstack Apollo Express Mongodb Boilerplate on your server. plans start at just $30.

Fullstack Apollo Express Mongodb Boilerplate

View on GitHub

fullstack-apollo-express-mongodb-boilerplate

Build Status Slack Greenkeeper badge

A full-fledged Apollo Server with Apollo Client starter project with React and Express. Read more about it in this tutorial to build it yourself.

Further Readings:

Family of universal fullstack repositories:

Server Applications:

Client Applications:

Features of Client + Server

  • React (create-react-app) with Apollo Client
    • Queries, Mutations, Subscriptions
  • Node.js with Express and Apollo Server
    • cursor-based Pagination
  • MongoDB Database with Mongoose
    • 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 [email protected]:the-road-to-graphql/fullstack-apollo-express-mongodb-boilerplate.git
  • cd fullstack-apollo-express-mongodb-boilerplate
  • touch .env
  • npm install
  • fill out .env file (see below)
  • npm start
  • start MongoDB
  • visit http://localhost:8000 for GraphQL playground

.env file

Since this boilerplate project is using MongoDB, 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 MongoDB with Mongoose in Express Tutorial [TODO: write setup tutorial]. After you have created a MongoDB database, you can fill out the environment variables in the server/.env file.

SECRET=asdlplplfwfwefwekwself.2342.dawasdq

DATABASE_URL=mongodb://localhost:27017/mydatabase

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:run-server npm script with TEST_DATABASE_URL environment variable in package.json to match your testing database name
  • one terminal: npm run test:run-server
  • second terminal: npm run test:execute-test

Want to learn more about React + GraphQL + Apollo?