Advice
For the first two weeks, I took all of the training modules that PayPal had to offer on ReactJS and Node.js. Prior to this internship, I had had experience in HTML, Javascript, and CSS. I kept wanting to dive into the project right away and apply what I had learned, but thanks to the advice of Terry, taking the time was one of the right ways to go about it and also make sure that I had the fundamentals down. It definitely was a bit of a learning curve but after these two weeks, I dove in!
I was given the skeleton application to start off with. I looked at each file and mentally drew a map of how the different entry points created the React application and followed the MVC model. When I started adding in my first React component, I noticed that the application used CommonJS syntax and I had learned ES6 syntax. To best utilize the time that I had, I asked if there was a way to transform the app into an ES6-based app. Because my team primarily focuses on back-end, Terry and Beka always made sure that I had at least a few points of contact and the tools that I needed.
I reached out to a full-stack Javascript developer, Jeff, who was part of another Credit Engineering sub-team in Maryland. He mentioned a PayPal-specific starter sample-app with ES6 syntax and helped me migrate the code that I had from the skeleton app to the sample-app. He became my unofficial Javascript mentor and helped me out immensely with this project whenever I had a PayPal-specific JS question – he is better than StackOverflow!
With this sample-app, I was able to easily transfer the knowledge that I had learned from the trainings, and take off. I figured out how to make REST calls using axios and display tables via React-Bootstrap to show the JSON data. I was also able to create a form component using Redux-forms. This component allowed the Credit Engineering developers to create financing resources programmatically instead of manually. By the time Week 8 came, I was able to successfully build and deploy the application.
The highlight of this project happened during the last three weeks of my internship – the SSO task. With the number of tasks presented, it wasn’t expected for me to get to the SSO task. However, I personally made a goal to challenge myself and make it to the SSO task. On Week 10, I was assigned the task of figuring out how to implement SSO (Single Sign-On) with 2-Factor Authentication into this application – I was so excited! With the help of the strong network that PayPal cultivates, I reached out to a couple of interns from San Jose who implemented SSO into their JS application. With the help of their document, I was able to figure out the setup, which was slightly different because the Credit Admin Console app was based off of a different sample-app than the one that they had used. As I was making the changes, I documented the process that I went through and created a document for my team as well as other teams to use as a source of truth. After communicating with the SSO team and verifying that I had the correct setup for Node.js, I was able to access the app, provide authentication on my phone, and then successfully log into the app online!