From b17b873a0c3009083e58c337411abbe09f59c645 Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 14 Oct 2020 07:55:24 -0700 Subject: [PATCH 01/29] Basic elements of HTML are present for our home page and an image has been uploaded to the static folder. --- src/main/resources/templates/Home.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/resources/templates/Home.html diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html new file mode 100644 index 0000000..73fb71e --- /dev/null +++ b/src/main/resources/templates/Home.html @@ -0,0 +1,14 @@ + + + + + Glass Dome + + +

Glass Dome

+

Welcome to Glass Dome!

This website will be a place to learn about teachers and + courses you haven't had at Holy Names and give feedback on the ones you have.

+

We hope you enjoy.

+ + + \ No newline at end of file From aafc9bc9ffc76f45fc93825d3a066dc6316749ea Mon Sep 17 00:00:00 2001 From: clair Date: Mon, 19 Oct 2020 07:54:00 -0700 Subject: [PATCH 02/29] Added an image! --- src/main/resources/templates/Home.html | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html index 73fb71e..4ed80cc 100644 --- a/src/main/resources/templates/Home.html +++ b/src/main/resources/templates/Home.html @@ -6,9 +6,20 @@

Glass Dome

-

Welcome to Glass Dome!

This website will be a place to learn about teachers and + +

Welcome to Glass Dome!

This website will be a place to learn about teachers and courses you haven't had at Holy Names and give feedback on the ones you have.

-

We hope you enjoy.

+ +

About Us

+

Julia and Claire are two Holy Names seniors from the class of 2021. (Go skippers!)

+ +

Mission

+

After experiencing the fast paced classes at Holy Names, and seeing friends struggle with getting the support they needed + we saw a clear need for an avenue of consistent feedback for teachers and courses. Glass Dome is a place for students to share their experiences + with teachers and one another- so our whole community can grow and flourish. +

+ + \ No newline at end of file From 6bfa04a77d994d17355b2d31ac62025d68cdc704 Mon Sep 17 00:00:00 2001 From: JHopper21 <54675147+JHopper21@users.noreply.github.com> Date: Mon, 19 Oct 2020 08:03:37 -0700 Subject: [PATCH 03/29] Add files via upload --- SQLQuery_1.sql | 5 +++++ SQLQuery_2.sql | 7 +++++++ SQLQuery_3.sql | 2 ++ 3 files changed, 14 insertions(+) create mode 100644 SQLQuery_1.sql create mode 100644 SQLQuery_2.sql create mode 100644 SQLQuery_3.sql diff --git a/SQLQuery_1.sql b/SQLQuery_1.sql new file mode 100644 index 0000000..b596d6d --- /dev/null +++ b/SQLQuery_1.sql @@ -0,0 +1,5 @@ +DROP TABLE Student; +CREATE TABLE Student(Name TEXT DEFAULT 'Anonymous', ClassYear INTEGER NOT NULL, Recommendation TEXT, Why Text); +SELECT * FROM Student + + diff --git a/SQLQuery_2.sql b/SQLQuery_2.sql new file mode 100644 index 0000000..b3ffbba --- /dev/null +++ b/SQLQuery_2.sql @@ -0,0 +1,7 @@ +INSERT INTO Student (Name, ClassYear, Recommendation, Why) +VALUES ('Julia', '2021', 'Yes', 'good teacher'); +INSERT INTO Student (Name, ClassYear, Recommendation, Why) +VALUES ('Bri', '2009', 'No', 'talked too fast'); +INSERT INTO Student (ClassYear, Recommendation, Why) +VALUES ('2022', 'Yes', 'Not a lot of tests'); +SELECT * FROM Student diff --git a/SQLQuery_3.sql b/SQLQuery_3.sql new file mode 100644 index 0000000..9beaa1b --- /dev/null +++ b/SQLQuery_3.sql @@ -0,0 +1,2 @@ +SELECT * FROM Student +ORDER BY ClassYear DESC; \ No newline at end of file From 6a0558851903cf8ec3b859bd6d16efd3f851214b Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 21 Oct 2020 07:59:29 -0700 Subject: [PATCH 04/29] Header Image formatted, (need to make background through CSS) and implemented internal CSS correctly! --- src/main/resources/templates/Home.html | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html index 4ed80cc..1b44e05 100644 --- a/src/main/resources/templates/Home.html +++ b/src/main/resources/templates/Home.html @@ -3,23 +3,35 @@ Glass Dome + +

Glass Dome

+Picture of the Dome

Welcome to Glass Dome!

This website will be a place to learn about teachers and courses you haven't had at Holy Names and give feedback on the ones you have.

- +

About Us

-

Julia and Claire are two Holy Names seniors from the class of 2021. (Go skippers!)

+

Seattle based students Julia Hopper and Claire Mattingly are current Holy Names Academy + seniors (class of 2021- Go skippers!) +
+ Outside of school Julia likes to spend her time rowing and sleeping, and she has a dog named Tilly. + Claire enjoys theater and dance, and likes to bake!

Mission

After experiencing the fast paced classes at Holy Names, and seeing friends struggle with getting the support they needed we saw a clear need for an avenue of consistent feedback for teachers and courses. Glass Dome is a place for students to share their experiences - with teachers and one another- so our whole community can grow and flourish. + with teachers and one another- so our whole community can grow and flourish.



- - - \ No newline at end of file + From fbf231a45fdeddb820f965a38fddcba751f35405 Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 28 Oct 2020 08:16:51 -0700 Subject: [PATCH 05/29] Added CSS stylesheet to homepage, made a blank Dept. page, figured out inserting links, added background image. --- src/main/resources/templates/Home.html | 41 ++++++++++++++++++++------ 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html index 1b44e05..adf0e0f 100644 --- a/src/main/resources/templates/Home.html +++ b/src/main/resources/templates/Home.html @@ -6,32 +6,55 @@ -

Glass Dome

+

Glass Dome

-Picture of the Dome -

Welcome to Glass Dome!

This website will be a place to learn about teachers and +

Welcome to Glass Dome!

This website will be a place to learn about teachers and courses you haven't had at Holy Names and give feedback on the ones you have.

-

About Us

-

Seattle based students Julia Hopper and Claire Mattingly are current Holy Names Academy + +

About Us

+

Seattle based students Julia Hopper and Claire Mattingly are current Holy Names Academy seniors (class of 2021- Go skippers!)
Outside of school Julia likes to spend her time rowing and sleeping, and she has a dog named Tilly. - Claire enjoys theater and dance, and likes to bake!

+ Claire enjoys theater and dance, and likes to bake!

-

Mission

-

After experiencing the fast paced classes at Holy Names, and seeing friends struggle with getting the support they needed +

Mission

+

After experiencing the fast paced classes at Holy Names, and seeing friends struggle with getting the support they needed we saw a clear need for an avenue of consistent feedback for teachers and courses. Glass Dome is a place for students to share their experiences with teachers and one another- so our whole community can grow and flourish.



+ + + + From b9355f6ef7127e3aba016f26cf8ea55242a53c22 Mon Sep 17 00:00:00 2001 From: clair Date: Mon, 16 Nov 2020 07:59:53 -0800 Subject: [PATCH 06/29] Buttons! --- src/main/resources/templates/Home.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html index adf0e0f..2c19b2f 100644 --- a/src/main/resources/templates/Home.html +++ b/src/main/resources/templates/Home.html @@ -29,12 +29,37 @@ margin left: 40px; } + .button { + background-color: maroon; + border: none; + color: white; + padding: 14px 75px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + transition-duration: 0.4s; +} + +.button:hover { + background-color: white; + color: maroon; +} + +

Glass Dome

+ + + + + + +

Welcome to Glass Dome!

This website will be a place to learn about teachers and courses you haven't had at Holy Names and give feedback on the ones you have.

From 8bb5890036edd03ed0d870252d1d50bd477cba7c Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 18 Nov 2020 07:52:22 -0800 Subject: [PATCH 07/29] Buttons with Links! --- src/main/resources/templates/Home.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/resources/templates/Home.html b/src/main/resources/templates/Home.html index 2c19b2f..1a697fa 100644 --- a/src/main/resources/templates/Home.html +++ b/src/main/resources/templates/Home.html @@ -44,6 +44,7 @@ .button:hover { background-color: white; color: maroon; + border: 2px solid maroon; } @@ -52,7 +53,7 @@

Glass Dome

- + + +English +Math +Arts +Science +Language +Other

Welcome to Glass Dome!

This website will be a place to learn about teachers and courses you haven't had at Holy Names and give feedback on the ones you have.

From 8dbf9c1ae21c3838f86465e52a321604e4ce594c Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 2 Dec 2020 08:01:54 -0800 Subject: [PATCH 08/29] Department Page initial draw-up. --- src/main/resources/templates/Departments.html | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/resources/templates/Departments.html diff --git a/src/main/resources/templates/Departments.html b/src/main/resources/templates/Departments.html new file mode 100644 index 0000000..d99ff1d --- /dev/null +++ b/src/main/resources/templates/Departments.html @@ -0,0 +1,74 @@ + + + + + English Department + + +Glass Dome + + +

English Department

+ +
+
Dawson
+
Draggoo
+
Gala
+
Karp
+
Karp
+
Kuzmanich
+
Little
+
Merlino
+
Sager
+
+ + +

Dawson, Draggoo, Gala, D Karp, L Karp, Kuzmanich, Little, Merlino, Sager

+ + \ No newline at end of file From 9cec50a677764a5386fdb9ed269a5db337cad8ad Mon Sep 17 00:00:00 2001 From: clair Date: Mon, 7 Dec 2020 07:58:08 -0800 Subject: [PATCH 09/29] Changed Department Flexbox items to buttons, and linked to Teachers page, still need to format properly. --- src/main/resources/templates/Departments.html | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/resources/templates/Departments.html b/src/main/resources/templates/Departments.html index d99ff1d..1f62596 100644 --- a/src/main/resources/templates/Departments.html +++ b/src/main/resources/templates/Departments.html @@ -20,7 +20,7 @@ text-align: center; color: white; - font-size: 150px; + font-size: 130px; text-shadow: 2px 2px 4px #000000; background-image: url("../static/HNA2.jpg"); @@ -48,15 +48,26 @@ color: white; text-align: center; -} + } + a:link, a:visited { + background-color: maroon; + color: white; + text-size: 130px; + padding: 80px 150px; + text-align: center; + text-decoration: none; + display: inline-block; + } + + these buttons are so ugly fix please. + } - }

English Department

-
+ + +Dawson +Draggoo +Gala +Karp +Karp +Kuzmanich +Little +Merlino +Sager + -

Dawson, Draggoo, Gala, D Karp, L Karp, Kuzmanich, Little, Merlino, Sager

\ No newline at end of file From db80c9420d37de3addb52498818b1ef33b52fd7a Mon Sep 17 00:00:00 2001 From: clair Date: Wed, 9 Dec 2020 08:01:52 -0800 Subject: [PATCH 10/29] Changed a tags back to divs and gave them buttons, started working on adding teacher headshots/formatting photos for the departments page. --- src/main/resources/templates/Departments.html | 71 ++++++++++++++----- 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/src/main/resources/templates/Departments.html b/src/main/resources/templates/Departments.html index 1f62596..b06252e 100644 --- a/src/main/resources/templates/Departments.html +++ b/src/main/resources/templates/Departments.html @@ -44,41 +44,79 @@ padding: 20px; font-size: 30px; flex-basis: 300px; - height: 200px; + height: 250px; color: white; text-align: center; } a:link, a:visited { - background-color: maroon; + background-color: brown; color: white; - text-size: 130px; - padding: 80px 150px; + text-size: 15px; + padding: 10px 30px; text-align: center; text-decoration: none; display: inline-block; } - these buttons are so ugly fix please. + img{ + border-radius: 50%; + width: 250px; + height: 180 px; + } + }

English Department

- + + From 07230e29b201da80fd818004e57e56b8a66b76ce Mon Sep 17 00:00:00 2001 From: JHopper21 Date: Wed, 16 Dec 2020 07:55:33 -0800 Subject: [PATCH 11/29] Added finished ConnectToDatabase and UserInput and added pictures to static folder --- src/main/java/service/ConnectToDatabase | 44 +++++++++++++++++++++++ src/main/java/service/MainController.java | 17 --------- src/main/java/service/UserInput | 43 ++++++++++++++++++++++ src/main/java/service/WebServer.java | 13 ------- src/test/java/service/WebServerTests.java | 13 ------- 5 files changed, 87 insertions(+), 43 deletions(-) create mode 100644 src/main/java/service/ConnectToDatabase delete mode 100644 src/main/java/service/MainController.java create mode 100644 src/main/java/service/UserInput delete mode 100644 src/main/java/service/WebServer.java delete mode 100644 src/test/java/service/WebServerTests.java diff --git a/src/main/java/service/ConnectToDatabase b/src/main/java/service/ConnectToDatabase new file mode 100644 index 0000000..ec1b713 --- /dev/null +++ b/src/main/java/service/ConnectToDatabase @@ -0,0 +1,44 @@ +import java.sql.Connection; +import java.sql.Statement; +import java.sql.ResultSet; +import java.sql.DriverManager; +import java.sql.SQLException; + + +public class ConnectToDatabase { + public static void main(String [] args) { + String hostname = "holynamesacademy.database.windows.net"; + String dbName = "GlassDome"; + String user = "hna-admin"; + String password = "HolyNames123"; + String url = String.format("jdbc:sqlserver://%s:1433;database=%s;user=%s;password=%s;encrypt=true;" + "hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostname, dbName, user, password); + Connection connection; + + try { + connection = DriverManager.getConnection(url); + String schema = connection.getSchema(); + System.out.println("Successful connection - Schema: " + schema); + + System.out.println("Query data example:"); + System.out.println("=============================="); + + String selectSql = " SELECT * from Student; "; + + try (Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectSql)) { + + while (resultSet.next()) { + System.out.println(resultSet.getString(1) + " " + resultSet.getInt(2) + " " + resultSet.getString(3) + " " + resultSet.getString(4)); + } + + connection.close(); + + } catch (SQLException e)//handle any errors + { + e.printStackTrace(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/service/MainController.java b/src/main/java/service/MainController.java deleted file mode 100644 index 5f4dddd..0000000 --- a/src/main/java/service/MainController.java +++ /dev/null @@ -1,17 +0,0 @@ -package service; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; - -@Controller -public class MainController { - - @GetMapping("/hello") - public String hello(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) { - model.addAttribute("name", name); - return "hello"; - } - -} \ No newline at end of file diff --git a/src/main/java/service/UserInput b/src/main/java/service/UserInput new file mode 100644 index 0000000..4fe07cb --- /dev/null +++ b/src/main/java/service/UserInput @@ -0,0 +1,43 @@ +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import com.microsoft.sqlserver.jdbc.SQLServerException; + +public class UserInput { + private static final String hostname = "holynamesacademy.database.windows.net"; + private static final String dbName = "GlassDome"; + private static final String user = "hna-admin"; + private static final String password = "HolyNames123"; + private static final String url = String.format("jdbc:sqlserver://%s:1433;database=%s;user=%s;password=%s;encrypt=true;" + "hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostname, dbName, user, password); + + public static void main(String[] args) throws Exception, SQLException + { + try + { + Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); + Connection conn = DriverManager.getConnection(url); + + System.out.println("Connection Established ln"); + Statement query = conn.createStatement(); + + String SQL1 = "INSERT INTO dbo.Student VALUES " + "('Julia', 2021, 'Yes', 'Love movies')"; + + query.addBatch(SQL1); + + query.executeBatch(); + + conn.close(); + } + catch (SQLServerException sqe) + { + System.out.println("A result set was generated for update."); + sqe.printStackTrace(); + } + catch (java.sql.BatchUpdateException bae) + { + System.out.println("Executed Queries! Terminating Connection..."); + bae.printStackTrace(); + } + } +} diff --git a/src/main/java/service/WebServer.java b/src/main/java/service/WebServer.java deleted file mode 100644 index d11b642..0000000 --- a/src/main/java/service/WebServer.java +++ /dev/null @@ -1,13 +0,0 @@ -package service; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class WebServer { - - public static void main(String[] args) { - SpringApplication.run(WebServer.class, args); - } - -} diff --git a/src/test/java/service/WebServerTests.java b/src/test/java/service/WebServerTests.java deleted file mode 100644 index faab4b2..0000000 --- a/src/test/java/service/WebServerTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package service; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class WebServerTests { - - @Test - void contextLoads() { - } - -} From bd0971b7017f666c9f320925b280b453c3467f84 Mon Sep 17 00:00:00 2001 From: JHopper21 Date: Wed, 16 Dec 2020 07:59:03 -0800 Subject: [PATCH 12/29] added pictures to static folder --- .../static/Projects Pics/AbbyDrake.jpg | Bin 0 -> 56125 bytes .../static/Projects Pics/AdamButler.jpg | Bin 0 -> 86220 bytes .../static/Projects Pics/AmyAnderson.jpg | Bin 0 -> 88848 bytes .../static/Projects Pics/AndyLundquist.jpg | Bin 0 -> 81959 bytes .../static/Projects Pics/AngelAlvarado.jpg | Bin 0 -> 73935 bytes .../static/Projects Pics/AnneGala.jpg | Bin 0 -> 80347 bytes .../static/Projects Pics/AnnieSpung.jpg | Bin 0 -> 65623 bytes .../static/Projects Pics/AprilLittle.jpg | Bin 0 -> 106671 bytes .../static/Projects Pics/AudreyHiatt.jpg | Bin 0 -> 88263 bytes .../static/Projects Pics/BeccaSager.jpg | Bin 0 -> 64627 bytes .../static/Projects Pics/BeccaShope.jpg | Bin 0 -> 89129 bytes .../Projects Pics/Cecilia Lofqvist Traum.jpg | Bin 0 -> 59548 bytes .../static/Projects Pics/DallasJimenez.jpg | Bin 0 -> 66151 bytes .../static/Projects Pics/DavidKarp.jpg | Bin 0 -> 49205 bytes .../static/Projects Pics/ElizabethSwift.jpg | Bin 0 -> 60582 bytes .../static/Projects Pics/JamesRufoHill.jpg | Bin 0 -> 80223 bytes .../static/Projects Pics/JenniferEiken.jpg | Bin 0 -> 57992 bytes .../static/Projects Pics/JenniferKelly.jpg | Bin 0 -> 78690 bytes .../static/Projects Pics/JennyWielbruda.jpg | Bin 0 -> 69842 bytes .../static/Projects Pics/JessicaKershner.jpg | Bin 0 -> 56279 bytes .../static/Projects Pics/JessyWilliams.jpg | Bin 0 -> 75495 bytes .../static/Projects Pics/JulieTilghman.jpg | Bin 0 -> 71520 bytes .../static/Projects Pics/KellyHaley.jpg | Bin 0 -> 59505 bytes .../static/Projects Pics/KimDawson.jpg | Bin 0 -> 54052 bytes .../static/Projects Pics/KimFicele.jpg | Bin 0 -> 66140 bytes .../static/Projects Pics/KimberlyDraggoo.jpg | Bin 0 -> 80019 bytes .../static/Projects Pics/KristinKuzmanich.jpg | Bin 0 -> 84467 bytes .../static/Projects Pics/LaceyLondon.jpg | Bin 0 -> 75095 bytes .../static/Projects Pics/LaurenKarp.jpg | Bin 0 -> 72564 bytes .../static/Projects Pics/MarianneMcGah.jpg | Bin 0 -> 61106 bytes .../static/Projects Pics/MarissaKoon.jpg | Bin 0 -> 103825 bytes .../static/Projects Pics/MattMerlino.jpg | Bin 0 -> 58771 bytes .../static/Projects Pics/Maureen Coulton.jpg | Bin 0 -> 97628 bytes .../static/Projects Pics/MichaelBachhuber.jpg | Bin 0 -> 74346 bytes .../static/Projects Pics/MikaelaHertel.jpg | Bin 0 -> 64141 bytes .../static/Projects Pics/NatalieRadich.jpg | Bin 0 -> 63603 bytes .../static/Projects Pics/PattiSmith.jpg | Bin 0 -> 81482 bytes .../static/Projects Pics/RoseDeBoer.jpg | Bin 0 -> 90657 bytes .../static/Projects Pics/RuthGavinoLutu.jpg | Bin 0 -> 53835 bytes .../static/Projects Pics/SarahWahlen.jpg | Bin 0 -> 76978 bytes .../static/Projects Pics/SeanHarrisCampf.jpg | Bin 0 -> 39878 bytes .../SisterMaryAnnetteDworshak.jpg | Bin 0 -> 76789 bytes .../static/Projects Pics/TarynWebber.jpg | Bin 0 -> 88369 bytes .../static/Projects Pics/TriciaCavanaugh.jpg | Bin 0 -> 64304 bytes .../static/Projects Pics/VeronicaDoyle.jpg | Bin 0 -> 80217 bytes src/test/java/service/WebServerTests.java | 13 +++++++++++++ 46 files changed, 13 insertions(+) create mode 100644 src/main/resources/static/Projects Pics/AbbyDrake.jpg create mode 100644 src/main/resources/static/Projects Pics/AdamButler.jpg create mode 100644 src/main/resources/static/Projects Pics/AmyAnderson.jpg create mode 100644 src/main/resources/static/Projects Pics/AndyLundquist.jpg create mode 100644 src/main/resources/static/Projects Pics/AngelAlvarado.jpg create mode 100644 src/main/resources/static/Projects Pics/AnneGala.jpg create mode 100644 src/main/resources/static/Projects Pics/AnnieSpung.jpg create mode 100644 src/main/resources/static/Projects Pics/AprilLittle.jpg create mode 100644 src/main/resources/static/Projects Pics/AudreyHiatt.jpg create mode 100644 src/main/resources/static/Projects Pics/BeccaSager.jpg create mode 100644 src/main/resources/static/Projects Pics/BeccaShope.jpg create mode 100644 src/main/resources/static/Projects Pics/Cecilia Lofqvist Traum.jpg create mode 100644 src/main/resources/static/Projects Pics/DallasJimenez.jpg create mode 100644 src/main/resources/static/Projects Pics/DavidKarp.jpg create mode 100644 src/main/resources/static/Projects Pics/ElizabethSwift.jpg create mode 100644 src/main/resources/static/Projects Pics/JamesRufoHill.jpg create mode 100644 src/main/resources/static/Projects Pics/JenniferEiken.jpg create mode 100644 src/main/resources/static/Projects Pics/JenniferKelly.jpg create mode 100644 src/main/resources/static/Projects Pics/JennyWielbruda.jpg create mode 100644 src/main/resources/static/Projects Pics/JessicaKershner.jpg create mode 100644 src/main/resources/static/Projects Pics/JessyWilliams.jpg create mode 100644 src/main/resources/static/Projects Pics/JulieTilghman.jpg create mode 100644 src/main/resources/static/Projects Pics/KellyHaley.jpg create mode 100644 src/main/resources/static/Projects Pics/KimDawson.jpg create mode 100644 src/main/resources/static/Projects Pics/KimFicele.jpg create mode 100644 src/main/resources/static/Projects Pics/KimberlyDraggoo.jpg create mode 100644 src/main/resources/static/Projects Pics/KristinKuzmanich.jpg create mode 100644 src/main/resources/static/Projects Pics/LaceyLondon.jpg create mode 100644 src/main/resources/static/Projects Pics/LaurenKarp.jpg create mode 100644 src/main/resources/static/Projects Pics/MarianneMcGah.jpg create mode 100644 src/main/resources/static/Projects Pics/MarissaKoon.jpg create mode 100644 src/main/resources/static/Projects Pics/MattMerlino.jpg create mode 100644 src/main/resources/static/Projects Pics/Maureen Coulton.jpg create mode 100644 src/main/resources/static/Projects Pics/MichaelBachhuber.jpg create mode 100644 src/main/resources/static/Projects Pics/MikaelaHertel.jpg create mode 100644 src/main/resources/static/Projects Pics/NatalieRadich.jpg create mode 100644 src/main/resources/static/Projects Pics/PattiSmith.jpg create mode 100644 src/main/resources/static/Projects Pics/RoseDeBoer.jpg create mode 100644 src/main/resources/static/Projects Pics/RuthGavinoLutu.jpg create mode 100644 src/main/resources/static/Projects Pics/SarahWahlen.jpg create mode 100644 src/main/resources/static/Projects Pics/SeanHarrisCampf.jpg create mode 100644 src/main/resources/static/Projects Pics/SisterMaryAnnetteDworshak.jpg create mode 100644 src/main/resources/static/Projects Pics/TarynWebber.jpg create mode 100644 src/main/resources/static/Projects Pics/TriciaCavanaugh.jpg create mode 100644 src/main/resources/static/Projects Pics/VeronicaDoyle.jpg create mode 100644 src/test/java/service/WebServerTests.java diff --git a/src/main/resources/static/Projects Pics/AbbyDrake.jpg b/src/main/resources/static/Projects Pics/AbbyDrake.jpg new file mode 100644 index 0000000000000000000000000000000000000000..747e7f1a1600b32fdef0dafbaf6664660461e3aa GIT binary patch literal 56125 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%0AOGB5zrOh+u^#j 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