This virtual work experience opportunity was provided by the Forage and JPMorgan Chase & Co. I chose to participate in the program because I wanted to gain more experience working with technologies like Git, Python, TypeScript, Node.js, React, and JPMorgan's open-source Perspective web application.
All participants of this program were required to submit Git patches for each task to show proof of task completion. My Git patches for each task are saved in the Folder 'Git-Patch-Files'.
- Set up a development environment and make corrections to functions in the supplied Python code to allow it to interface with a stock-price data feed.
- Fix errors in the supplied typescript code to prepare the Perspective web application to visually display data in a graph.
- Edit a function in the supplied typescript code to ensure that the Perspective web app displayed the stock price data in accordance with the project's business requirements.
- The business requirements required the final web application to:
- display and track the ratio between two stock prices over time
- display upper and lower bounds based on the ratios
- trigger an alert if those thresholds were crossed to enable the stock traders to determine if a potential trading opportunity existed.
- The business requirements required the final web application to:
I produced a short video to share my approach to completing the final project and to show my final working version of the application. The video is available on YouTube at the below link:
- I recommend setting up the development environment for this project in a virtual environment. This will make it easy to create snapshots that can be used to revert to a previous state if needed.
- I initially started this project using Replit because I did not want to install all of the project dependencies on my main system. However, I encountered some difficulties getting the required npm modules installed in Replit, so I used VirtualBox to set up a development environment for tasks 2 and 3.
- The biggest challenge that I faced with this project was getting the development environment set up correctly. The project instructions give the option of using Python 2 or Python 3 for your development environment, so I used Python 3. However, I later found that the npm modules provided in the project's starter code were dependent on Python 2.7. After reading through the project's troubleshooting documentation and doing some research, I found that the issue could be fixed by installing the correct build tools from an elevated PowerShell terminal using:
npm install -g windows-build-tools
. The solution was found at the following link, under Environment setup and configuration->Prerequisites->Option 1: https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#prerequisites.