{"id":13510225,"url":"https://github.com/rahuljoshi44/GraphVega","last_synced_at":"2025-03-30T15:31:01.687Z","repository":{"id":54206808,"uuid":"336373652","full_name":"rahuljoshi44/GraphVega","owner":"rahuljoshi44","description":"Open Source Options Analytics Platform.","archived":false,"fork":false,"pushed_at":"2021-03-03T06:00:14.000Z","size":2608,"stargazers_count":287,"open_issues_count":2,"forks_count":42,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-11-01T10:35:17.364Z","etag":null,"topics":["data-visualization","options","options-pricing","options-trading","stock-market","stocks","volatility"],"latest_commit_sha":null,"homepage":"https://www.graphvega.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rahuljoshi44.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-05T19:51:14.000Z","updated_at":"2024-10-30T09:24:06.000Z","dependencies_parsed_at":"2022-08-13T09:10:51.257Z","dependency_job_id":null,"html_url":"https://github.com/rahuljoshi44/GraphVega","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuljoshi44%2FGraphVega","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuljoshi44%2FGraphVega/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuljoshi44%2FGraphVega/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuljoshi44%2FGraphVega/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rahuljoshi44","download_url":"https://codeload.github.com/rahuljoshi44/GraphVega/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246338760,"owners_count":20761433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","options","options-pricing","options-trading","stock-market","stocks","volatility"],"created_at":"2024-08-01T02:01:29.812Z","updated_at":"2025-03-30T15:30:56.678Z","avatar_url":"https://github.com/rahuljoshi44.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","stock-market"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/rahuljoshi44/GraphVega/blob/master/public/vega.png\" width=\"200\"\u003e\n\n\u003ch1 align=\"center\"\u003e\n\nGraphVega  \n\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\"\u003e\n\n\u003c/h1\u003e\n\n\u003c/p\u003e\n\n## :gem: About The Project\n\nGraphVega is an open sourced options analytics platform that analyses\nand projects the P/L of a multi-legged options position with variation\nof the stock price under changes in volatility and days till expiration,\nusing a black-scholes simulation.\n\nIt is designed with a goal to provide a simple and intuitive interface\nto analyze options, while also providing developers with the flexibility\nto add their own custom features.\n\n\u003cp align=\"center\" style=\"box-shadow: 2px 2px 2px black;\"\u003e\n\n\u003cimg src=\"./media/demo-1.png\" width=\"550\"\u003e\n\n\u003c/p\u003e\n\n## :rocket: Getting Started\n\n**Note**: You will need to have NodeJS installed on your machine to run this app. If you don't have it on your machine already, you can install it [here](https://nodejs.org/en/download/) for free.\n\nTo get GraphVega up and running on your local machine, follow these steps:\n\n1.  Clone the repository\n    \n    ```\n    $ git clone  https://github.com/rahuljoshi44/GraphVega.git\n    ```\n\n2.  Switch to the root directory of the project (main folder where all the files are stored) and install the\n    dependencies. This process might take a couple minutes depending on your download speed, so please wait!\n    ```\n    $ npm install\n    ```\n\n3.  Get a free API Key (for sandbox) from Tradier\n    [here](https://developer.tradier.com/user/sign_up?_ga=2.9691381.1305307848.1613100396-1783872143.1609733953).\n    This project uses Tradier’s market data API for options and stock\n    prices.\n\n4.  In the root directory  create a `.env` file and enter your API key and the API url as\n    follows:\n    ```\n    TRADIER_API_KEY=YOUR_API_KEY_HERE\n    API_BASE_URL=https://sandbox.tradier.com/v1/\n    ```\n    Replace `YOUR_API_KEY_HERE` with the API key you obtained from step 3.\n    NOTE: You can also change the variable `API_BASE_URL` to the brokerage API url if you'd like to use the brokerage API endpoint.\n\n5.  Run the application in either of two ways: Locally or via Docker (explained below):\n\n### Locally\nIn the root directory, run the following command:\n\n    $ npm start\n\nNote that the front end react app runs on `http://localhost:3000` while\nthe server runs on `http://localhost:8000` so make sure you don’t have\nanything running on those ports. If you want to run the server on a different port, change the port variable in `server/app.js`, and change the`SERVER_URL` variable in `src/utils/url.js` to the new server url.\n\n### Docker\n\nMake sure to create the `.env` file from step 4 above before building the\nimage, otherwise it won't be included.\n\nBuilding:\n\n    $ docker build -t local/gv:latest -t local/gv:0.1.0 .\n\nRunning:\n\n    $ docker run -d --rm -p 3000:3000 --name graphvega local/gv\n\nStopping:\n\n    $ docker stop graphvega\n\n### Docker-Compose\n\nMake sure to create the `.env` file from step 4 above before building the\nimage, otherwise it won't be included.\n\nRunning:\n\n    $ docker-compose up\n\n    or \n\n    $ docker-compose run\n\nStopping:\n\n    $ docker-compose down\n\n## :zap: Usage\n\n\u003cp align=\"center\" style=\"box-shadow: 2px 2px 2px black;\"\u003e\n\n\u003cimg src=\"./media/graphvega-adding-positions.gif\" width=\"550\"\u003e\n\n\u003c/p\u003e\n\n1.  After launching the app, type in the name of a company in the search\n    bar and select the appropriate suggestion.\n2.  Select an expiration date for the options chain\n3.  After the option chain loads, add your options positions by clicking\n    on the rows of the table.\n4.  Switch to the analysis tab.\n5.  Observe the P/L chart and adjust the implied volatility and days\n    till expiry with the sliders as you like.\n\n## :palm_tree: Code Structure\n\nBroadly, the project is divided into the front end and the back end. \n- All frontend files are stored in the `src` directory.\n- Backend files are stored in `server`. These are used primarily for making API calls for market data.\n\nThere are three main front end components\n  - `src/components/main.jsx` is the root component that uses\n    `optionChain.jsx` and `analysis.jsx`\n  - `src/components/chain/optionChain.jsx` is the base component for the\n    ‘Option Chain’ tab\n    - All files related to the option chain tab is stored under `src/components/chain`\n  - `src/components/analysis/analysis.jsx` is the base component for the\n    ‘Analysis’ tab\n     - All files related to the analysis tab are stored under `src/components/analysis`\n\n## :heart: Contributing\n\nYour contributions make the platform better and more useful to everyone! The contributions you make will be greatly appreciated. \n\nTo do so:\n1. Fork the project\n2. Create a branch\n3. Add your changes\n4. Push to the branch\n5. Open a Pull Request.\n\n## :pencil2: Built With\n\n  - [React.js](https://reactjs.org/) - Front end library\n  - [Node.js](https://nodejs.org/en/) - Runtime environment for JS\n  - [Express.js](https://expressjs.com/) - Web framework for NodeJS\n  - [Material-UI](https://material-ui.com/) - Front end component\n    library\n  - [react-bootstrap](https://react-bootstrap.github.io/) - Front end\n    component library\n  - [recharts](https://recharts.org/en-US/) - Charting library\n\n## :clipboard: License\n\nGraphVega is distributed under the **MIT** license. See `LICENSE.md` for\nmore information.\n\n## :mailbox_with_mail: Contact\n\n[Rahul Joshi](https://www.linkedin.com/in/rahuljoshi4/) -\nrjoshi9@umd.edu\n\nFeel free to contact me regarding any concerns about the app.\n\n## :punch: Acknowledgements\n\nThanks to [Tradier](https://tradier.com/) for the market data used on\nthe platform.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahuljoshi44%2FGraphVega","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frahuljoshi44%2FGraphVega","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahuljoshi44%2FGraphVega/lists"}