Coder Social home page Coder Social logo

kcphysics / randomstore Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 6.76 MB

Dungeon Master tool for creating a store in a settlement on the fly

License: MIT License

Dockerfile 2.28% HTML 0.94% Svelte 40.68% CSS 2.22% Roff 13.67% JavaScript 10.14% Shell 0.25% Go 12.79% HCL 15.44% Makefile 1.59%

randomstore's People

Contributors

kcphysics avatar

Watchers

 avatar

randomstore's Issues

Backend Robustness

The backend and frontend are currently working on good faith, and are expecting data in specific formats, but doesn't check for it. One example of this is when the saveStore function is called in the front end. It either expects an error or the real data shape, but does not check for the real data shape.

Definition of Done

  1. When all of the interaction points between the frontend and the backend have appropriate error handling

Setup Dev Instances

To make sure this lives a while, we should ensure we can make and test changes without effecting the user experience. To this end we should create a development environment instance of all items. This is what should be used during the development process, and when moving to prod, the appropriate pieces and parts are changed.

Definition of Done

  1. A new DynamoDB table exists
  2. A new Lambda exists
  3. A new API Gateway exists
  4. A new CloudFront Distribution exists
  5. A new S3 bucket exists
  6. 2 new CNAMEs and 1 new certificate for dev.randomstore.scselvy.com and api.dev.randomstore.scselvy.com

Work on build process

Right now, manual commands are executed to ensure that code is built appropriately. This ticket is focusing on one use case, development.

When in development mode, a Makefile or similar should exist that does the following:

  1. Compiles the svelte app
  2. Loads the svelte app to the appropriate s3 buckets
  3. Invalidates the Cloudfront distribution
  4. Compiles the go lambda
  5. Uploads the go lambda to the correct position

Full CI/CD will be handled at a later time

Definition of Done

  1. A documented way to execute the above

Allow the Storename to be editable

Allow users to edit the store name. This will allow them to set it to something that they would like that fits their campaign better.

Definition of Done

  1. Given: A customer has generated a store
  • When: The customer clicks the pencil icon next to the name
  • Then: They can change the name and it persists everywhere

Create Linkbacks to the home page

Currently, when a specific store is opened, there's no way to go back to the "home page" and generate your own store. This should be instrumented by making the logo at the top be a link back to the original page.

When clicked, this should "reset" the internal memory of the page so that its a blank slate.

Definition of Done

  1. When a customer who loaded a specific store clicks on the top logo
  • Then: They are navigated back to the orginal page

Backend Auth Scheme

Right now, the app relies only on CORS to ensure that events are coming in from allowed sources. This should be changed and some level of authorization should be used. In this case, we should set and check a header value. While this isn't secret in any way, it ensures that the application sent it, or someone opened up chrome dev tools and figured it out.

Definition of Done

  1. The API Gateway has an authorizer configured that will check a specific header field to ensure that it is correct
  2. The Frontend will have the authorization scheme built into the front to make sure communications are correct
  3. A Lambda authorizer (potentially in the same go file with a different entry point) exists such that it checks the header appropriately

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.