Refreshr App Week 3

February 28, 2019

Part 1 - Individual Accomplishments

week3 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 on implementing the sendgrid flow this week for creating a new class, students, refreshr, and scheduling the refreshr. It's a very stepwise process with data from the preceding steps to progress to the next. I used a promise chain to send data and store the validates id's that return from the Sendgrid server. I also had to go back to add another Sendgrid operation to deal with recipients (students).

We also ran into a repository situation which we had to clean up as a team. It was definitely a learning experience for my team to learn to pull before pushing and also resolving merge conflicts early and often. We managed to restore the repository back to normal at the cost of time but we are richer in experience.

Ticket 1 Github Ticket 1 Trello -Added recipient operations
-Got updateRecipient() and deleteRecipients() operations working
-Also moved refreshrs (aka campaigns) to the bottom for flow clarity

Ticket 2 Github Ticket 2 Trello -Did a folder restructuring for client files

Ticket 3 Github Ticket 3 Trello -Added a working copy of the sendgrid flow from list form all the way to a scheduled refreshr
-Data was fabricated until we can plug in from our database

Ticket 4 Github Ticket 4 Trello -add papaparse to sendgrid flow
-change first and last name on the helpers of server folder

Detailed Analysis: Ticket 3


This was a big pull request for me. It was a function that pulls 5 different Sendgrid operations in one big promise chain. The Sendgrid flow was necessary because the final step requires id's that are created by Sendgrid upon successful creation of different lists, recipients, refreshrs. We decided to send it all at the end to make the process more streamlined.


In the photo, you can see that a campaign was successfully scheduled for a specified date (March 1st 8AM). It added the new list first got back an id, then added recipients and obtained an array of id's, then we attach the recipient id's to the list we created, then added a new campaign with the selections we just made, then we finally schedule the campaign in the last step. That's a total of 5.



The last 2 photos shows some of the promise methods that were used in the sendAllToSendgrid function in the parent component. Upon a successful resolve, the data received from the Sendgrid server is passed back to the parent component so we can extra necessary id's and information for out database.

Part 2 - Milestone Reflections

As a part of your journal entry, write ¼ to ½ a page reflecting on your experiences working with a team to convert a disparate set of components into a single, cohesive, and complete product. Describe the challenges you faced and the steps you took to overcome them.

We had a lot of client components on the front end that were spread out everywhere. I took it for the team to consolidate all the components into a cohesive and logical. I followed a page and view folder structure for the macro level. If the page has forms or extra components, I would make extra folders inside of that. For other files, I would keep them at the root of the client folder for easy access. We also had an index.js file before too which holds all the components for easy reference, which basically we imported in and exported out.

You can see more of the restructure in the PR #75.

As a group, demonstrate that you project has implemented every feature in the specification. Bugs can be present, and a rough experiences is expected. List each major feature in your specification and provide a link to where that feature is implemented

Auth0 Protected Routes Sendgrid Papaparse