Giter VIP home page Giter VIP logo

greys-anatomy-lorem-ipsum-generator's Introduction

greys-anatomy-lorem-ipsum-generator is a website that generates lorem ipsum text inspired by Grey's Anatomy and medical terms. Lorem ipsum is nonsense text that can be used as place holder copy in designs. Additional terms can be added in the /lambda/words.js file

screenshot of lorem ipsum generator

This project's infra boilerplate wascreate-react-app-lambda which was created from latest versions of Create React App v3 and netlify-lambda v1.

The main addition to base Create-React-App is a new folder: src/lambda. Each JavaScript file in there will be built for Lambda function deployment in /built-lambda, specified in netlify.toml.

Local Development

Before developing, fork the repository and run yarn from the root of the repo to install all dependencies.

Start each server individually

Both need to be run at the same time, in separate windows, in order for the application to properly run locally

Run the functions dev server

From inside the project folder, run:

yarn start:lambda

This will open a local server running at http://localhost:9000 serving your Lambda functions, updating as you make changes in the src/lambda folder.

You can then access your functions directly at http://localhost:9000/{function_name}, but to access them with the app, you'll need to start the app dev server. Under the hood, this uses react-scripts' advanced proxy feature with the setupProxy.js file.

Run the app dev server

While the functions server is still running, open a new terminal tab and run:

yarn start

This will start the normal create-react-app dev server and open your app at http://localhost:3000.

Local in-app requests to the relative path /.netlify/functions/* will automatically be proxied to the local functions dev server.

Note: You can also use npm-run-all to run the functions dev server and app dev server concurrently. Note that you don't need this if you use netlify dev as function builder detection does that for you.

Service Worker

The service worker does not work with lambda functions out of the box. It prevents calling the function and returns the app itself instead (Read more). To solve this you have to eject and enhance the service worker configuration in the webpack config. Whitelist the path of your lambda function and you are good to go.

greys-anatomy-lorem-ipsum-generator's People

Contributors

angelfqc avatar darthostrich avatar dependabot[bot] avatar donavon avatar hidde-vb avatar kylemcd avatar lgraubner avatar m0nica avatar stevenjchang avatar swyxio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

greys-anatomy-lorem-ipsum-generator's Issues

add button to copy text

Consider using a clipboard library https://clipboardjs.com/

For example the copy button in this photo:
Screen Shot 2019-10-05 at 9 30 57 PM

Given
I click to generate lorem ipsum
generated text appears
I can click a button to copy all of the generated text into clipboard

Add TypeScript

Typescript

Click for instructions You can use Typescript in both your React code (with `react-scripts` v2.1+) and your lambda functions )with `netlify-lambda` v1.1+). Follow these instructions:
  1. yarn add -D typescript @types/node @types/react @types/react-dom @babel/preset-typescript @types/aws-lambda
  2. convert src/lambda/hello.js to src/lambda/hello.ts
  3. use types in your event handler:
import { Handler, Context, Callback, APIGatewayEvent } from "aws-lambda"

interface HelloResponse {
  statusCode: number
  body: string
}

const handler: Handler = (event: APIGatewayEvent, context: Context, callback: Callback) => {
  const params = event.queryStringParameters
  const response: HelloResponse = {
    statusCode: 200,
    body: JSON.stringify({
      msg: `Hello world ${Math.floor(Math.random() * 10)}`,
      params
    })
  }

  callback(undefined, response)
}

export { handler }

rerun and see it work!

You are free to set up your tsconfig.json and tslint as you see fit.

If you want to try working in Typescript on the client and lambda side: There are a bunch of small setup details to get right. Check https://github.com/sw-yx/create-react-app-lambda-typescript for a working starter.

Allow user to set amount of text to be generated

Given:
I am a user, I should be able to enter the number of paragraphs or words I would like generated

When:
I select number of paragraphs or words

Then:
The output amount of text should match the amount of paragraphs or words that I selected.

Screen Shot 2019-10-05 at 9 30 57 PM

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.