diff --git a/public/404.html b/public/404.html
index d42bc82..5cd9f19 100644
--- a/public/404.html
+++ b/public/404.html
@@ -2,14 +2,31 @@
Page Not Found
-
+
+
+
+
+
- Page cannot be found
- Sorry, this page cannot be found.
+
+
+
Sorry, this page cannot be found.
+ Sorry, this page cannot be found.
+ Sorry, this page cannot be found.
+ Sorry, this page cannot be found.
+ Sorry, this page cannot be found.
+ Sorry, this page cannot be found.
+
diff --git a/public/assets/main.js b/public/assets/main.js
index 3650871..60dc2f6 100644
--- a/public/assets/main.js
+++ b/public/assets/main.js
@@ -1,2 +1 @@
-alert("time to rock");
-console.log("hello");
+console.log("main.js loaded");
diff --git a/public/assets/style.css b/public/assets/style.css
index 9036e97..c5db2cb 100644
--- a/public/assets/style.css
+++ b/public/assets/style.css
@@ -1,3 +1,19 @@
+@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=Anton&family=Bebas+Neue&display=swap");
+:root {
+ --blue: #002D62;
+ --red: #C8102E;
+ --green: #4CAF50;
+ --background: #F5F5F5;
+ --primary-text: #1A1A1A;
+ --secondary-text: #555555;
+ --success: #2E8B57;
+ --warning: #FFA500;
+ --error: #D72638;
+ --primary-font: "Bebas Neue", sans-serif;
+ --secondary-font: "Anton", sans-serif;
+}
+
/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
box-sizing: border-box;
@@ -53,8 +69,58 @@ h1, h2, h3, h4, h5, h6 {
isolation: isolate;
}
+header {
+ background: var(--blue);
+ padding: 20px;
+}
+header #site-name {
+ font-family: var(--secondary-font);
+ font-size: 2rem;
+ letter-spacing: 1px;
+}
+header a {
+ color: var(--background);
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: var(--primary-font);
+}
+
+h1 {
+ font-size: 3rem;
+ font-weight: 700;
+}
+
+h2 {
+ font-size: 2.5rem;
+ font-weight: 700;
+}
+
+h3 {
+ font-size: 2rem;
+ font-weight: 500;
+}
+
+h4 {
+ font-size: 1.5rem;
+ font-weight: 500;
+}
+
+h5 {
+ font-size: 1.2rem;
+ font-weight: 500;
+}
+
+h6 {
+ font-size: 1rem;
+ font-weight: 500;
+}
+
body {
- background: orange;
+ background: var(--background);
+ color: var(--primary-text);
+ padding: 20px;
+ font-size: 1.2rem;
}
img {
diff --git a/public/assets/style.css.map b/public/assets/style.css.map
index 8d73f85..f8656f2 100644
--- a/public/assets/style.css.map
+++ b/public/assets/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../../theme/reset.scss","../../theme/styles.scss"],"names":[],"mappings":"AAAA;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;IACE;;;AAIJ;AACE;EACA;AACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AClDF;EACE;;;AAGF;EACE;EACA","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../../theme/styles.scss","../../theme/variables.scss","../../theme/reset.scss","../../theme/header.scss","../../theme/headings.scss"],"names":[],"mappings":"AAAQ;AACA;ACAR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACZF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;IACE;;;AAIJ;AACE;EACA;AACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACpDF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;;ACXJ;EACE;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;;;AJ3BF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA","file":"style.css"}
\ No newline at end of file
diff --git a/public/images/fenway.jpg b/public/images/fenway.jpg
new file mode 100644
index 0000000..a44a86d
Binary files /dev/null and b/public/images/fenway.jpg differ
diff --git a/public/index.html b/public/index.html
index 89a50b3..157127c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,12 +1,28 @@
- Toolshed
+ BatFlip Scoring App
+
+
+
- This is my toolshed. This web server is built using Rust :)
-
+
+
+
Live Baseball Scoring App, written in Rust
+

+
diff --git a/src/connection.rs b/src/connection.rs
index 1d15a01..77443e8 100644
--- a/src/connection.rs
+++ b/src/connection.rs
@@ -51,26 +51,12 @@ pub fn handle_connection(mut stream: TcpStream) {
);
stream.write(response.as_bytes()).unwrap();
stream.write(&image_data).unwrap();
- }
- else {
+ } else {
response = return_response(&inc_request.path);
stream.write(response.as_bytes()).unwrap();
}
}
-#[allow(dead_code)]
-fn get_header(headers: Vec, needle: &str) -> String {
- let mut value = String::new();
- for header in headers {
- let split_header: Vec<&str> = header.split(":").collect();
- let header_key: String = split_header.first().expect("Nothing here").to_string();
- if header_key == needle {
- value = split_header[1].to_string();
- }
- }
- value
-}
-
fn return_response(path_or_code: &str) -> String {
let status_line: String;
let contents: String;
@@ -99,3 +85,16 @@ fn return_response(path_or_code: &str) -> String {
pub fn path_exists(path: &str) -> bool {
fs::metadata(path).is_ok()
}
+
+#[allow(dead_code)]
+fn get_header(headers: Vec, needle: &str) -> String {
+ let mut value = String::new();
+ for header in headers {
+ let split_header: Vec<&str> = header.split(":").collect();
+ let header_key: String = split_header.first().expect("Nothing here").to_string();
+ if header_key == needle {
+ value = split_header[1].to_string();
+ }
+ }
+ value
+}
diff --git a/src/router.rs b/src/router.rs
index a141a67..0d21e3c 100644
--- a/src/router.rs
+++ b/src/router.rs
@@ -1,8 +1,28 @@
use std::fs;
+use std::collections::HashMap;
pub fn get_route_data(route: &str) -> String {
- match route {
+ // @required - set valid routes here.
+ let route_map = HashMap::from([
+ ("/", "./public/index.html"),
+ ]);
+
+ dbg!(route_map.get(route));
+
+ // match route_map.get(route) {
+ // None => ,
+ // Some(page) => Some(page),
+ // };
+ // Some("test".to_string())
+ //
+ //
+ // High leve list of thigns to do
+ // 1. get the correct file to retrieve
+ // 2. parse the file and swap out any dynamic sections
+ // 3. return the string based response.
+ let route_file: String = match route {
"/" => {
+ "
return fs::read_to_string("./public/index.html").unwrap();
},
"/about" => {
@@ -17,6 +37,8 @@ pub fn get_route_data(route: &str) -> String {
return fs::read_to_string("./public/404.html").unwrap();
}
}
+
+ // fs::read_to_string(route_file).unwrap();
}
// pub fn path_exists(path: &str) -> bool {
diff --git a/theme/header.scss b/theme/header.scss
new file mode 100644
index 0000000..d050da9
--- /dev/null
+++ b/theme/header.scss
@@ -0,0 +1,14 @@
+header {
+ background: var(--blue);
+ padding: 20px;
+
+ #site-name {
+ font-family: var(--secondary-font);
+ font-size: 2rem;
+ letter-spacing: 1px;
+ }
+
+ a {
+ color: var(--background);
+ }
+}
diff --git a/theme/headings.scss b/theme/headings.scss
new file mode 100644
index 0000000..690d137
--- /dev/null
+++ b/theme/headings.scss
@@ -0,0 +1,36 @@
+h1, h2, h3, h4, h5, h6 {
+ font-family: var(--primary-font);
+}
+
+h1 {
+ font-size: 3rem;
+ font-weight: 700;
+
+}
+
+h2 {
+ font-size: 2.5rem;
+ font-weight: 700;
+}
+
+h3 {
+ font-size: 2rem;
+ font-weight: 500;
+}
+
+h4 {
+ font-size: 1.5rem;
+ font-weight: 500;
+
+}
+
+h5 {
+ font-size: 1.2rem;
+ font-weight: 500;
+
+}
+
+h6 {
+ font-size: 1rem;
+ font-weight: 500;
+}
diff --git a/theme/styles.scss b/theme/styles.scss
index 21c6862..6f717e6 100644
--- a/theme/styles.scss
+++ b/theme/styles.scss
@@ -1,9 +1,19 @@
+@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Anton&family=Bebas+Neue&display=swap');
+@import "variables";
@import "reset";
+@import "header";
+@import "headings";
body {
- background: orange;
+ background: var(--background);
+ color: var(--primary-text);
+ padding: 20px;
+ font-size: 1.2rem;
}
+
+
img {
max-width: 100%;
display: block;
diff --git a/theme/variables.scss b/theme/variables.scss
new file mode 100644
index 0000000..7949884
--- /dev/null
+++ b/theme/variables.scss
@@ -0,0 +1,14 @@
+// Color Scheme
+:root {
+ --blue: #002D62;
+ --red: #C8102E;
+ --green: #4CAF50;
+ --background: #F5F5F5;
+ --primary-text: #1A1A1A;
+ --secondary-text: #555555;
+ --success: #2E8B57;
+ --warning: #FFA500;
+ --error: #D72638;
+ --primary-font: "Bebas Neue", sans-serif;
+ --secondary-font: "Anton", sans-serif;
+}
diff --git a/todo.md b/todo.md
new file mode 100644
index 0000000..e69de29