Skip to content
This repository has been archived by the owner on Oct 18, 2022. It is now read-only.

Latest commit

 

History

History
88 lines (60 loc) · 3.53 KB

CONTRIBUTING.md

File metadata and controls

88 lines (60 loc) · 3.53 KB

Contributing Guide

If you're new to contributing to open source software this guide guide is a great read.

Not sure where to start?

A great place to jump in are issues labeled Beginner Friendly.

Chat

Feel free to join the Banshee-44 Mods Bot Discord if you have questions.

Pull Request Checklist

  • - Documentation is updated if needed
  • - Passing CI pipeline

What's the tech stack?

This project uses Node.js as my language of choice. I'm using AWS for my infrastructure. I'm using Terraform for my Infrastructure as Code (IaC) and if I wanted to have this deployed I'd do so with Terraform Cloud to provision my infrastructure, either on demand or in response to various events.

I'm leveraging compute via AWS Lambda for all of the benefits of having a serverless architecture.

I'm using AWS API Gateway to create our RESTful API. API Gateway handles all the tasks involved in accepting and processing up to hundreds of thousands of concurrent API calls, including traffic management, CORS support, authorization and access control, throttling, monitoring, and API version management.

Developer Setup

Setup and use requires Git, Node JS, and a text editor such as VS Code.

This project is built for the latest Node LTS and npm versions. You can check your node version with node -v and your npm version with npm -v.

If you're on a Mac, I'd suggest using Homebrew for installing the required software listed in Setup.

Cloning & Dependency Installations

git clone [email protected]:cujarrett/glimpse-backend.git
cd glimpse-backend
npm install

Run Linting

Finds problematic patterns or code that doesn’t adhere to certain style guidelines

npm run lint

Fix linting errors (automated)

npm run fix-lint

Terraform

This project uses Terraform to create, edit, and delete its infrastructure to AWS.

terraform apply

The Terraform in this project requires variables.

  • acm_certificate_arn: arn:aws:acm:REDACTED:REDACTED:certificate/REDACTED`

Commit Message Guidelines

This project follows the Conventional Commits specification to aid in automated releases and change log generation. Commitlint is enabled and ran as a commit-msg hook to enforce the commit format. Commitizen can be used to prompt through any requirements at commit time npm run commit (or git cz if Commitizen is installed globally).

In short, if a commit will be fixing a bug, prefix the commit message with fix:

fix: my bug fix
feat: my new feature

Commits with fix: prefix will show up in the generated changelog as bullets under the Bug Fixes: section, and feat: prefixed messages will show under the Features: section. For more on the available prefixes/rules, see here.