diff --git a/client/public/characters/aaron-hotchner.png b/client/public/characters/aaron-hotchner.png
index e7c2c35..c780b18 100644
Binary files a/client/public/characters/aaron-hotchner.png and b/client/public/characters/aaron-hotchner.png differ
diff --git a/client/public/characters/alex-blake.png b/client/public/characters/alex-blake.png
index 6a070d6..a315859 100644
Binary files a/client/public/characters/alex-blake.png and b/client/public/characters/alex-blake.png differ
diff --git a/client/public/characters/ashley-seaver.png b/client/public/characters/ashley-seaver.png
index 0988119..62a58b9 100644
Binary files a/client/public/characters/ashley-seaver.png and b/client/public/characters/ashley-seaver.png differ
diff --git a/client/public/characters/david-rossi.png b/client/public/characters/david-rossi.png
index ee2e148..41b378e 100644
Binary files a/client/public/characters/david-rossi.png and b/client/public/characters/david-rossi.png differ
diff --git a/client/public/characters/derek-morgan.png b/client/public/characters/derek-morgan.png
index 2b2f627..8becbff 100644
Binary files a/client/public/characters/derek-morgan.png and b/client/public/characters/derek-morgan.png differ
diff --git a/client/public/characters/elle-greenaway.png b/client/public/characters/elle-greenaway.png
index 219279d..2c33b5a 100644
Binary files a/client/public/characters/elle-greenaway.png and b/client/public/characters/elle-greenaway.png differ
diff --git a/client/public/characters/emily-prentiss.png b/client/public/characters/emily-prentiss.png
index 45ed01b..3ffe7f8 100644
Binary files a/client/public/characters/emily-prentiss.png and b/client/public/characters/emily-prentiss.png differ
diff --git a/client/public/characters/ian-doyle.png b/client/public/characters/ian-doyle.png
index 04bb4ab..a9cfec8 100644
Binary files a/client/public/characters/ian-doyle.png and b/client/public/characters/ian-doyle.png differ
diff --git a/client/public/characters/jack-garrett.png b/client/public/characters/jack-garrett.png
index 3696079..53972a1 100644
Binary files a/client/public/characters/jack-garrett.png and b/client/public/characters/jack-garrett.png differ
diff --git a/client/public/characters/jason-gideon.png b/client/public/characters/jason-gideon.png
index 2aeeebe..72d0f35 100644
Binary files a/client/public/characters/jason-gideon.png and b/client/public/characters/jason-gideon.png differ
diff --git a/client/public/characters/jennifer-jareau.png b/client/public/characters/jennifer-jareau.png
index 620b25b..cd60304 100644
Binary files a/client/public/characters/jennifer-jareau.png and b/client/public/characters/jennifer-jareau.png differ
diff --git a/client/public/characters/kate-callahan.png b/client/public/characters/kate-callahan.png
index 5ea2329..8396de5 100644
Binary files a/client/public/characters/kate-callahan.png and b/client/public/characters/kate-callahan.png differ
diff --git a/client/public/characters/krystall-richards.png b/client/public/characters/krystall-richards.png
index c7d31d5..49b6ab2 100644
Binary files a/client/public/characters/krystall-richards.png and b/client/public/characters/krystall-richards.png differ
diff --git a/client/public/characters/luke-alvez.png b/client/public/characters/luke-alvez.png
index 860fadf..49be785 100644
Binary files a/client/public/characters/luke-alvez.png and b/client/public/characters/luke-alvez.png differ
diff --git a/client/public/characters/matthew-simmons.png b/client/public/characters/matthew-simmons.png
index fc10972..204eb6a 100644
Binary files a/client/public/characters/matthew-simmons.png and b/client/public/characters/matthew-simmons.png differ
diff --git a/client/public/characters/max-ryan.png b/client/public/characters/max-ryan.png
index e0da0b4..0ca9d40 100644
Binary files a/client/public/characters/max-ryan.png and b/client/public/characters/max-ryan.png differ
diff --git a/client/public/characters/penelope-garcia.png b/client/public/characters/penelope-garcia.png
index fbf2e13..71db982 100644
Binary files a/client/public/characters/penelope-garcia.png and b/client/public/characters/penelope-garcia.png differ
diff --git a/client/public/characters/spencer-reid.png b/client/public/characters/spencer-reid.png
index 97be29e..8535c0f 100644
Binary files a/client/public/characters/spencer-reid.png and b/client/public/characters/spencer-reid.png differ
diff --git a/client/public/characters/stephen-walker.png b/client/public/characters/stephen-walker.png
index 9d8726c..5bf8d28 100644
Binary files a/client/public/characters/stephen-walker.png and b/client/public/characters/stephen-walker.png differ
diff --git a/client/public/characters/tara-lewis.png b/client/public/characters/tara-lewis.png
index 7d84e5c..566235c 100644
Binary files a/client/public/characters/tara-lewis.png and b/client/public/characters/tara-lewis.png differ
diff --git a/client/src/components/cardHolder.js b/client/src/components/cardHolder.js
new file mode 100644
index 0000000..b260a71
--- /dev/null
+++ b/client/src/components/cardHolder.js
@@ -0,0 +1,15 @@
+import React from 'react';
+import Container from 'react-bootstrap/Container';
+import Row from 'react-bootstrap/Row';
+
+export default function CardHolder(props) {
+
+ return(
+
+
+ {props.children}
+
+
+ );
+
+}
\ No newline at end of file
diff --git a/client/src/components/characterCard.js b/client/src/components/characterCard.js
new file mode 100644
index 0000000..fe581bd
--- /dev/null
+++ b/client/src/components/characterCard.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import Card from 'react-bootstrap/Card';
+
+export default function CharacterCard(props) {
+
+ const characterName = props.character.fullName;
+ const image = new URL(props.character.image).pathname;
+
+ return(
+
+
+
+
+ {characterName}
+
+ Some quick example text to build on the card title and make up the
+ bulk of the card's content.
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/client/src/components/greeting.js b/client/src/components/greeting.js
index 5a04d46..0519ae0 100644
--- a/client/src/components/greeting.js
+++ b/client/src/components/greeting.js
@@ -8,13 +8,11 @@ export default function Greeting() {
return (
-
+
-
+
The Criminal Minds API
diff --git a/client/src/constants.js b/client/src/constants.js
index 9ea492c..5309c57 100644
--- a/client/src/constants.js
+++ b/client/src/constants.js
@@ -1,3 +1,12 @@
-const baseUrl = process.env.NODE_ENV == 'development' ?
+const baseUrl = process.env.NODE_ENV === 'development' ?
'' :
'http://criminalmindsapi.azurewebsites.net';
+
+const versionHeader = 'x-api-version';
+const versionHeaderValue = 1;
+
+export {
+ baseUrl,
+ versionHeader,
+ versionHeaderValue
+};
diff --git a/client/src/pages/home.js b/client/src/pages/home.js
index f9457e2..87a5022 100644
--- a/client/src/pages/home.js
+++ b/client/src/pages/home.js
@@ -1,11 +1,52 @@
-import React from 'react';
+import React, { useEffect, useState } from 'react';
import Greeting from '../components/greeting';
+import CardHolder from '../components/cardHolder';
+import CharacterCard from '../components/characterCard';
+
+import CharacterService from '../services/characterService';
+const characterService = new CharacterService();
export default function Home() {
+
+ const [characters, setCharacters] = useState([]);
+
+ const getCharacters = async () => {
+
+ const res = await characterService.getCharacters();
+
+ const characters = await res.json();
+
+ return setCharacters(characters);
+
+ }
+
+ useEffect(() => {
+ getCharacters();
+ }, []);
+
+ const getCharacterCards = () => {
+
+ return characters.map(character => {
+
+ return (
+
+
+
+ );
+
+ })
+
+ }
+
return (
<>
+
+ {getCharacterCards()}
+
>
);
}
\ No newline at end of file
diff --git a/client/src/services/characterService.js b/client/src/services/characterService.js
new file mode 100644
index 0000000..63b670f
--- /dev/null
+++ b/client/src/services/characterService.js
@@ -0,0 +1,19 @@
+import { baseUrl, versionHeader, versionHeaderValue } from '../constants';
+
+class CharacterService {
+
+ getCharacters = async () => {
+
+ const res = await fetch(`${baseUrl}/api/characters`, {
+ headers: {
+ [versionHeader]: versionHeaderValue
+ }
+ });
+
+ return res;
+
+ }
+
+}
+
+export default CharacterService;
\ No newline at end of file
diff --git a/client/src/setupProxy.js b/client/src/setupProxy.js
index 8a899ab..9b60cd2 100644
--- a/client/src/setupProxy.js
+++ b/client/src/setupProxy.js
@@ -1,7 +1,10 @@
const { createProxyMiddleware } = require('http-proxy-middleware');
const context = [
- '/api/seasons'
+ '/api/seasons',
+ '/api/characters',
+ '/api/quotes',
+ '/api/episodes'
];
module.exports = function (app) {
diff --git a/client/src/styles/app.css b/client/src/styles/app.css
index b6ca0a2..37b08c9 100644
--- a/client/src/styles/app.css
+++ b/client/src/styles/app.css
@@ -1,7 +1,10 @@
/* Bootstrap Overrides */
+.navbar-toggler {
+ border: none;
+}
.navbar-toggler:focus,
-.navbar-toggerl:active:focus {
+.navbar-toggler:active:focus {
box-shadow: none;