Code Monkey home page Code Monkey logo

ok-wildscapes-api's Introduction

Oklahoma Wildscapes API

dev prod

Getting Started

Prerequisites

  • An AWS account with an admin user
  • AWS CLI
  • nvm and Node 20 LTS
  • yarn package manager

Local Dev Setup

  • Copy your AWS admin credentials from the AWS access portal into your .aws/credentials file
  • Run yarn bootstrap to deploy to your AWS account and set local environment variables
  • Verify deployment in the AWS console or by running yarn test:e2e
  • Run yarn sls deploy to push changes to your dev environment

Making Changes

GraphQL and Codegen

This project uses the GraphQL-Codegen library to translate GraphQL object types into TypeScript types for functions, resolvers, and automated tests. When modifying the API, start by adding or updating the relevant types in the schema.api.graphql file.

Run yarn codegen to automatically generate TypeScript types in the src/generated/graphql.ts file. Import types from graphql.ts into Lambda functions, AppSync resolvers, and automated tests.

ok-wildscapes-api's People

Contributors

ppalms avatar

Watchers

 avatar

ok-wildscapes-api's Issues

Consultation request workflow

When a consultation request is submitted...

Email client to acknowledge receipt

  • How long should they expect to wait to hear back?
  • What are next steps?
  • How can they contact us if they think of something else?

Notify OK Wildscapes of consultation request

  • Details in email
  • Email forwarded to Basecamp

Tech debt

  • Replace hard-coded email addresses with config values
  • Use mock Basecamp email for dev/test

Forward consultation request to Basecamp

Consultation workflow

When consultation request is received, forward to [email protected] so it will show up in the OK Wildscapes Basecamp project.

Remove hard-coded email addresses in thee requestConsultation function and replace with SSM params.

Source: [email protected]

Destination:

Tasks

  • Push hard-coded version to get Basecamp working
  • Add Middy and SSM params
  • Refactor endpoint to use pipeline resolver - first stage saves to DDB, second stage publishes to OK Wildscapes SNS topic using AMAZON_SNS data source

Migrate frontend to new account

Deploy frontend with new API client to existing prod account

  • Update env vars in existing Amplify app to point to new URL and key
  • Merge api-migration branch to main
  • Test consultation workflow end-to-end in prod

Move from personal AWS org/account to Shobo

  • Create new Amplify app in dev
  • Set env vars for API URL and key
  • Deploy dev app
  • Test consultation workflow end-to-end in dev
  • Deploy app to prod
  • Set env vars for API URL and key
  • Deploy prod app
  • Test consultation workflow end-to-end in prod
  • Disassociate okwildscapes.com domain from old prod app
  • Point new prod app to domain
  • Test consultation workflow end-to-end in prod
  • Tell Lauren new version is live
  • Clean up old prod Amplify app and API
  • Delete OKWildscapesProd account from personal org
  • Clean up old dev Amplify app and API
  • Delete OKWildscapesDev account from personal org

Set up CICD for new app

  • Push to canary on main branch PR
  • Push to prod on release publish

Plant sheet management

  • Convert plant sheets to PDF
  • Upload to S3
  • Add management UI in back office area
    • List view: ListObjectsCommand -> paginated grid (copy from contest manager)
    • Details view: file name, last modified date, show/hide on public site
  • List plant sheets on resources page

Next steps:

  • Add job list UI with ability to link plant sheets
  • Distribute plant sheets in zip file via email to customer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.