Refreshr App Week 2

Created: February 14, 2019
Updated: November 14, 2019

Part 1 - Individual Accomplishments

week2 My github: timh1203

Provide a paragraph (5-8 sentences) summarizing the work you did this week, the challenges you faced, the tools you used, and your accomplishments

I worked with the SendGrid V3 API this week and connecting it to the backend of our database. The platform has many operations to created campaigns, lists, recipients, and senders. I mapped over these commands to make axios calls on our front end and the attempted to connect the database to the front end.

The challenge was the shape of the information in our database differs from the Sendgrid API. There are also certain fields that are required on Sendgrid that are not present in our database also. Therefore, we had to rethink the shape of our data and find an entry point for the user (teacher) to supply the information in a step-wise fashion.

There was also the challenge of having all the necessary pieces of information filled out before submitting a new campain. It's necessary to have the senders, recipients, and lists created before you submit the campaign. This challenge makes it so that we have to present the forms in a logical order to capture the crucial pieces of data required by SendGrid.

I also updated the readme accordingly to keep up with the changes. I added information about the Sendgrid API and also added information for the deployment section about Heroku and Netlify.

Ticket 1 Github Ticket 1 Trello -set up the general layout of the classes page
-set up sender form logic and fields
-used react hooks in sender form
-set up logic to switch to recipient forms after sender form is submitted

Ticket 2 Github Ticket 2 Trello -setup a general layout for the classes page

Ticket 3 Github Ticket 3 Trello -has all my sendgrid axios calls
-fixed merge conflicts coming from folder restructuring
-fixed name from NavCrumbs to navcrumbs across all components

Ticket 4 Github Ticket 4 Trello -installed sendgrid/mail npm package
-added code to send sample email
-create general FE interface component
-added code to run GET request to SendGrid API in the component

Detailed Analysis: Ticket 1


I worked on the SendGrid V3 API. As part of the student github developer pack, they also offered an improved service tier which I tried to obtain but have not heard back from them. Regardless, I proceed to make a free account which allows for 40,000 free emails in the first 30 days and then 100/day after that. The 100 email limit/day is free forever and a contact list of 2,000 contacts are also free. At the end of the week, I found out that I was not accepted and looking into reapply for the packe.

I played around with their web platform interface to see what fields are available, read the docs to see what endpoints I can target, and getting a feel for how information flows through the process. Then, I proceeded to add axios calls with various send request bodies to start making campaigns, storing recipients and senders, and making lists of how to send it out email to students.

The unique thing about the SendGrid V3 API is that it has CRUD operations for 5 different data stores and it took some time to go through and map them. Even though they had a web platform, we had to adapt the API to our api so users can use it within our application. All the calls were success except I'm running into difficulties with axios.patch() and axios.delete() calls. There's something about the body and headers being sent in with axios that doesn't seem to match. I've looked through both the axios and Sendgrid documentation and there is definitely a nuance that I am missing. Regardless, I will continue to look into it and lean on my support network to see if we can flush this out.



Part 2 - Milestone Reflections

What did you do to help the team solidify as a group? What did you do that you now realize caused friction in this process? What are you doing personally to make sure that everyone on the team, including you, has a voice in decision making?

I invite the team to speak out their opinions when "I am thinking out loud". I still think I could communicate more about what I need to work better on the project. My teammates are usually working on their own codebase and can't possibly know that I might need to connect to the backend unless I communicate this.

I think just asking other's opinions helps gets their voice heard. Sometimes, it's easy to fade into the background during group chatter. I need to change the messages I'm saying by perhaps using phrases like "this is what I did", "this is what I need", "I would like to hear what you think about xyz".

I feel like I have been doing better this week about being vocal about my needs. My group members are pretty relaxed and I made sure not fall into the same mode. I think I handled opinions slightly better this week and explained through my opinions clearly without force.