Front-end developer experienced in JavaScript-based programming with a background in foreign language instruction and translation and a proven ability to adapt and collaborate in rapidly changing work environments and team compositions as well as work independently. Worked through 1000+ hours of Bootcamp where I learned JavaScript and Ruby on Rails while consistently assisting my classmates to debug and refactor their code. During that time, I built five web applications including one with React/Redux. Supplemented this bootcamp with self-taught knowledge and experience in Angular, Data Structures and Algorithms, and most recently Jest and Cypress testing. Cre
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const _ = require('lodash') | |
const { Path } = require('path-parser') | |
const { URL } = require('url') // methods to parse url, we will use URL | |
const mongoose = require('mongoose') | |
const requireLogin = require('../middlewares/requireLogin') | |
const requireCredits = require('../middlewares/requireCredits') | |
const Mailer = require('../services/Mailer') | |
const surveyTemplate = require('../services/emailTemplates/surveyTemplate') | |
const Survey = mongoose.model('surveys') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const sgMail = require("@sendgrid/mail"); | |
const keys = require("../config/keys"); | |
class Mailer { | |
constructor({ subject, recipients }, content) { | |
sgMail.setApiKey(keys.sendGridKey); | |
this.msg = { | |
to: recipients.map(({ email }) => email), | |
from: "no-reply@emaily.com", | |
subject: subject, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
addPhotoToUser = (user, data) => { | |
fetch(`${apiBaseUrl}/api/v1/users/${user.id}`, { | |
method: 'PATCH', | |
headers: { | |
'Authorization': `Bearer ${localStorage.jwt}`, | |
}, | |
body: data | |
}) | |
.then(resp => resp.text()) | |
.then(data => window.location.href = "/profile") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { useState } from "react"; | |
import styled from "@emotion/styled"; | |
import axios from "axios"; | |
import Row from "./prebuilt/Row"; | |
import BillingDetailsFields from "./prebuilt/BillingDetailsFields"; | |
import SubmitButton from "./prebuilt/SubmitButton"; | |
import CheckoutError from "./prebuilt/CheckoutError"; | |
import { CardElement } from '@stripe/react-stripe-js' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react' | |
import Radium from 'radium' | |
const Puppy = ( props ) => { | |
const style = { | |
'@media (min-width: 500px)': { | |
width: '450px' | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, { Component } from 'react' | |
import Radium, { StyleRoot } from 'radium' | |
import Person from './Puppy' | |
class App extends Component { | |
state = { | |
puppies: [ | |
{ id: 1, name: 'Rover', age: 8 }, | |
{ id: 2, name: 'Fifi', age: 3 }, | |
{ id: 3, name: 'Slagathor', age: 1 } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
describe('Form', () => { | |
beforeEach(() => { | |
cy.visit('/') | |
}) | |
// 1. We have an HTML element of type form with a class 'city-country'. | |
it('it has a country-city form', () => { | |
cy.get('form').should('have.class', 'country-city') | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, { useState } from "react" | |
import { connect } from 'react-redux' | |
import { getWeatherData } from '../redux/actions.js' | |
import Button from 'react-bootstrap/Button' | |
const Form = ({ getWeatherData, setFetchingTrue, clearWeatherData }) => { | |
let error = 'City and Country cannot be left blank' | |
const [ city, setCity ] = useState('') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function binaryPatternMatching4(pattern, string) { | |
string = string.replace( | |
/[aeiouy]/gi, '0' | |
).replace( | |
/[bcdfghjklmnpqrstvwxz]/gi, '1' | |
) | |
let matches = 0 | |
let stop = string.length - pattern.length | |
for (let i = 0; i <= stop; i++) { | |
let substring = string.substr(i, pattern.length) |
NewerOlder