Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
b17b873
Basic elements of HTML are present for our home page and an image has…
clairemattingly Oct 14, 2020
aafc9bc
Added an image!
clairemattingly Oct 19, 2020
6bfa04a
Add files via upload
JHopper21 Oct 19, 2020
6a05588
Header Image formatted, (need to make background through CSS) and imp…
clairemattingly Oct 21, 2020
fbf231a
Added CSS stylesheet to homepage, made a blank Dept. page, figured ou…
clairemattingly Oct 28, 2020
b9355f6
Buttons!
clairemattingly Nov 16, 2020
8bb5890
Buttons with Links!
clairemattingly Nov 18, 2020
8dbf9c1
Department Page initial draw-up.
clairemattingly Dec 2, 2020
9cec50a
Changed Department Flexbox items to buttons, and linked to Teachers p…
clairemattingly Dec 7, 2020
db80c94
Changed a tags back to divs and gave them buttons, started working on…
clairemattingly Dec 9, 2020
07230e2
Added finished ConnectToDatabase and UserInput and added pictures to …
JHopper21 Dec 16, 2020
bd0971b
added pictures to static folder
JHopper21 Dec 16, 2020
dc67970
Added Connection to Teacher Database
JHopper21 Dec 23, 2020
a280589
Added method which retrieved a specific teacher's credentials.
JHopper21 Jan 1, 2021
1947b6e
committing changes.
clairemattingly Jan 4, 2021
2ff34e9
Committng to master?
clairemattingly Jan 4, 2021
6aec1ce
Merge branch 'master' into JHopper21-SQL
JHopper21 Jan 4, 2021
fcc334e
Added print statement to print on specific teacher's pages
JHopper21 Jan 4, 2021
4b60b6c
Commit to merge into master
clairemattingly Jan 6, 2021
039915c
Merge pull request #1 from clairemattingly/10/14/20
clairemattingly Jan 6, 2021
34da3b4
Merge branch 'master' into JHopper21-SQL
JHopper21 Jan 6, 2021
b403279
Fixed main controller so could access website and changed html code s…
JHopper21 Jan 13, 2021
ad62571
Merge branch 'master' into JHopper21-SQL
JHopper21 Jan 13, 2021
00bee5f
Merge pull request #2 from JHopper21/JHopper21-SQL
JHopper21 Jan 27, 2021
77ff345
Created percentage of recommendation in student database
JHopper21 Jan 27, 2021
fa336e9
Merge remote-tracking branch 'origin/JHopper21-SQL' into JHopper21-SQL
JHopper21 Jan 27, 2021
84e476c
Added TeacherName Column to student database to allow method to take …
JHopper21 Feb 1, 2021
d229d1b
Just updated code and corrected a few bugs
JHopper21 Feb 3, 2021
1b6d475
Created getDepartmentNames method
JHopper21 Feb 10, 2021
f77af4a
Merge remote-tracking branch 'origin/master'
JHopper21 Feb 10, 2021
3081a49
Merge branch 'master' into JHopper21-SQL
JHopper21 Feb 17, 2021
c21f4c0
Committing to 10;14
clairemattingly Feb 17, 2021
8404e59
Merge branch 'master' into 10/14/20
clairemattingly Feb 17, 2021
89fe432
Merge pull request #3 from clairemattingly/10/14/20
clairemattingly Mar 1, 2021
82b2aad
Merge branch 'master' of https://github.com/clairemattingly/WebServer…
JHopper21 Mar 1, 2021
e27e925
Fixed title and header in dept- can now access the variables from URL…
clairemattingly Mar 3, 2021
abd0e9d
Using Julia's code!
clairemattingly Mar 3, 2021
e8e2931
Connected database to HTML and found way to edit and connect it
JHopper21 Mar 8, 2021
98ce08f
Created Java class for Recommendation objects and connected Student d…
JHopper21 Mar 13, 2021
53e2e46
Did same thing for Teacher database
JHopper21 Mar 15, 2021
7aadbc2
Merge branches '10/14/20' and 'master' of https://github.com/clairema…
clairemattingly Mar 17, 2021
483f8a1
Main controller changes
clairemattingly Mar 17, 2021
63a4fbf
Merge branch 'master' of https://github.com/clairemattingly/WebServer…
clairemattingly Mar 17, 2021
b21995e
Merge pull request #4 from clairemattingly/10/14/20
clairemattingly Apr 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions SQLQuery_1.sql
Original file line number Diff line number Diff line change
@@ -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


7 changes: 7 additions & 0 deletions SQLQuery_2.sql
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions SQLQuery_3.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT * FROM Student
ORDER BY ClassYear DESC;
109 changes: 109 additions & 0 deletions src/main/java/service/ConnectToStudentDatabase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
package service;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;


public class ConnectToStudentDatabase {
public static double percentageCalculation(String teacherName) {//connects to database and returns percentages of yes for specific teacher
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;
double percentage = 0;
int num = 0;

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()) {
if(resultSet.getString(1).equals(teacherName))
{
if(resultSet.getString(4)=="Yes")
{
percentage++;
}
num++;
}

}
percentage = percentage/num;

connection.close();

} catch (SQLException e)//handle any errors
{
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return percentage;
}

public static ArrayList<Recommendations> recommendationInfo()
{
ArrayList<Recommendations> studentRecommendation = new ArrayList <Recommendations>();
Recommendations newRecommendation = new Recommendations("","",0,"","");

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 query = "SELECT * FROM Student";//SQL SELECT query
Statement st = connection.createStatement();//create the java statement

ResultSet rs = st.executeQuery(query);//execute the query and get a java resultset

while(rs.next())//iterate through java resultset
{
String teacherName = rs.getString("student_TeacherName");
newRecommendation.setTeacherName(teacherName);
String name = rs.getString("student_Name");
newRecommendation.setStudentName(name);
int classYear = rs.getInt("student_ClassYear");
newRecommendation.setClassYear(classYear);
String recommendation = rs.getString("student_Recommendation");
newRecommendation.setRecommendation(recommendation);
String why = rs.getString("student_Why");
newRecommendation.setWhy(why);

studentRecommendation.add(newRecommendation);
//printing out the results
System.out.format(newRecommendation.getTeacherName(), newRecommendation.getStudentName(), newRecommendation.getClassYear(), newRecommendation.getRecommendation(), newRecommendation.getWhy());

}
st.close();
}
catch (SQLException e)//handle any errors
{
e.printStackTrace();
}

return studentRecommendation;
}
}

154 changes: 154 additions & 0 deletions src/main/java/service/ConnectToTeacherDatabase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
package service;

import java.util.ArrayList;
import java.sql.*;

public class ConnectToTeacherDatabase {
public static ArrayList<TeacherInfo> teacherInfo() {
ArrayList<TeacherInfo> teacherInfo = new ArrayList<TeacherInfo>();
TeacherInfo newTeacherInfo = new TeacherInfo("","","","", "");

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 Teacher; ";

try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectSql)) {

while (resultSet.next()) {
String teacherName = resultSet.getString("teacher_Name");//might need to capatalize if doesn't work
newTeacherInfo.setTeacherName(teacherName);
String title = resultSet.getString("teacher_Title");
newTeacherInfo.setTitle(title);
String department = resultSet.getString("teacher_Department");
newTeacherInfo.setDepartment(department);
String education = resultSet.getString("teacher_Education");
newTeacherInfo.setEducation(education);
String email = resultSet.getString("teacher_Email");
newTeacherInfo.setEmail(email);

teacherInfo.add(newTeacherInfo);
//printing out the results
System.out.format(newTeacherInfo.getTeacherName(), newTeacherInfo.getTitle(), newTeacherInfo.getDepartment(), newTeacherInfo.getEducation(), newTeacherInfo.getEmail());
}

connection.close();

} catch (SQLException e)//handle any errors
{
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return teacherInfo;
}
public static ArrayList<String> getTeacher(String teacherName) {
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;
ArrayList<String> teacherInfo = new ArrayList <String>();

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 Teacher; ";


try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectSql)) {

while (resultSet.next()) {
if (resultSet.getString(1).equals(teacherName))
{
teacherInfo.add(resultSet.getString(1));
teacherInfo.add(resultSet.getString(2));
teacherInfo.add(resultSet.getString(3));
teacherInfo.add(resultSet.getString(4));
teacherInfo.add(resultSet.getString(5));
System.out.println(teacherInfo.add(resultSet.getString(1)));
System.out.println(teacherInfo.add(resultSet.getString(2)));
System.out.println(teacherInfo.add(resultSet.getString(3)));
System.out.println("Background: " + teacherInfo.add(resultSet.getString(4)));
System.out.println("Contact: " + teacherInfo.add(resultSet.getString(5)));
break;
}
}
connection.close();

}
catch (SQLException e)//handle any errors
{
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return teacherInfo;
}

public static ArrayList<String> getDepartmentNames(String department) {
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;
ArrayList<String> teacherNames = new ArrayList <String>();

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 Teacher; ";


try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectSql)) {

while (resultSet.next()) {
if (resultSet.getString(3).equals(department))
{
teacherNames.add(resultSet.getString(1));
}
}
connection.close();

}
catch (SQLException e)//handle any errors
{
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return teacherNames;
}
}

77 changes: 44 additions & 33 deletions src/main/java/service/MainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,51 @@
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;

@Controller
public class MainController {
static Map<String, List<String>> categoryToMembers = Map.of(
"fruits", List.of("apples", "bananas", "pears", "blueberries"),
"veggies", List.of("broccoli", "spinach", "eggplant")
);

@GetMapping("/hello")
public String hello(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "hello";
}

@GetMapping("/")
public String index() {
return "index";
}

@GetMapping("/info/{category}")
public String category(@PathVariable("category") String category, Model model) {
String name = "Harsha";
List<String> members = categoryToMembers.getOrDefault(category, new ArrayList<>());
model.addAttribute("category", category);
model.addAttribute("name", name);
model.addAttribute("members", members);

return "info";
}

}

@GetMapping("/")
public String home() {

return "Home";
}

@GetMapping("/Department")
public String department(@RequestParam(name = "department", required = true) String department, Model model) {
model.addAttribute("department", department); // make the variable subject available in your html
// this is where you call methods you've written to get information from your database, then store it a variable
// and call model.addAttribute with that variable so you can use it in your html

//Fix this code-
ConnectToTeacherDatabase database = new ConnectToTeacherDatabase();
ArrayList<String> teacherNames = database.getDepartmentNames(department);
model.addAttribute("teachers", teacherNames);

return "department";

//model.addAttribute("teachers", teacherNames); // make the variable subject available in your html
// this is where you call methods you've written to get information from your database, then store it a variable
// and call model.addAttribute with that variable so you can use it in your html
}

@GetMapping("/Teacher")
public String teacher(@RequestParam(name = "teacher", required = true) String teacher, Model model) {
model.addAttribute("teacher", teacher); // make the variable subject available in your html
// this is where you call methods you've written to get information from your database, then store it a variable
// and call model.addAttribute with that variable so you can use it in your html

//fix below
ArrayList<Recommendations> studentRecommendation = ConnectToStudentDatabase.recommendationInfo();
model.addAttribute("studentRecommendation", studentRecommendation);

return "teacher";

//model.addAttribute("teachers", teacherNames); // make the variable subject available in your html
// this is where you call methods you've written to get information from your database, then store it a variable
// and call model.addAttribute with that variable so you can use it in your html
}

}
Loading