Git Product home page Git Product logo

rigflo's Introduction

๐Ÿ— Rigflo

Rigflo is a visual interface for exploring and editing OpenAPI documents. The tool aims to provide developers with an intiuitive interface to get up and running when building out APIs. By lowering the barrier of entry to working with OpenAPI documents, more developers can gain access to the various tools within the OpenAPI ecosystem.

Rigflo


Features

  • Connect and route GET, POST, PUT, DELETE paths
  • Edit path metadata
  • Github integration
  • Auto-save via local storage
  • Export to YAML

Development

  1. Fork this repository: gh repo fork https://github.com/oslabs-beta/rigflo
  2. Install dependencies: npm install
  3. Start the development server: npm start

Note: Rigflo uses Snowpack for fast unbundled development. If you're having issues starting the development server, reference their docs for guidance.

Contributors

Rigflo is under active development in collaboration with OS Labs

rigflo's People

Contributors

akernizan avatar gjames5355 avatar jamesscaggs avatar samkcarlile avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

dexit steveefemsc

rigflo's Issues

Create new instance of websocket

  • when the ready state is open call send on socket

  • send data to the server

  • Create a new document from OASDocument client - we will be sending the invocation of one of the methods form the document class

A user can save an incomplete project

  • when a user clicks the save button they can save their work

  • yaml file will be saved and the state will update to reflect changes

  • maybe have an indicator of a successful save

A user should be able to generate code after they add all nodes/edges

  • After all of the nodes have been placed a user can click a button to download the code generated from the yaml file
  • When the download button is clicked state data is saved to DB(later)
  • Update state to refected the obj has been downloaded
  • Code will be contained in a zip file(?) or whatever is easier

A user should be able to connect nodes

  • When a node is added to the canvas a user should be able to connect nodes with edges

react flow edges

  • each newly generated edge should update the elements object with the correct data ie. the edge target should match the node id it is pointing to

  • There should not be any hanging edges ie a user can only add an edge if there is a node to point it to

  • check if the element is a node or an edge

A user should be able to add a new node

  • when a new project is created a user should see buttons to add nodes to the canvas

  • when a node button is clicked a user can add which kind of node it is or there is a button for each kind of node(middleware, route etc)

  • Each node should be added to the elements obj in state

Make github oauth token secure using jwt

The current implementation of oauth stores the access token in the local storage. This isn't secure and we need to refactor to use jwt, bcrypt, and create a session token with expiry which will be added to the authState.

Inbound requests from the client to authenticated server routes will need to check the authState on the client side before allowing the request.

Refactor local storage to persist with default key immediately on initial render

I was thinking through our implementation on the Save feature and I think we can optimize the UX to make it a bit more intuitive.

Here's what I'm thinking:
We should persist the elements in local storage with a 'rigflo-project' key immediately on first render and update local storage every time the elements are updated.

This avoids the user having to actually click 'save' and us having to deal with dynamic key names.

On that initial render we can just check if the 'rigflo-project' key exists and if so we load those elements.

With this approach we can refactor the Save button to the Share functionality in the other ticket I made.

We can then take the modal markup from the Save button and implement into the Push to Github button so we can let the user name the repo we are going to create for them.

A user can delete a project

  • A user can delete a project by clicking a button

  • The project will be removed from state and the YAML file data will be deleted

  • maybe add a modal saying it was successfully deleted

A user can edit details of a node

  • When a node is created a user can edit the information passed to that node (will this be a modal/ dropdown)

  • Add button to edit details

  • add button to save details

  • state/yaml should update accordingly

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.