Added extra Project section and fixed banner
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
@@ -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"}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {}
|
||||
}
|
||||
}
|
||||
|
||||
27
src/home.rs
27
src/home.rs
@@ -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",
|
||||
|
||||
@@ -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" },
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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" }
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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}",
|
||||
|
||||
Reference in New Issue
Block a user