Skip to content

mike-goitia/ground-up-server

Repository files navigation

ground-up-server

Ground Up Server Project

What is the Ground Up Server project?

The Ground Up Server project is a personal project with a goal of building a scalable backend service "from the ground up". The phrase "ground up" can also be interpreted, in this case, as making a service whole from different pieces, pieces that are ground up.

Mostly a boilerplate to get some of my personal projects running without starting...from the ground up.

Goals

  • Create a Node + Apollo GraphQL Backend Service
  • Create a MongoDb persistence layer
  • Setup Linting and AirBnB Style Guide
  • Create CI/CD pipeline with Github Actions and Deploy on Elastic Beanstalk
  • Give some examples of some advance Queries and Mutations with GQL
  • Simple Auth
  • Switch to TS
  • Social Auth
  • Permissions Layer with GraphQL Shield

Guides Used

Setup Apollo Server

Getting Started

Setup Babel to allow ES6, nodemon, and dotenv

  • Use Babel to code in ES6
  • Use Nodemon to watch for changes in your script for faster dev
  • Use dotenv to add environment variables and secrets specific to your project
    The minimal Node.js with Babel Setup

Connecting Mongoose to a MongoDB

Obtain the mongoDB URI from your service and add to .env file. Never add a .env file to version control.
Getting Started

ES Lint with AirBnB Style guide

Use ES Lint with the AirBnB guide to keep your code clean Install the plugin and execute ./node_modules/.bin/eslint --init
ES Lint Plugin

Transpiling with Babel for production

Transpile your ES6 code for
Example Node Server w/ Babel

Github actions for CI with Elastic Beanstalk

Deploy to EB after merging to main
Deploy using Github Actions on AWS Elastic BeanStalk

Email and Password Auth Using Accounts JS

accounts-js and Apollo Server

Helpful VSCode Plugins

ES6 Snippets

Insomnia Requests

Insomnia_Client_Requests.json

About

Ground Up Server Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published