{"version":3,"sources":["components/Contact.js","components/Social.js","components/Footer.js","components/About.js","components/Testimonials.js","components/Skills.js","components/Home.js","base.js","components/EditProject.js","components/ProjectBrief.js","components/SingleProject.js","components/Projects.js","components/TechSkills.js","components/References.js","components/ResumeGallery.js","images/logos/Houli_logo_white.png","images/logos/LightHouse.png","images/logos/SprocketLogo-WhiteTransparent.png","components/ProExperience.js","images/logos/Bristol_Logo.png","images/logos/Devon_Logo.png","images/logos/ku.png","images/logos/centriq.png","components/Education.js","images/logos/FSH.png","images/logos/kcyha.png","images/logos/lvs_logo_responsive.png","components/Volunteer.js","components/Resume.js","components/Resources.js","images/JRCTECH-logo-invert.png","components/NavElement.js","components/Login.js","sample-resources.js","sample-projects.js","components/AddResource.js","components/ResourceGallery.js","components/LoggedIn.js","components/ProjectAdmin.js","App.js","reportWebVitals.js","index.js"],"names":["Contact","recaptchaInstance","useState","name","setName","email","setEmail","message","setMessage","setLoader","capPass","setCapPass","className","onSubmit","e","preventDefault","alert","emailjs","send","reply_to","catch","error","target","reset","placeholder","value","onChange","ref","sitekey","render","verifyCallback","response","type","library","add","fas","far","fab","Social","Fragment","icon","href","React","Component","Footer","id","Date","getFullYear","About","props","state","elevatorPitch","rel","Testimonials","testimonial","desc","role","Skills","Home","tag","firebaseApp","firebase","initializeApp","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","base","Rebase","createClass","database","storage","EditProject","fileRef","createRef","updateProject","handleChange","event","console","log","currentTarget","projects","update","index","showUpload","setState","newImage","file","image","current","files","child","put","on","snapshot","progressTrack","bytesTransferred","totalBytes","progress","getDownloadURL","then","url","Modal","dialogClassName","show","onHide","size","aria-labelledby","centered","Header","closeButton","Body","src","alt","onClick","ProgressBar","striped","variant","now","label","siteURL","tech","brief","ProjectBrief","showBrief","onHideBrief","style","backgroundImage","SingleProject","deleteProject","showProject","showEdit","title","site","Projects","changeFilter","x","technology","document","getElementById","classList","remove","Object","keys","map","key","filter","TechSkills","References","ResumeGallery","class","project","ProExperience","renderProjects","company","houProjects","item","houImage","description","sprocketsImage","fsdpImage","Education","centriqLogo","xmlns","width","height","fill","clipPath","d","kuImg","Volunteer","fshLogo","kcyhaLogo","lvsLogo","Resume","showSkills","showSection","showPro","showEd","showVol","showRefs","Resources","updateResource","resources","deleteResource","resource","language","NavElement","imgStyle","Navbar","collapseOnSelect","bg","expand","fixed","Brand","Toggle","aria-controls","Collapse","Nav","defaultActiveKey","Link","as","home","resume","contact","Login","authenticate","category","useCase","AddResource","nameRef","descRef","typeRef","urlRef","languageRef","createResource","addResource","required","ResourceGallery","showLang","lang","LoggedIn","user","logout","ProjectAdmin","techRef","siteRef","briefRef","createProject","showPreview","addProject","componentDidMount","this","App","showHome","showContent","window","scrollTo","top","behavior","showProjects","showResume","showContact","showResources","authHandler","authData","a","uid","uemail","urole","set","authProvider","auth","GoogleAuthProvider","signInWithPopup","signOut","loadSampleResources","sampleResources","loadSampleProjects","sampleProjects","updatedResources","updatedProjects","showType","htmlFor","bind","syncState","context","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM"],"mappings":"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","file":"static/js/main.55e7dddc.chunk.js","sourcesContent":["import React, { useState } from 'react';\r\nimport emailjs from 'emailjs-com';\r\nimport ReCaptcha from 'react-recaptcha'\r\n\r\nconst Contact = () => {\r\n const [name, setName] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const [loader, setLoader] = useState(false);\r\n const [capPass, setCapPass] = useState(false);\r\n\r\n let recaptchaInstance;\r\n\r\n const recaptchaReset = () => {\r\n recaptchaInstance.reset();\r\n }\r\n const recapthcaLoaded = (response) => {\r\n if(response){\r\n setCapPass(true);\r\n }\r\n }\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n setLoader(true);\r\n if(capPass == true){\r\n alert(\"Message has been submitted.\");\r\n emailjs.send('gmail', 'gmailTemplate', {\r\n name: name,\r\n email: email,\r\n message: message,\r\n reply_to: email\r\n },\r\n 'user_XCYeGm6H2BMHIOpeusLLW'\r\n ).catch((error) => {\r\n alert(error.message);\r\n setLoader(false);\r\n });;\r\n e.target.reset();\r\n setLoader(false);\r\n setName('');\r\n setEmail('');\r\n setMessage('');\r\n recaptchaReset();\r\n setCapPass(false);\r\n }\r\n else{\r\n alert('Please prove you are a human!');\r\n }\r\n }\r\n\r\n \r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Contact Form

\r\n

Send a message and I will get back to you ASAP.

\r\n
\r\n setName(e.target.value)} />\r\n
\r\n
\r\n setEmail(e.target.value)} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n recaptchaInstance = e}\r\n sitekey=\"6LcjJWYaAAAAAOPQe3ydLgeOLNJPTElIcCbXo7Z_\"\r\n render=\"explicit\"\r\n verifyCallback={recapthcaLoaded}\r\n />\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Contact;\r\n","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\n\r\n// Add all icons to the library so you can use it in your page\r\nlibrary.add(fas, far, fab)\r\n\r\nclass Social extends React.Component {\r\n render = () =>\r\n \r\n
\r\n

getsocial \r\n \r\n

\r\n\r\n
\r\n
\r\n}\r\n\r\nexport default Social;","import React from 'react';\r\nimport Social from './Social';\r\n\r\nclass Footer extends React.Component {\r\n render = () =>\r\n \r\n}\r\n\r\nexport default Footer;","import React from 'react';\r\n\r\nclass About extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n elevatorPitch: \r\n
\r\n

I worked for close to a decade in the non-profit sector, leading large teams of volunteers and crafting programs based on the needs of the clientele I was serving...in those days, mainly young families. In these positions, I learned many lessons about leadership, reliability, and teamwork. While I remained quite successful, I needed a career field where it was necessary that I continue to learn new things everyday.

\r\n \r\n

That's where Centriq comes in: I attended Centriq Training from April - July 2018 as a student in the Full Stack Web Developer track. Upon completion of that training in ASP.NET MVC, I began working at Houlihans Restaurants Inc., as a Mid-Level Front End Developer in a contract role. There I crafted 12 websites for Bristol Seafood Grill, Devon Seafood Grill, and crafted a location search in a SQL Server stored procedure.

\r\n

During my time as a contractor, Centriq Training offered me an instructor role in the Full Stack Web Developer track. For the past two years, I have taught individuals to make the career change to web development.

\r\n

Meanwhile, I have also worked as a freelancer for two small businesses: Angel Healthcare and Sprockets Burgers. I would love to be considered for any role where I can continue to grow my skillset, and have sought opportunities to build my technology stack.

\r\n
\r\n
\r\n \r\n };\r\n }\r\n\r\n\r\n render = () =>\r\n
\r\n
\r\n

Who Am I?

\r\n
\r\n
\r\n
\r\n {this.state.elevatorPitch}\r\n
\r\n
\r\n
\r\n\r\n}\r\n\r\nexport default About;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { far } from '@fortawesome/free-regular-svg-icons';\r\nimport { fab } from '@fortawesome/free-brands-svg-icons';\r\n\r\nlibrary.add(fas, far, fab);\r\n\r\nclass Testimonials extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n testimonial: {\r\n name: \"Tony Lee\",\r\n role: \"Operations Engineering Team Lead, Garmin\",\r\n desc: \"First and foremost, James is just a great person to work with. He always has a smile on his face and carries himself in a very respectful and positive manner. James has an excellent ability to multi-task and manage specific details of each task with a high level of detail. He has excellent communication skills that focus on careful listening and positive delivery in a timely fashion. Finally, James takes responsibility and ownership for the work he does and is able to take feedback from others to continuously improve himself and his work.\"\r\n }\r\n }\r\n }\r\n render = () =>\r\n
\r\n
\r\n

What They Say...

\r\n
\r\n
\r\n

\r\n \r\n {this.state.testimonial.desc}\r\n \r\n

\r\n
\r\n

{this.state.testimonial.name}

\r\n

{this.state.testimonial.role}

\r\n
\r\n
\r\n
\r\n\r\n}\r\n\r\nexport default Testimonials;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\n\r\n// Add all icons to the library so you can use it in your page\r\nlibrary.add(fas, far, fab)\r\n\r\nclass Skills extends React.Component {\r\n render = () =>\r\n
\r\n
\r\n

My Tech Stack

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

React

\r\n

I teach ReactJS to students at Centriq Training, and have created my personal site using React. Using React, I have also utilized hooks and code packages to create an effective portfolio website.

\r\n
\r\n
\r\n \r\n

ASP.NET

\r\n

I teach ASP.NET MVC 5 to students at Centriq and have crafted multiple applications in this technology, utilizing tools like Entity Framework and others to create dynamic web applications.

\r\n
\r\n
\r\n \r\n

JavaScript

\r\n

I teach pure JS to students at Centriq Training, and have also utilized libraries such as jQuery to create interactive UI designs, find a user's geolocation coordinates, and more.

\r\n
\r\n
\r\n \r\n

Source Control

\r\n

I teach about source control at Centriq, and have the foundational competencies in source control using git. I also have utilized source control in my professional development at Houlihans.

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n}\r\n\r\n\r\nexport default Skills;","import React from 'react';\r\nimport About from './About';\r\nimport Social from './Social';\r\nimport Testimonials from './Testimonials';\r\nimport Skills from './Skills';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\n\r\n\r\n// Add all icons to the library so you can use it in your page\r\nlibrary.add(fas, far, fab)\r\n\r\n\r\nclass Home extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n name: \"James Caldwell\",\r\n role: \"\",\r\n tag: \"Leverage the digital marketplace for your company...\"\r\n }\r\n\r\n }\r\n\r\n\r\n render = () =>\r\n \r\n
\r\n
\r\n
\r\n

{this.state.name}

\r\n

{this.state.role}

\r\n \r\n

{this.state.tag}

\r\n
\r\n

Scroll for more about me...

\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n}\r\n\r\nexport default Home;","import Rebase from 're-base';\r\nimport firebase from 'firebase';\r\n\r\nconst firebaseApp = firebase.initializeApp({\r\n apiKey: \"AIzaSyBcJF8npZdqbf7IjVxoKJpxJaWSc2TFAhg\",\r\n authDomain: \"personalsite-4fd26.firebaseapp.com\",\r\n databaseURL: \"https://personalsite-4fd26-default-rtdb.firebaseio.com\",\r\n projectId: \"personalsite-4fd26\",\r\n storageBucket: \"personalsite-4fd26.appspot.com\",\r\n messagingSenderId: \"785473010661\",\r\n appId: \"1:785473010661:web:f2c1287aa4d578816e4d0c\",\r\n measurementId: \"G-6003QNQDF3\"\r\n});\r\n\r\nconst base = Rebase.createClass(firebaseApp.database());\r\nconst storage = firebaseApp.storage();\r\n\r\n\r\nexport {firebaseApp};\r\nexport {storage};\r\nexport default base;\r\n\r\n","import React from 'react'\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\nimport {storage} from '../base'\r\nimport ProgressBar from 'react-bootstrap/ProgressBar'\r\n\r\nlibrary.add(fas, far, fab);\r\n\r\nexport default class EditProject extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n showUpload : false,\r\n image: this.props.projects.image,\r\n progress: 0\r\n }\r\n }\r\n fileRef = React.createRef();\r\n\r\n updateProject = e =>{\r\n this.props.updateProject(e);\r\n }\r\n \r\n handleChange = event => {\r\n event.preventDefault();\r\n\r\n console.log(event.currentTarget.value);\r\n \r\n const updateProject = {...this.props.projects, \r\n [event.currentTarget.name] : event.currentTarget.value\r\n };\r\n this.props.update(this.props.index, updateProject);\r\n }\r\n\r\n \r\n\r\n showUpload = () => {\r\n this.state.showUpload === false ? this.setState({showUpload : true}) : this.setState({showUpload : false})\r\n }\r\n\r\n newImage = file => {\r\n const image = this.fileRef.current.files[0];\r\n\r\n \r\n \r\n const uploadTask = storage.ref('uploads').child(this.props.projects.name).put(image);\r\n uploadTask.on(\"state_changed\", (snapshot) => {\r\n //Progress\r\n var progressTrack = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;\r\n this.setState({ progress: progressTrack });\r\n \r\n }, console.error, () => {\r\n storage.ref('uploads').child(this.props.projects.name).getDownloadURL()\r\n .then((url) => {\r\n console.log(url);\r\n //add db logic here \r\n const updateProject = {...this.props.projects, image: url};\r\n this.props.update(this.props.index, updateProject);\r\n this.setState({ image : url});\r\n \r\n \r\n });\r\n\r\n })\r\n \r\n }\r\n\r\n \r\n render = () => \r\n \r\n \r\n

Edit {this.props.projects.name}

\r\n
\r\n \r\n
\r\n {this.props.projects.name}\r\n
\r\n \r\n
\r\n \r\n
\r\n {this.state.progress != 0 &&\r\n \r\n \r\n \r\n }\r\n
\r\n {this.state.showUpload === true &&\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n }\r\n","import React from 'react';\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport ModalHeader from 'react-bootstrap/ModalHeader'\r\nimport ModalTitle from 'react-bootstrap/ModalTitle'\r\nimport ModalBody from 'react-bootstrap/ModalBody'\r\nimport ModalFooter from 'react-bootstrap/ModalFooter'\r\nimport Button from 'react-bootstrap/Button'\r\n\r\nclass ProjectBrief extends React.Component {\r\n\r\n render = () =>\r\n \r\n \r\n

Case Brief

\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{this.props.name}

\r\n \r\n

\r\n {this.props.brief}\r\n

\r\n
\r\n Go To Site \r\n
\r\n \r\n
\r\n \r\n \r\n}\r\n\r\nexport default ProjectBrief;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\nimport EditProject from './EditProject';\r\nimport ProjectBrief from './ProjectBrief';\r\n\r\nlibrary.add(far, fas, fab);\r\n\r\n\r\nclass SingleProject extends React.Component{\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n site: '',\r\n brief: '',\r\n showEdit: false,\r\n showBrief: false\r\n }\r\n }\r\n \r\n\r\n deleteProject = e => {\r\n this.props.deleteProject(e);\r\n }\r\n\r\n updateProject = e =>{\r\n this.props.updateProject(e);\r\n }\r\n\r\n showProject = () => {\r\n this.state.showEdit === false ? this.setState({showEdit: true}) : this.setState({showEdit:false});\r\n }\r\n\r\n showBrief = () => {\r\n this.state.showBrief === false ? this.setState({showBrief: true}) : this.setState({showBrief: false})\r\n }\r\n render = () =>\r\n \r\n
\r\n
\r\n {this.props.role == \"Admin\" &&\r\n
\r\n \r\n \r\n
\r\n }\r\n

{this.props.name}

\r\n
\r\n Project Bio\r\n Go To Site\r\n
\r\n \r\n
\r\n {this.state.showEdit == true &&\r\n \r\n }\r\n\r\n{this.state.showBrief == true &&\r\n \r\n }\r\n \r\n
\r\n\r\n \r\n}\r\n\r\nexport default SingleProject;","import React from 'react';\r\nimport SingleProject from './SingleProject';\r\n\r\n\r\nclass Projects extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n technology: \"All\"\r\n }\r\n }\r\n\r\n\r\n changeFilter = x => {\r\n this.setState({technology: x}); \r\n var button = document.getElementById('All');\r\n button.classList.remove('active');\r\n \r\n }\r\n render = () =>\r\n
\r\n
\r\n
\r\n

Projects

\r\n
\r\n
\r\n

{this.state.technology}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {this.state.technology === \"All\" &&\r\n Object.keys(this.props.projects).map(key =>\r\n \r\n )}\r\n {this.state.technology != \"All\" &&\r\n Object.keys(this.props.projects).filter(x => this.props.projects[x].tech === this.state.technology).map(key =>\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n}\r\n\r\nexport default Projects;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\n\r\n\r\n// Add all icons to the library so you can use it in your page\r\nlibrary.add(fas, far, fab)\r\n\r\n\r\nclass TechSkills extends React.Component {\r\n render = () =>\r\n
\r\n

Tech Skills

\r\n

In the past 3 years of development experience, I have learned the below languages/technologies which have allowed me to become a more efficient developer. Beyond the technologies that I have picked up, I pride myself on innovation and problem-solving. If there are technologies to learn, I thrive on curiosity and perseverance to pick up new concepts and implement them to bring valuable solutions to my clientele.

\r\n\r\n
\r\n
\r\n
\r\n

Front End

\r\n
    \r\n
  • \"HTML5
  • \r\n
  • \"CSS3
  • \r\n
  • \"JavaScript
  • \r\n
  • \"React
  • \r\n
  • \"Bootstrap
  • \r\n
  • \"jQuery
  • \r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n

Middle Tier

\r\n
    \r\n
  • \"C#\"
  • \r\n
  • \"ASP.NET\"
  • \r\n
  • \"Node.js\"
  • \r\n
\r\n
\r\n
\r\n

Back End

\r\n
    \r\n
  • \"Firebase
  • \r\n
  • \"Sql
  • \r\n
  • \"SQL\"
  • \r\n
  • \"JSON\"
  • \r\n
  • \"XML\"/
  • \r\n
\r\n
\r\n
\r\n

General Tech Skills

\r\n
    \r\n
  • \"Node
  • \r\n
  • \"Visual
  • \r\n
  • \"Trello\"
  • \r\n
  • \"Office
  • \r\n
  • \"GitHub
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n}\r\n\r\nexport default TechSkills;","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React from 'react';\r\n\r\nclass References extends React.Component {\r\n\r\n render = () =>\r\n
\r\n

References

\r\n
\r\n

Under Construction...
Check back soon!

\r\n {/*
\r\n

Jenna Beckett

\r\n

Full Stack Web Developer Track Team Lead @ Centriq Training

\r\n
\r\n

How do I know James?

\r\n

I taught James at Centriq while he was making the career change, and also had the privilege of working with him when he started as an instructor at Centriq.

\r\n

What are James' strengths?

\r\n

James is a diligent worker who is not afraid to say when he doesn't know. However, he will persevere until he finds an answer.

\r\n

He also works well with teams, collaborating and adding value to the teams he works on. James is good at finding a role that is of need and assuming that role for the success of the team.

\r\n

What is an example of a tough situation where James' talents shined?

\r\n

James had a difficult task ahead of him in teaching ReactJS under a very small window of time learning React. He spent the time to learn the content well, and has become one of the go-to instructors when it comes to React.

\r\n
\r\n
\r\n
\r\n

Jeff DeMaranville

\r\n

Full Stack Web Developer Track Instructor @ Centriq Training

\r\n
\r\n

How do I know James?

\r\n

I taught James at Centriq while he was making the career change, and also had the privilege of working with him when he started as an instructor at Centriq.

\r\n

What are James' strengths?

\r\n

James is a diligent worker who is not afraid to say when he doesn't know. However, he will persevere until he finds an answer.

\r\n

He also works well with teams, collaborating and adding value to the teams he works on. James is good at finding a role that is of need and assuming that role for the success of the team.

\r\n

What is an example of a tough situation where James' talents shined?

\r\n

James had a difficult task ahead of him in teaching ReactJS under a very small window of time learning React. He spent the time to learn the content well, and has become one of the go-to instructors when it comes to React.

\r\n
\r\n
\r\n
\r\n

Andrea Pedersen

\r\n

Director of Career Operations @ Centriq Training

\r\n
\r\n

How do I know James?

\r\n

I taught James at Centriq while he was making the career change, and also had the privilege of working with him when he started as an instructor at Centriq.

\r\n

What are James' strengths?

\r\n

James is a diligent worker who is not afraid to say when he doesn't know. However, he will persevere until he finds an answer.

\r\n

He also works well with teams, collaborating and adding value to the teams he works on. James is good at finding a role that is of need and assuming that role for the success of the team.

\r\n

What is an example of a tough situation where James' talents shined?

\r\n

James had a difficult task ahead of him in teaching ReactJS under a very small window of time learning React. He spent the time to learn the content well, and has become one of the go-to instructors when it comes to React.

\r\n
\r\n
\r\n
\r\n

Duane Slaughbaugh

\r\n

Developer @ Houlihans Restaurants Inc.

\r\n
\r\n

How do I know James?

\r\n

I taught James at Centriq while he was making the career change, and also had the privilege of working with him when he started as an instructor at Centriq.

\r\n

What are James' strengths?

\r\n

James is a diligent worker who is not afraid to say when he doesn't know. However, he will persevere until he finds an answer.

\r\n

He also works well with teams, collaborating and adding value to the teams he works on. James is good at finding a role that is of need and assuming that role for the success of the team.

\r\n

What is an example of a tough situation where James' talents shined?

\r\n

James had a difficult task ahead of him in teaching ReactJS under a very small window of time learning React. He spent the time to learn the content well, and has become one of the go-to instructors when it comes to React.

\r\n
\r\n
*/}\r\n
\r\n
\r\n}\r\n\r\nexport default References;","import React from 'react'\r\n\r\n\r\n\r\nclass ResumeGallery extends React.Component {\r\n \r\nrender = () => \r\n \r\n \r\n {this.props.image !== \"\" &&\r\n {((this.props.project)}\r\n {this.props.image == \"\" &&\r\n

{this.props.project}

\r\n }\r\n
\r\n \r\n}\r\n\r\nexport default ResumeGallery;","export default __webpack_public_path__ + \"static/media/Houli_logo_white.ba603d25.png\";","export default __webpack_public_path__ + \"static/media/LightHouse.4bb3387e.png\";","export default __webpack_public_path__ + \"static/media/SprocketLogo-WhiteTransparent.b87802ec.png\";","import React from 'react';\r\nimport './ResumeGallery';\r\nimport ResumeGallery from './ResumeGallery';\r\nimport houImage from '../images/logos/Houli_logo_white.png';\r\nimport bristolImage from '../images/logos/Bristol_Logo.png';\r\nimport devonImage from '../images/logos/Devon_Logo.png';\r\nimport fsdpImage from '../images/logos/LightHouse.png';\r\nimport sprocketsImage from '../images/logos/SprocketLogo-WhiteTransparent.png';\r\n\r\n\r\n\r\nclass ProExperience extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n houProjects: [\r\n {\r\n name: \"Houlihans\",\r\n company: \"hou\",\r\n class: \"houlihans\",\r\n image: houImage,\r\n description: \"Using a SQL Server Stored Procedure, I created the logic to take in a customer's location and populate a list of Houlihans restaurants that were closest to them. In this project, I utilized a stored procedure in a SQL Server database, and called that stored procedure from an MVC 5 Controller in an ASP.NET MVC application. The action in the controller returns JSON, which is then used to populate the location search results.\",\r\n url: \"http://hou.mx/HOU/SearchLocation?userInput=Kansas\"\r\n },\r\n {\r\n name: \"Bristol Seafood Grill\",\r\n company: \"hou\",\r\n class: \"bristol\",\r\n image: bristolImage,\r\n description: \"Using a paid version of DotNetNuke called Evoq, I crafted websites for each of the Bristol Seafood Grill locations throughout the country. I created the modules necessary to allow the marketing department to update their website in more effortless fashion. In this project, I utilized Evoq, HTML, CSS, and JavaScript to craft their websites. I also used tools such as Wave to ensure that the sites were ADA compliant and SEO-friendly.\",\r\n url: \"https://bristolseafoodgrill.com\"\r\n },\r\n {\r\n name: \"Devon Seafood + Steak\",\r\n company: \"hou\",\r\n class: \"devon\",\r\n image: devonImage,\r\n description: \"Using a paid version of DotNetNuke called Evoq, I crafted websites for each of the Devon Seafood locations throughout the country. I created the modules necessary to allow the marketing department to update their website in more effortless fashion. In this project, I utilized Evoq, HTML, CSS, and JavaScript to craft their websites. I also used tools such as Wave to ensure that the sites were ADA compliant and SEO-friendly.\",\r\n url: \"https://devonseafood.com\"\r\n },\r\n {\r\n name: \"Angel Health\",\r\n company: \"angel\",\r\n class: \"angel\",\r\n image: \"\",\r\n description: \"Built a website for a home healthcare service located in Texas. This site is built in an ASP.NET MVC 5 application, tied to a SQL Server database and uses Entity Framework as an ORM. Key custom functionalities include the Request for Service form, where a user can submit a request and that request is communicated to certain individuals. As well, this site is an SEO-friendly and mobile responsive design/layout.\",\r\n url: \"https://angelhealthcare.com\"\r\n },\r\n {\r\n name: \"Sprockets\",\r\n company: \"sprockets\",\r\n class: \"sprockets\",\r\n image: sprocketsImage,\r\n description: \"Built a small website for a startup restaurant in Salida, Colorado. This is an ASP.NET MVC Web Application tied to a SQL Server database through an Entity Framework ORM. Key functionalities include an AJAX Email Signup form, CRUD functionality for menu items on the site, and a functional contact form for customers to reach the company.\",\r\n url: \"http://sprocketsburgers.com\"\r\n },\r\n {\r\n name:\"Hat Trick Hockey\",\r\n company: \"centriq-student\",\r\n class: \"commerce\",\r\n image: \"\",\r\n description: \"Using ASP.NET MVC 5, I created an e-commerce site which is driven by a SQL Server database. In this project, I used Entity Framework and created many custom functionalities. Highlighted functionalities include Image Upload, Session-based Shopping Cart, and filtered views based on product attributes. Also included in functionalities are role-based authorization and backend (C#) validation to protect the integrity of the data.\",\r\n url: \"http://ustore.jamesrcaldwell.com\"\r\n },\r\n {\r\n name:\"Lighthouse\",\r\n company: \"centriq-student\",\r\n class: \"fsdp\",\r\n image: fsdpImage,\r\n description: \"Using ASP.NET MVC 5, I created a Reservation System which is driven by a SQL Server database. In this project, I used Entity Framework and created many custom functionalities. Highlighted functionalities include Image Upload, Model manipulation to improve the UX, and limiting the UI based on the user's role. Also included in functionalities are role-based authorization and backend (C#) validation to protect the integrity of the data.\",\r\n url: \"http://fsdp.jamesrcaldwell.com\"\r\n },\r\n {\r\n name:\"Dungeon Crawler\",\r\n company: \"centriq-student\",\r\n class: \"dungeon\",\r\n image: \"\",\r\n description: \"Creating a C# Console Application, I created a Dungeon Crawler that exhibits my understanding of key C#/OOP principles. Concepts such as creating custom class, inheritance, polymorphism, custom methods, and collections were reinforced through my construction of this application.\",\r\n url: \"#\"\r\n }\r\n ]\r\n }\r\n }\r\n\r\n renderProjects = (company) => {\r\n return this.state.houProjects.filter(x => x.company == company).map((item, index) => \r\n \r\n );\r\n }\r\n render = () =>\r\n
\r\n

Professional Experience

\r\n
\r\n

Centriq Training
[April 2019 - Current]

\r\n

Full Stack Web Developer Track Instructor

\r\n
\r\n
    \r\n
  • Excelling as an instructor teaching students to transition into IT careers as web developers
  • \r\n
  • Growing my instructing skills for team management in the classroom, enhancing my skills as a leader to give the best possible product to my clients
  • \r\n
  • Facilitating and crafting changes for curriculum to keep up with times
  • \r\n
  • Learning new technologies (ReactJS, Node.js, etc.) as needed to teach our curriculum
  • \r\n
  • Creating training videos to aid in the virtual training environment
  • \r\n
  • \r\n Growing in my debugging abilities as a developer, with many opportunities to better understand the inner workings of the programming languages/technologies we are teaching\r\n
  • \r\n
  • Earned Q2 Career Track Instructor of the Quarter Award in 2020 for exemplary performance
  • \r\n
\r\n
\r\n
\r\n
\r\n {this.renderProjects('centriq')}\r\n
\r\n
\r\n
\r\n
\r\n

Houlihans Restaurants Inc.
[Sept 2018 - Mar 2019]

\r\n

Front End Developer Contractor

\r\n
\r\n
    \r\n
  • Excelling as an instructor teaching students to transition into IT careers as web developers
  • \r\n
  • Growing my instructing skills for team management in the classroom, enhancing my skills as a leader to give the best possible product to my clients
  • \r\n
  • Facilitating and crafting changes for curriculum to keep up with times
  • \r\n
  • Learning new technologies (ReactJS, Node.js, etc.) as needed to teach our curriculum
  • \r\n
  • Creating training videos to aid in the virtual training environment
  • \r\n
  • \r\n Growing in my debugging abilities as a developer, with many opportunities to better understand the inner workings of the programming languages/technologies we are teaching\r\n
  • \r\n
  • Earned Q2 Career Track Instructor of the Quarter Award in 2020 for exemplary performance
  • \r\n
\r\n
\r\n
\r\n
\r\n {this.renderProjects('hou')}\r\n
\r\n
\r\n
\r\n
\r\n

Angel Healthcare
[Aug 2020 - Nov 2020]

\r\n

Freelance Full Stack Developer

\r\n
\r\n
    \r\n
  • Built a website for a home healthcare company located in Texas
  • \r\n
  • Website architecture: ASP.NET MVC Web Application, SQL Server, Entity Framework
  • \r\n
  • Successfully gathered the client's requirments and organized the development/deployment for this application
  • \r\n
  • Request Service Form - sends email to appropriate party in the company when a user sends a request
  • \r\n
  • Mobile Responsive Design utilizing CSS Media Queries/JavaScript implementations to create a mobile responsive design/layout
  • \r\n
  • SEO-friendly implementations using appropriate metatags and content to match, as well as creating an ADA-compliant design
  • \r\n
\r\n
\r\n
\r\n
\r\n {this.renderProjects('angel')}\r\n
\r\n
\r\n
\r\n
\r\n

Sprockets Burgers
[May 2019 - Dec 2019]

\r\n

Freelance Full Stack Developer

\r\n
\r\n
    \r\n
  • Built a website for a startup restaurant in Salida, Colorado
  • \r\n
  • Website architecture: ASP.NET MVC Web Application, SQL Server, Entity Framework
  • \r\n
  • Successfully gathered the client's requirments and organized the development/deployment for this application
  • \r\n
  • Full CRUD functionality for menu items to display on their site.
  • \r\n
  • Created a mini-CMS system utilizing the database to make it possible for the client to update their Hours and About sections.
  • \r\n
  • SEO-friendly implementations using appropriate metatags and content to match, as well as creating an ADA-compliant design
  • \r\n
\r\n
\r\n
\r\n
\r\n {this.renderProjects('sprockets')}\r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default ProExperience;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATIAAABGCAMAAAB43OiUAAAAbFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8+T+BWAAAAI3RSTlMA0YDAQKBw8B4QYrgwiPToPNkg4I9XsX2TrEpQxdyonAUpcu8w6ucAAAglSURBVHja7JndcqMwDIUj/BcTXwGh03KRtLz/O243TuekcYo0ltvZzuy5WjZGSB+ykNXdf/1mRftXu+/UYK1NejMma+q8jZL1toOWJHDzspJdNY1r1rwwth6p51/I4mjNGmc/yNgk+5DxeiPqeFvdeqvgLIf4so6Jx33yIm3YeizDvREX7m6wonSC7QIZNEUZMsgkLbKU44H6tsgGt0KApkQGURIig3odshQYi0pkHvaL7NAgg0IUIoMWDbLhI6JgjPn4Z1IjKzc90fM0TSciZIcCmbfWLh3h+Qwysu/yE31EOCiQuU8bpc8AiSn/ma2g/Ee64jn0r7us/cuJ8GZqkdlreCFfMchgZrjmnKtHNmArIsbgRRUV1xyx588xvU4EZvXIUFacFBkK0VCNzOd8uYkyoMqokeVspP58/8PLAfujGhlcGQXIwAwhVyGbiyeiE1IhwzKyu1L7U/5NjSxeLiOPDJrwHzXIDJPXGmQpU3l9+OM5M+u0yHYBlwJk8EuHrPseZIQce6D9AVtTg8xIkUENkM3fgqy/LHr7OgkJGa5ARj+JDD1GaowMsRzOXy94wqdLgQyu/AAypALFtshQMY5sC9JVI0OAJEWGW8ZqZDHk8YJtjmxCkm2m2ViNDJ98L0UGz+b67t+vWS41Rjaikm07N2iQ+eKQKezLesWxHIfAPjZEFgVF8kxwvgqZNThkS5DhqxNUwx93M35LTZChxpy37ZyKYiZF5rrOmYDTnhRZ7PJNXoEMZ3Ecz5XIsGMOjJ03RCNHJp8ilZMMg9kLi0w+lnVRiwxLJsbOUY+Md7lbC1HUICtHzSH9NmRwWYbMRMVUFop+hAP/PjIy7xoLZhJkY6/9cwm0GMws2yA76ZDxTUbydOUQZcjGCZ9XBTLIjqiOSmQ915WjqVQgg88TV/4XoG2IDB8C26jJ2G/bea5uMmwx+h24JiM7PbdFhi5tViFDZC+COfeiQYZ23nPIsr21b44sjmiOVciIL2bHPFHVIMM507DIhoBCrUBWyiPN9cdy2rP7klTHcrgTtpEhNGqKDHdYNbJh5doMS9hQKmS5sgsOTDN80iCLqXBJiwwRY/Jf6nzAvtRnGY8Moy6rQJa8o3unBi0yPHp7Yva06gbZkBNtTORjUHT/7m7GB6tJgQwhb30BjgTvlciCrPyjITASZPJS71gcqLeSakZP58eFDK2BAhleYCdCFkc8tm5jlnsjFq+M8YKf+J7+sG82qwrDQBTuzOS2NGZlpXDpQm3e/x0tFTxiCGY6GxfzrZu/LxDK5GTsClbCdhuVxdzyKwshO0mpDFCxZTN2wagM1cvT58l4vxKKMJoLw1JZmpFLaZrsBSOrlWGHhoBF4nw0K4MzuoZ3YSvl5hgL18NSYeG/CRmz1skSFKuVoX3m54hnyTgX7MrgLNNpDffbpivFf0LA7KgyAPm665K8HFSGDKMw82stnV0ZPgW00VDog7JPasqmpJlsjwqXQhmItTKvXRmKMyXIsNmVDay4lEPHolQG4lAxZlQG+qlerrcrk6g7eBF25eOJbMkAHdmVgTjnd6jHKvXKWPn0IZTZ1IV3qs8bROTbigR13nOTAtm4dArGhWehPG3NIoZQK/shxt17TJ3jOI7jOI7jPNo5u91GgRgKx6ogI0bzgyoCRJBenPd/xx1mak5CEpK92JtVjqoKl+KxP48NpVU/+uij/0JxENuXw1YWnfSMkeGgcjenGpuMMRZja3eyqHLm1crGTdYZLpx0ogPp+O8WDqq2XT6PcnnpeVrXd3YJJ/LkUK3BnbiKk8hDt+sdi0oIyGr5NtgbHvOUsbj9XYHa482f9PvzC2RhXRmqlg5Q821kw7fJebnwohwCBqsv/PtD0eBB74Ka0VgmW+2/JT8lqopsm9LwyIvFMVUpVkCl9rDYx8KshixbZcKRzLhFqB7WNGVlvUoPi18WxF4j69Ux1eLG7DCZxpbVZoQlWKuQhmSn1pItsh7w5j1kAt2PW2QOAeEBskZD7oF4bZ+LXUP0+s1SsimWo/EcWUTwiIyQxCi5RTaw1E53ZF+IRJ9sisgE36heIlPq3WNkgkbg7r1YNmQObcTIM9fJC/o9ZD18v4eMK1frCkCvbbqDrMMaN2OY89GPniEyLUz6eA+ZmYDRaECS5HTdkLKSzSzbbGarNtNm8ly5THjvRdrbjpviQ2RBOP49jIFfI/QgZ3pG+X7uA0hcdwGjIVwiY/UnuF1k1AVoDcc/LuokOQha0iqncWIrM82/RUY5zyYjstvx72BzQorsCLuHTF2o5zeRGZ+K0mB+iYz72N41pkGRvfPCbh3zF6fVHjBeJz+h3mnMEinkRWPOyAqK7HzPjCAoM5dLApSkzWF+wTxCNqCoeQdZzA0md8gqSJXkEbdenG7KeETDCZsBNFfJn+HNHjJTHiD2kTWYq6QZTiM8e9inyJhTQtvlqk6H63vTgNMjZAFV0gR5B5mka7oHuywglqvHrRfTos13yvY3nLnY5xZylfzgUe8+ZFyGhXLYR2YLq4ZFXdafze5DRmWXBPxvGW2uzfE3ke/S410kMu6ZgPgOMszi0XD8l3HjMLHJN17OARD5BsQow2KXTGr4ZHEo3ovj0WN4Ov4XVhFe+7NRZLlmZn86BwkZUd5tEAnrhOk82sF9oSYy3lcdrN7rduJvJkB0uBZlJzr3v/CTo7h2YKoAYHb3Nqd3+IqHfUULzD9m5dSuyBjxj1bKFaIAB9VzGesRLkaX8QCmmo8IvkTHH5iiujMepvx0WGr2kSp15Uf/Wn8AcLfHh+cUsskAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAABiCAMAAAASjX0FAAAAq1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Nr6iZAAAAOHRSTlMAiEwHE+k8YbpaCtb7RQ8pp4/1cwPx7OLesaIz5jYu2lGsln9AG2lVH7Wc0IuFGMrCv3lu02YkxYJQhl4AAAlgSURBVHja7NjZlqIwEAbgUkFRcQEBBQX3URS13Zh6/ycbookJURnnYs6Bmf5uejva/EmqLIBv3759+/Y/WPc8d9r1jPm1PGzAv6BsIqduvdNCgYKLUKa65xiKbN/HZ7rbggLba/iKV+i6KnsjfNbsQJFVJhsVZbYPxdZedW25oqpQdPsfX1Kmou8TMTRUFJgBFFB7GQdBEO8rcKecL8g5SyiSin+eHS+OqZMjZvcP7nyyB2IlhBq0oTBaswE+MbUfCgBYJ3w4QEHUDviGuiNH0HeQ0aAI6hfMMG6R+VxFpgu5F2j4GzUA6JjI7CDnzvh7KwCoij/mWWOKn+iQesOHPI97cRM/Mk7fSg0syKuqjR8yIPGV/xaxwM8NAUCxkZlALrXwD1wgUUbGyeUUscA/ck2X0wbyJ9DxFXtw2W634xHKHAsS4xx3vaWDT7bR1d83IGG141rXxJQzJIbIhJAz1hglg10gp56rKFArkCjldps0OdCPCjxTInkuAmuE1AwE5flUc2e1JRAro3Rn1G+3kcaOvnnLiE4W+VJ6iIwhwDqKku+iU30PN3UjmrPriX94WhhNKvAbJUwz3r3CP8j3FSuk+i/mXvOUXq8DnbiOcLNBxAb5IuoJvdepA3FERAUIxdPZmkOmMqaYZXjPwIcAiAv/kZriQxMSHjIhG6RctpLk+BpyKyXzo24i4UOii6jeInVG+NnHe8NG0Si7KurIREDskGLrNsPEsVcun0Ls00jOYkisWSScCZGWfvKnOXmHYUK5RzovY/KrqRipTYpZq1Vbc1U66bIpiuwYsrV0VnBATKRl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\"","import React from 'react'\r\nimport kuImg from '../images/logos/ku.png';\r\nimport centriqLogo from '../images/logos/centriq.png';\r\n\r\nclass Education extends React.Component{\r\n render = () =>\r\n
\r\n

Educational Experience

\r\n
\r\n
\r\n
\r\n \"Centriq \r\n
\r\n
\r\n

Centriq Training

\r\n

Full Stack Web Developer Track

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Grace University

\r\n

Bachelor's degree in Psychology
Graduated w/ Honors in 2008

\r\n
\r\n
\r\n
\r\n
\r\n \"University \r\n
\r\n
\r\n

University of Kansas

\r\n

Liberal Arts Coursework

\r\n
\r\n
\r\n
\r\n\r\n
\r\n}\r\n\r\nexport default Education;","export default __webpack_public_path__ + \"static/media/FSH.911ec6bb.png\";","export default __webpack_public_path__ + \"static/media/kcyha.7d55c57d.png\";","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport fshLogo from '../images/logos/FSH.png';\r\nimport kcyhaLogo from '../images/logos/kcyha.png';\r\nimport lvsLogo from '../images/logos/lvs_logo_responsive.png';\r\n\r\n\r\nclass Volunteer extends React.Component {\r\n render = () => \r\n
\r\n

Volunteer Experience

\r\n
\r\n \r\n
\r\n
\r\n \"Centriq \r\n
\r\n
\r\n

Full Stack Hackathon
Mentor

\r\n

Centriq Training | Aug 2020

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Kansas \r\n
\r\n
\r\n

Hockey Coach

\r\n

Kansas City Youth Hockey | 2012-Current

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Lawrence \r\n
\r\n
\r\n

Hour of Code Club Leader

\r\n

Lawrence Virtual School | 2020-Current

\r\n \r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default Volunteer;","import React from 'react';\r\nimport TechSkills from './TechSkills';\r\nimport References from './References';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\nimport ProExperience from './ProExperience';\r\nimport Education from './Education';\r\nimport Volunteer from './Volunteer';\r\n\r\n\r\n// Add all icons to the library so you can use it in your page\r\nlibrary.add(fas, far, fab)\r\n\r\n\r\n \r\nclass Resume extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showSection: \"skills\"\r\n }\r\n }\r\n showSkills = () => {\r\n this.setState({ showSection: \"skills\" }); \r\n }\r\n\r\n showPro = () => {\r\n this.setState({ showSection: \"professional\"})\r\n }\r\n showEd = () => {\r\n this.setState({ showSection: \"education\"})\r\n }\r\n\r\n showVol = () => {\r\n this.setState({ showSection: \"volunteer\" })\r\n }\r\n showRefs = () => {\r\n this.setState({ showSection: \"references\" })\r\n\r\n }\r\n\r\n \r\n \r\n \r\n render = () =>\r\n\r\n
\r\n
\r\n
\r\n

Resumé

\r\n \r\n
\r\n \r\n \r\n {this.state.showSection == \"skills\" &&\r\n \r\n }\r\n {this.state.showSection == \"professional\" &&\r\n \r\n }\r\n {this.state.showSection == \"education\" &&\r\n
\r\n \r\n
\r\n }\r\n {this.state.showSection == \"volunteer\" &&\r\n \r\n }\r\n {this.state.showSection == \"references\" &&\r\n \r\n }\r\n
\r\n}\r\n\r\nexport default Resume;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\nimport { fab } from '@fortawesome/free-brands-svg-icons'\r\nimport firebase from 'firebase';\r\nimport base, {firebaseApp} from '../base';\r\n\r\nlibrary.add(fas, far, fab);\r\nconsole.log(firebaseApp);\r\n\r\nclass Resources extends React.Component {\r\n handleChange = event => {\r\n console.log(event.currentTarget.value);\r\n \r\n const updateResource = {...this.props.resources, [event.currentTarget.name] : event.currentTarget.value};\r\n this.props.updateResource(this.props.index, updateResource);\r\n };\r\n\r\n render = () =>\r\n \r\n
\r\n \r\n

{this.props.resource.name}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n}\r\n\r\nexport default Resources;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAHzCAMAAADhDR8AAAABQVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAADm5ubNzc3Z2dk4ODiZmZkRERH09PQeHh6fn58KCgrw8PD4+PiXl5fFxcUkJCRXV1fj4+O7u7uGhoZoaGhMTEzr6+t1dXVERES0tLQwMDDR0dGnp6fe3t6ioqKxsbGurq6kpKQ3xmriAAAASHRSTlMAMDhP/C5ekiWjK59XO/k2MjQj9mCVDN3agGZjEW8TB/daKPLp14g9GUEOa0KhmNHLjevNhEwc7udGSIpS37Efcqo/5InDebofItkKAAAV/UlEQVR42uzdb2/SUBTH8XOxzbCTUjaXucw/iImYZc6YzGxRHmlizvt/RV480wEr9FJauD3n933EsyZ8ODfQXloy2tuj81cXV4QMlX7gX/d8lxIyU8r8k+iaGepmcpxn5MtydoRM5M0nRFC3lJhLDiu8iRyPJ/S/KWPW9SfmULeUmEPdUt68TysNoK46MYe6pcQc6pZyfOrNoW4pb35Ca+pBXWUy51C3lMw51C0l5lC3lJhD3VJiXqmOqy+KEvPqhph1NYk51C0l5oHqWOFVlP41h7qlxBzqlkp57M2hbikxh7qlxBzqlhJzqFtqnTnOzelNzOuqJ1DvYGJetwFmvYOJ+Q7qmPXOlXLuzaFuKTGHuqXEHOqWEnOoW0rMoW4pMYe6pcS8qaZQ70BiDnVLiTnULeXN+0RQt5STOW9eHXtko809zDnU7eQSfrCBupW8+ZQegrqNivbMRb0gFFmr5lDX31NzqGvPmw+o5QZQj6oRt20u6jwiFElrzaGutg3mUFfaRnOoq2y4P3NRHxI6ZGLeoz3Wg/rBCzCHurKCzKGuql6IuZKjoi1nTsH6grY1h7qWegf8zTyCenB6zpN4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\"","import React from 'react';\r\nimport Navbar from 'react-bootstrap/Navbar';\r\nimport Nav from 'react-bootstrap/Nav';\r\nimport image from '../images/JRCTECH-logo-invert.png';\r\n\r\nclass NavElement extends React.Component {\r\n\r\n imgStyle = {\r\n width: \"60px\"\r\n }\r\n render = () =>\r\n \r\n \"JRC\r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nexport default NavElement;","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { far } from '@fortawesome/free-regular-svg-icons'\r\n\r\nlibrary.add(far);\r\n\r\nconst Login = (props) => (\r\n
\r\n Login for key functionality on the Resources and Projects links.\r\n
\r\n \r\n
\r\n);\r\n\r\nexport default Login;\r\n","const resources = [\r\n {\r\n id: `resource${Date.now()}`,\r\n language: \"HTML\",\r\n type: \"Client-Side\",\r\n name: \"W3Schools\",\r\n url: \"https://w3schools.com/html/\",\r\n image: null,\r\n description: \"This is a how-to site for all languages/technologies, but this portion of the site focuses on HTML5 and best practices for creating the site structure and crafting a good functioning Document Object Model.\"\r\n },\r\n {\r\n id: `resource${Date.now()}`,\r\n language: \"CSS\",\r\n type: \"Client-Side\",\r\n name: \"W3Schools\",\r\n url: \"https://w3schools.com/css/\",\r\n image: null,\r\n description: \"This is a how-to site for all languages/technologies, but this portion of the site focuses on Cascading Stylesheets, and how to best utilize CSS properties to effectively style your website.\"\r\n },\r\n {\r\n id: `resource${Date.now()}`,\r\n language: \"JavaScript\",\r\n type: \"Client-Side\",\r\n name: \"W3Schools\",\r\n url: \"https://w3schools.com/js/\",\r\n image: null,\r\n description: \"This is a how-to site for all languages/technologies, but this portion of the site focuses on JavaScript and how utilize the Document Object Model to create a fun, interactive UI/UX.\"\r\n },\r\n {\r\n id: `resource${Date.now()}`,\r\n language: \"C#\",\r\n type: \"Server-Side\",\r\n name: \"W3Schools\",\r\n url: \"https://w3schools.com/c-sharp/\",\r\n image: null,\r\n description: \"This is a how-to site for all languages/technologies, but this portion of the site focuses on C# and best practices to create great server-side functionality.\"\r\n },\r\n {\r\n id: `resource${Date.now()}`,\r\n language: \"SQL\",\r\n type: \"Server-Side\",\r\n name: \"W3Schools\",\r\n url: \"https://w3schools.com/sql/\",\r\n image: null,\r\n description: \"This is a how-to site for all languages/technologies, but this portion of the site focuses on SQL and how to communicate with and read databases, as well as how to manipulate data.\"\r\n }\r\n];\r\n\r\nexport default resources;","const projects = [\r\n {\r\n name: \"E-Commerce\", \r\n category: \"ASP.NET MVC\",\r\n description: \"This is an ASP.NET MVC application\",\r\n url:\"http://ustore.jamesrcaldwell.com\",\r\n image: \"./src/images/projects/storefront.jpg\",\r\n useCase: \"This will be a long description of technical concepts. Under Construction\"\r\n },\r\n {\r\n name: \"Reservation System\", \r\n category: \"ASP.NET MVC\",\r\n description: \"This is an ASP.NET MVC application\",\r\n url:\"http://fsdp.jamesrcaldwell.com\",\r\n image: \"./src/images/projects/storefront.jpg\",\r\n useCase: \"This will be a long description of technical concepts. Under Construction\"\r\n },\r\n {\r\n name: \"StoreFront\",\r\n category: \"React\", \r\n description: \"This is an ASP.NET MVC application\",\r\n url:\"http://jamesrcaldwell.com\",\r\n image: \"./src/images/projects/storefront.jpg\",\r\n useCase: \"This will be a long description of technical concepts. Under Construction\"\r\n }\r\n]\r\n\r\nexport default projects;","import React from 'react';\r\n\r\nclass AddResource extends React.Component {\r\n nameRef = React.createRef();\r\n descRef = React.createRef();\r\n typeRef = React.createRef();\r\n urlRef = React.createRef();\r\n languageRef = React.createRef();\r\n \r\n createResource = event => {\r\n event.preventDefault();\r\n\r\n const resource = {\r\n name: this.nameRef.current.value,\r\n description: this.descRef.current.value,\r\n type: this.typeRef.current.value,\r\n url: this.urlRef.current.value,\r\n language: this.languageRef.current.value\r\n };\r\n\r\n this.props.addResource(resource);\r\n\r\n event.currentTarget.reset();\r\n }\r\n \r\n render = () =>\r\n
\r\n
\r\n

Create New Resource

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n {this.state.progress < 100 &&\r\n
\r\n

See Your Creation...

\r\n
\r\n

Upload to Preview

\r\n
\r\n
\r\n }\r\n {this.state.progress == 100 &&\r\n
\r\n

See Your Creation...

\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n }\r\n {this.state.progress != 0 &&\r\n\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n\r\n\r\n\r\n
\r\n

Project Gallery

\r\n
\r\n {Object.keys(this.props.projects).map(key =>\r\n \r\n )}\r\n\r\n
\r\n \r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport Contact from './components/Contact';\r\nimport Footer from './components/Footer';\r\nimport Home from './components/Home';\r\nimport Projects from './components/Projects';\r\nimport Resume from './components/Resume';\r\nimport Resources from './components/Resources';\r\nimport NavElement from './components/NavElement';\r\nimport Login from './components/Login';\r\nimport base, { firebaseApp } from './base';\r\nimport firebase from 'firebase';\r\nimport sampleResources from './sample-resources';\r\nimport sampleProjects from './sample-projects';\r\nimport AddResource from './components/AddResource';\r\nimport ResourceGallery from './components/ResourceGallery';\r\nimport LoggedIn from './components/LoggedIn';\r\nimport ProjectAdmin from './components/ProjectAdmin';\r\n\r\n\r\nclass App extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showContent: \"Home\",\r\n uid: null,\r\n urole: null,\r\n uemail: null,\r\n resources: {},\r\n projects: {},\r\n showResources: \"Client-Side\",\r\n showType: \"All Categories\",\r\n progress: 0,\r\n \r\n }\r\n this.deleteProject = this.deleteProject.bind(this);\r\n }\r\n\r\n // contentTree = (content) => {\r\n // this.setState({ showContent: content});\r\n // };\r\n showHome = () => {\r\n this.setState({ showContent: \"Home\" });\r\n window.scrollTo({ top: 0, behavior: 'smooth'});\r\n \r\n }\r\n\r\n showProjects = () => {\r\n this.setState({ showContent: \"Projects\" });\r\n window.scrollTo({ top: 0, behavior: 'smooth'});\r\n }\r\n\r\n showResume = () => {\r\n this.setState({ showContent: \"Resume\" })\r\n window.scrollTo({ top: 0, behavior: 'smooth'});\r\n }\r\n\r\n showContact = () => {\r\n this.setState({ showContent: \"Contact\" })\r\n window.scrollTo({ top: 0, behavior: 'smooth'});\r\n }\r\n\r\n showResources = () => {\r\n this.setState({ showContent: \"Resources\" })\r\n window.scrollTo({ top: 0, behavior: 'smooth'});\r\n }\r\n//Login Functionalities\r\n authHandler = async (authData) => {\r\n\r\n this.setState({\r\n uid: authData.user.uid,\r\n uemail: authData.user.email\r\n });\r\n if (this.state.uid === \"2HooZr1iJXd9R79dUSFBtCIiixT2\" || this.state.uid === \"iuOPpvZOcLX55f4ZuiVYEnBFsVJ2\") {\r\n this.setState({ urole: \"Admin\"});\r\n }\r\n else{\r\n this.setState({ urole: \"Customer\"});\r\n }\r\n firebase.database().ref('users/' + this.state.uid).set({\r\n uid : this.state.uid,\r\n urole: this.state.urole === \"Admin\" ? \"Admin\" : \"Customer\",\r\n email: this.state.uemail\r\n });\r\n \r\n }\r\n authenticate = () => {\r\n const authProvider = new firebase.auth.GoogleAuthProvider();\r\n firebaseApp.auth().signInWithPopup(authProvider).then(this.authHandler);\r\n }\r\n\r\n logout = async () => {\r\n console.log(\"logging out\");\r\n await firebase.auth().signOut();\r\n this.setState({ uid: null, urole: null });\r\n }\r\n //end login functionality\r\n //data\r\n loadSampleResources = () => {\r\n this.setState({resources: sampleResources});\r\n }\r\n\r\n loadSampleProjects = () => {\r\n this.setState({projects: sampleProjects});\r\n }\r\n\r\n changeFilter = () => {\r\n this.state.showResources === \"Client-Side\" ? this.setState({showResources: \"Server-Side\"}) : this.setState({showResources:\"Client-Side\"});\r\n }\r\n\r\n updateResource = (key, updatedResources) => {\r\n const resources = {...this.state.resources};\r\n\r\n resources[key] = updatedResources;\r\n this.setState({resources});\r\n }\r\n\r\n addResource = (resource) => {\r\n const resources = {...this.state.resources};\r\n\r\n resources[`resource${Date.now()}`] = resource;\r\n\r\n this.setState({ resources });\r\n }\r\n\r\n deleteResource = (key) => {\r\n const resources = {...this.state.resources}\r\n\r\n resources[key] = null;\r\n\r\n this.setState({resources});\r\n }\r\n\r\n \r\n addProject = project => {\r\n const projects = {...this.state.projects };\r\n\r\n projects[`projects${Date.now()}`] = project;\r\n\r\n this.setState({ projects });\r\n } \r\n deleteProject = (key) => {\r\n const projects = {...this.state.projects}\r\n\r\n projects[key] = null;\r\n\r\n this.setState({projects});\r\n }\r\n \r\n updateProject = (key, updatedProjects) => {\r\n const projects = {...this.state.projects};\r\n\r\n projects[key] = updatedProjects;\r\n this.setState({projects});\r\n }\r\n\r\n showLang = (x) => {\r\n this.setState({ showType: x});\r\n }\r\n\r\n componentDidMount(){\r\n const { resources } = this.state.resources;\r\n this.ref = base.syncState(`/resources`,{\r\n context: this,\r\n state: \"resources\"\r\n });\r\n\r\n const { projects } = this.state.resources;\r\n this.ref = base.syncState('/projects', {\r\n context: this,\r\n state: \"projects\"\r\n });\r\n }\r\n\r\n \r\n componentWillUnmount(){\r\n }\r\n //end data\r\n render = () =>\r\n
\r\n \r\n
\r\n {this.state.showContent === \"Home\" &&\r\n \r\n }\r\n {this.state.showContent === \"Projects\" && this.state.urole === \"Admin\" &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {this.state.showContent === \"Projects\" && this.state.urole != \"Admin\" &&\r\n \r\n \r\n \r\n \r\n }\r\n {this.state.showContent === \"Resume\" &&\r\n \r\n }\r\n {this.state.showContent === \"Contact\" &&\r\n \r\n }\r\n {this.state.showContent === \"Resources\" &&\r\n this.state.urole === \"Admin\" && \r\n
\r\n
\r\n

Resource Manager

\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {Object.keys(this.state.resources).filter(key => this.state.resources[key].type === this.state.showResources).map(key =>\r\n )}\r\n
\r\n \r\n
\r\n }\r\n {this.state.showContent === \"Resources\" && this.state.urole != \"Admin\" &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n { this.state.uid == null &&\r\n
\r\n \r\n
\r\n }\r\n\r\n\r\n {\r\n this.state.uid != null &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport './styles/custom.css';\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}