Added extra Project section and fixed banner

Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
Tuan-Dat Tran
2024-04-30 10:15:56 +02:00
parent 212df970b8
commit 116a36c4a9
9 changed files with 115 additions and 176 deletions

View File

@@ -84,7 +84,7 @@ pub fn Card(prop: CardProp) -> Element {
pub fn UnderConstruction() -> Element {
rsx! {
div {
class:"rounded flex justify-between w-full p-4 border-b border-gray-200 bg-gray-50 dark:bg-gray-700 dark:border-gray-600 m-16",
class:"rounded flex justify-between w-full p-4 border-b border-gray-200 bg-gray-50 dark:bg-gray-700 dark:border-gray-600 my-8",
div {
class:"flex items-center mx-auto",
p {
@@ -97,3 +97,9 @@ pub fn UnderConstruction() -> Element {
}
}
}
pub fn HR() -> Element {
rsx! {
hr { class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"}
}
}

View File

@@ -1,6 +1,6 @@
use dioxus::prelude::*;
use crate::components::H4;
use crate::components::{H4, HR};
#[component]
pub fn CV() -> Element {
@@ -8,13 +8,13 @@ pub fn CV() -> Element {
div {
class: "flex flex-col ",
Introduction {},
hr { class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"},
HR {}
div {
class: "flex justify-between",
WorkExperience {},
Miscellaneous {},
},
hr { class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"},
HR {},
Socials {}
}
}

View File

@@ -17,18 +17,23 @@ pub fn Home() -> Element {
H5 { "Tuan-Dat Tran", span { class: "text-grey-600 dark:text-grey-500 text-lg", " (He/Him)" } },
div {
class: "py-4",
P { "Hey there! 👋🏻👋🏼👋🏽👋🏾👋🏿" },
P { "Welcome to my little place on the internet." },
P { "While you're here, why don't you check out my other projects over on my ",
Link {
to: "https://git.tudattr.dev/explore/repos",
new_tab: true,
class: "inline-flex items-center font-medium hover:underline",
"gitea"},
", while this page is still in the proccess of being built? 😊"
div {
class: "mb-2",
P { "Hey there! 👋🏻👋🏼👋🏽👋🏾👋🏿" },
P { "Welcome to my little place on the internet." },
P { "While you're here, why don't you check out my other projects over on my ",
Link {
to: "https://git.tudattr.dev/explore/repos",
new_tab: true,
class: "inline-flex items-center font-medium hover:underline",
"gitea"},
", while this page is still in the proccess of being built? 😊"
},
},
P { "I also offer IT-related consulting." },
P { "Have a look at my CV and contact me if you're interested." },
div {
P { "I also offer IT-related consulting." },
P { "Have a look at my CV and contact me if you're interested." },
}
},
Link {
to: "mailto:tuan-dat.tran@tudattr.dev",

View File

@@ -1,7 +1,7 @@
use dioxus::prelude::{server_fn::error::ServerFnError, *};
use tracing::info;
use crate::components::{H1, P};
use crate::components::{H1, HR, P};
#[component]
pub fn Impressum() -> Element {
@@ -22,7 +22,7 @@ pub fn Impressum() -> Element {
P { "Birkenallee 24" },
P { "36037 Fulda" },
}
hr { class:"h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"}
HR {}
div {
class: "flex flex-col items-center",
P { "tuan-dat.tran@tudattr.dev" },

View File

@@ -7,8 +7,7 @@ pub fn Footer() -> Element {
div {
ToolsUsed {},
footer {
class:"bg-white rounded-lg shadow dark:bg-gray-800 my-4:wa
",
class:"bg-white rounded-lg shadow dark:bg-gray-800 my-4:wa mb-4",
div {
class:"w-full mx-auto max-w-screen-xl p-4 md:flex md:items-center md:justify-between",
span {

View File

@@ -28,7 +28,7 @@ pub fn Header() -> Element {
Link { to: Route::CV {}, class:"block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 dark:text-white md:dark:text-blue-500", "CV" }
}
li {
Link { to: Route::Publications {}, class:"block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 dark:text-white md:dark:text-blue-500", "Publications/Projects" }
Link { to: Route::ProjectsPublications {}, class:"block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 dark:text-white md:dark:text-blue-500", "Publications/Projects" }
}
li {
Link { to: Route::Impressum {}, class:"block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 dark:text-white md:dark:text-blue-500", "About" }

View File

@@ -14,7 +14,7 @@ use crate::cv::CV;
use crate::home::Home;
use crate::impressum::Impressum;
use crate::layout::Layout;
use crate::publications::Publications;
use crate::publications::ProjectsPublications;
#[derive(Clone, Routable, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum Route {
@@ -24,7 +24,7 @@ pub enum Route {
#[route("/impressum")]
Impressum {},
#[route("/publications")]
Publications {},
ProjectsPublications {},
#[route("/resume")]
CV {},
#[end_layout]

View File

@@ -1,11 +1,36 @@
use dioxus::prelude::*;
use crate::components::UnderConstruction;
use crate::components::{UnderConstruction, H1, HR};
#[component]
pub fn Publications() -> Element {
pub fn ProjectsPublications() -> Element {
rsx! {
UnderConstruction { },
div {
H1 { "Publications" }
Publications { },
},
HR {},
div {
H1 { "Projects" }
Projects { },
}
}
}
#[derive(Clone, PartialEq, Props)]
struct PublicationProp {
#[props(default = "".to_string())]
doi: String,
authors: String,
title: String,
conference: String,
#[props(default = "".to_string())]
description: String,
}
fn Publications() -> Element {
rsx! {
div {
class: "flex gap-4 items-center",
Publication {
@@ -24,7 +49,8 @@ pub fn Publications() -> Element {
well as the flow completion time, especially for small
Data Center TCP (DCTCP) flows. around P4 programmable ASIC
switches."
}
},
Publication {
doi: "https://git.tudattr.dev/AISE/seminar/src/branch/main/paper.pdf",
conference: "Seminar",
@@ -35,22 +61,10 @@ pub fn Publications() -> Element {
by IoT fuzzers to circumvent the challenges presented
by IoT devices and the constraints of the
solutions proposed by the IoT fuzzers."
}
},
}
}
}
#[derive(Clone, PartialEq, Props)]
struct PublicationProp {
#[props(default = "".to_string())]
doi: String,
authors: String,
title: String,
conference: String,
#[props(default = "".to_string())]
description: String,
}
fn Publication(prop: PublicationProp) -> Element {
rsx! {
Link {
@@ -61,6 +75,55 @@ fn Publication(prop: PublicationProp) -> Element {
class:"mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white",
"{prop.title}",
},
span { class: "text-lg text-gray-900 dark:text-white", "{prop.conference}" },
p {
class:"font-normal text-gray-700 dark:text-gray-400",
"{prop.authors}",
}
p {
class:"font-normal text-gray-700 dark:text-gray-400",
"{prop.description}",
}
}
}
}
fn Projects() -> Element {
rsx! {
Project {
url: "https://git.tudattr.dev/AISE/seminar/src/branch/main/paper.pdf",
kind: "Bachelorproject",
title: "Undisclosed Ethereum Smart Contract Fuzzer",
authors: "Tuan-Dat Tran",
description: "
In this ingoing project I am building an Ethereum
Smart Contract Fuzzer. More info will follow."
},
}
}
#[derive(Clone, PartialEq, Props)]
struct ProjectProp {
#[props(default = "".to_string())]
url: String,
authors: String,
title: String,
kind: String,
#[props(default = "".to_string())]
description: String,
}
fn Project(prop: ProjectProp) -> Element {
rsx! {
Link {
class:"block max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-700 dark:hover:bg-gray-700",
to:"{prop.url}",
new_tab: true,
h5 {
class:"mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white",
"{prop.title}",
},
p { class: "text-lg text-gray-900 dark:text-white", "{prop.kind}" },
p {
class:"font-normal text-gray-700 dark:text-gray-400",
"{prop.authors}",