done, for now
This commit is contained in:
@@ -21,9 +21,11 @@ const auto hacker_button_active_style = color(Color::LightGreen) | bold;
|
|||||||
|
|
||||||
Component MakeAboutPage() {
|
Component MakeAboutPage() {
|
||||||
const std::string content =
|
const std::string content =
|
||||||
"Hi, I'm Krishna — cybersecurity and AI researcher.\n"
|
"Hi, I'm Krishna Ayyalasomayajula — cybersecurity researcher and systems engineer.\n"
|
||||||
"🔹 Rustacean | 🔹 CTF Red Teamer | 🔹 OSS Contributor\n\n"
|
"🦀 Rustacean | 🔴 Red Team Specialist | 🧠 AI/ML Research Assistant\n\n"
|
||||||
"Focus areas: Secure systems, ML accuracy, and privacy.";
|
"Focus areas: Distributed systems, offensive security, cryptography, and AI integration.\n"
|
||||||
|
"Currently: Senior at Plano East (STEM), Research Assistant, Cybersecurity Club President.\n\n"
|
||||||
|
"📍 DFW Metroplex | 💳 US Green Card Holder | 📧 krishna@ayyalasomayajula.net";
|
||||||
|
|
||||||
return Renderer([content]() -> Element {
|
return Renderer([content]() -> Element {
|
||||||
return paragraph(content) | hacker_text_style | flex;
|
return paragraph(content) | hacker_text_style | flex;
|
||||||
@@ -32,24 +34,25 @@ Component MakeAboutPage() {
|
|||||||
|
|
||||||
Component MakeProjectsPage() {
|
Component MakeProjectsPage() {
|
||||||
const std::vector<Project> projects = {
|
const std::vector<Project> projects = {
|
||||||
{"🔐 VaultX — Stego-auth password vault", "https://github.com/krishna/vaultx"},
|
{"🗃️ Matrix FS — L2 distributed storage over IPFS", "Rust + Tauri + Svelte, AES-256-CBC/ChaCha20-Poly1305 encryption"},
|
||||||
{"🌐 P2PChat — Gossip-based secure chat", "https://github.com/krishna/p2pchat"},
|
{"🎓 Bon Voyage — AI MOOC content generator", "Java + Stanford CoreNLP, MLH Hackathon winner"},
|
||||||
{"📊 Tenderlabs — Options research tool", ""},
|
{"🏥 EHR System — Secure health records platform", "Java client-server, TCP/IP sockets, Swing GUI, SMB integration"},
|
||||||
{"🛰️ SpaceData Viz — TUI telemetry monitor", "https://github.com/krishna/spacedata"}
|
{"🧮 Rule-based Tensor Mutations for LLMs", "Novel LLaMA 3B enhancement, published on TechRxiv"},
|
||||||
|
{"🏠 Home Infrastructure — 50-user self-hosted platform", "40+ Docker containers, WireGuard mesh, 150TB ZFS NAS"},
|
||||||
|
{"🤖 SLAM Guide for Autonomous Robotics", "Probabilistic mapping algorithms, F1Tenth platform experience"},
|
||||||
|
{"⚔️ CyberPatriot Automation Suite", "Rust/PowerShell scripts, 30+ points per round, licensed to other teams"}
|
||||||
};
|
};
|
||||||
|
|
||||||
Component container = Container::Vertical({});
|
Component container = Container::Vertical({});
|
||||||
|
|
||||||
for (const Project& project : projects) {
|
for (const Project& project : projects) {
|
||||||
Component card = Renderer([project]() -> Element {
|
Component card = Renderer([project]() -> Element {
|
||||||
Element title = text(project.title) | hacker_text_style;
|
Element title = text(project.title) | hacker_text_style | bold;
|
||||||
Element link_line = project.link.empty()
|
Element desc = text(project.link) | color(Color::GreenYellow);
|
||||||
? text("")
|
|
||||||
: text("🔗 " + project.link) | hacker_link_style;
|
|
||||||
|
|
||||||
return vbox({
|
return vbox({
|
||||||
title,
|
title,
|
||||||
link_line
|
desc
|
||||||
}) | hacker_border_style;
|
}) | hacker_border_style;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -63,9 +66,9 @@ Component MakeProjectsPage() {
|
|||||||
|
|
||||||
Component MakeEducationPage() {
|
Component MakeEducationPage() {
|
||||||
const std::vector<std::string> entries = {
|
const std::vector<std::string> entries = {
|
||||||
"🏫 STEM Endorsed High School\nGPA: 4.52 | 2021–2025",
|
"🏫 Plano East Senior High School (2022–2026)\nSTEM & Multi-disciplinary Endorsement\nCS & Mathematics concentrations",
|
||||||
"🎓 Self-study: MIT OCW (Linear Algebra, ML)",
|
"📚 Coursework: Data Structures, OOP, Calculus, Differential Equations,\nProbability, Statistics, Newtonian Physics",
|
||||||
"🔍 NSA Codebreaker, Lockheed Red Team"
|
"🔬 Research Assistant to Dr. Madan M. T. Ayyalasomayajula (2022–Present)\nLiterature review, benchmarking, technical workflows"
|
||||||
};
|
};
|
||||||
|
|
||||||
Component container = Container::Vertical({});
|
Component container = Container::Vertical({});
|
||||||
@@ -84,9 +87,11 @@ Component MakeEducationPage() {
|
|||||||
|
|
||||||
Component MakeWorkPage() {
|
Component MakeWorkPage() {
|
||||||
const std::vector<std::string> jobs = {
|
const std::vector<std::string> jobs = {
|
||||||
"🔧 Founder @ Tenderlabs\nQuant research & trading infrastructure",
|
"👑 President, Cybersecurity Club at PESH (2023–2026)\nEthical hacking workshops, CTF prep, digital forensics mentoring",
|
||||||
"💻 IT Army of Ukraine\nCyberdefense and red-teaming (2023–24)",
|
"💻 Officer, Computer Science Club at PESH (2023–2026)\nData structures instruction, Java sessions, Git workflows",
|
||||||
"🏢 Lockheed Martin Competitions\n2nd in 2025, 4th in 2024"
|
"🔍 Trace Labs OSINT Search Party (2023–2024)\nMissing person investigations, OSINT pivoting, geolocation analysis",
|
||||||
|
"🇺🇦 IT Army of Ukraine (Dec 2023–Feb 2024)\nOffensive squad leader, DDoS campaigns, persistent takedowns",
|
||||||
|
"🎯 Active Red Team Practitioner\nHack The Box (Rank 564), TryHackMe KoTH Top 5, 15+ HTB machines"
|
||||||
};
|
};
|
||||||
|
|
||||||
Component container = Container::Vertical({});
|
Component container = Container::Vertical({});
|
||||||
@@ -103,12 +108,61 @@ Component MakeWorkPage() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Component MakeAwardsPage() {
|
||||||
|
const std::vector<std::string> awards = {
|
||||||
|
"🥈 Lockheed Martin Code Quest — 2nd Place (2025) \t DFW metroplex, reverse engineering & low-level security",
|
||||||
|
"🥇 CyberPatriot — State Level Gold Tier (2025) \t Offensive security analysis in blue-team environment",
|
||||||
|
"🏆 Battle of the Brains — 5th Place Spring 2024, 10th Place Spring 2025 \t Regional algorithms competitions at UTD",
|
||||||
|
"🔓 NSA Codebreaker Challenge (Nov 2024) \t 5 advanced tasks: protocol exploitation, reverse engineering",
|
||||||
|
"👑 TryHackMe King of the Hill — Top 5 (2024) \t 2 consecutive days, live red team capabilities",
|
||||||
|
"💀 Hack The Box — Peak Rank 564 \t 15+ Medium machines, 90% progress toward 'Hacker' rank"
|
||||||
|
};
|
||||||
|
|
||||||
|
Component container = Container::Vertical({});
|
||||||
|
|
||||||
|
for (const std::string& award : awards) {
|
||||||
|
Component card = Renderer([award]() -> Element {
|
||||||
|
return text(award) | hacker_text_style | hacker_border_style;
|
||||||
|
});
|
||||||
|
container->Add(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Renderer(container, [container]() -> Element {
|
||||||
|
return vbox(container->Render()) | vscroll_indicator | yframe | flex;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Component MakeSkillsPage() {
|
||||||
|
const std::string skills_content =
|
||||||
|
"🦀 Languages: Rust (5/5), Async Rust, Python, Java, C/C++, TypeScript, Solidity\n\n"
|
||||||
|
"🌐 Networking: WireGuard, Tailscale, Tor, I2P, DNS, DHCP, TLS, gRPC, QUIC\n\n"
|
||||||
|
"⚔️ Red Team Arsenal:\n"
|
||||||
|
" • Recon: amass, subfinder, shodan, nuclei, ffuf\n"
|
||||||
|
" • Web: sqlmap, Burp Suite Pro, OWASP ZAP, nikto\n"
|
||||||
|
" • Post-Exploit: Empire, Covenant, Metasploit, Cobalt Strike\n"
|
||||||
|
" • AD: BloodHound, Rubeus, mimikatz, impacket\n"
|
||||||
|
" • PrivEsc: linPEAS, winPEAS, JuicyPotato\n\n"
|
||||||
|
"🔐 Crypto: ChaCha20Poly1305, Ed25519, Kyber1024, Dilithium5, TLS 1.3\n\n"
|
||||||
|
"🐧 Systems: Arch Linux, kernel patching, BPF/eBPF, QEMU/KVM, systemd\n\n"
|
||||||
|
"☁️ Cloud: AWS (EC2, S3, Lambda), Terraform, Docker, Kubernetes";
|
||||||
|
|
||||||
|
return Renderer([skills_content]() -> Element {
|
||||||
|
return paragraph(skills_content) | hacker_text_style | flex;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Component MakeContactPage() {
|
Component MakeContactPage() {
|
||||||
const std::string contact_info =
|
const std::string contact_info =
|
||||||
"📫 Email: krishna@domain.com\n"
|
"📫 Email: krishna@ayyalasomayajula.net\n"
|
||||||
"💻 GitHub: github.com/krishna\n"
|
"🌐 Website: https://krishna.ayyalasomayajula.net\n"
|
||||||
"🔗 LinkedIn: linkedin.com/in/krishna\n"
|
"📞 Phone: (214) 293-5743\n"
|
||||||
"📍 Based in DFW Metroplex";
|
"📍 Based in DFW Metroplex, Texas\n"
|
||||||
|
"💳 US Green Card Holder\n\n"
|
||||||
|
"🔗 Connect with me for:\n"
|
||||||
|
" • Cybersecurity research collaboration\n"
|
||||||
|
" • Red team consulting\n"
|
||||||
|
" • Distributed systems projects\n"
|
||||||
|
" • AI/ML security research";
|
||||||
|
|
||||||
return Renderer([contact_info]() -> Element {
|
return Renderer([contact_info]() -> Element {
|
||||||
return paragraph(contact_info) | hacker_text_style | flex;
|
return paragraph(contact_info) | hacker_text_style | flex;
|
||||||
@@ -122,6 +176,8 @@ PortfolioApp::PortfolioApp() {
|
|||||||
projects_page_ = MakeProjectsPage();
|
projects_page_ = MakeProjectsPage();
|
||||||
education_page_ = MakeEducationPage();
|
education_page_ = MakeEducationPage();
|
||||||
work_page_ = MakeWorkPage();
|
work_page_ = MakeWorkPage();
|
||||||
|
awards_page_ = MakeAwardsPage();
|
||||||
|
skills_page_ = MakeSkillsPage();
|
||||||
contact_page_ = MakeContactPage();
|
contact_page_ = MakeContactPage();
|
||||||
|
|
||||||
// Add pages to vector
|
// Add pages to vector
|
||||||
@@ -129,10 +185,12 @@ PortfolioApp::PortfolioApp() {
|
|||||||
pages_.push_back(projects_page_);
|
pages_.push_back(projects_page_);
|
||||||
pages_.push_back(education_page_);
|
pages_.push_back(education_page_);
|
||||||
pages_.push_back(work_page_);
|
pages_.push_back(work_page_);
|
||||||
|
pages_.push_back(awards_page_);
|
||||||
|
pages_.push_back(skills_page_);
|
||||||
pages_.push_back(contact_page_);
|
pages_.push_back(contact_page_);
|
||||||
|
|
||||||
// Create navigation sidebar with green styling
|
// Create navigation sidebar with green styling
|
||||||
std::vector<std::string> labels = {"About", "Projects", "Education", "Work", "Contact"};
|
std::vector<std::string> labels = {"About", "Projects", "Education", "Work", "Awards", "Skills", "Contact"};
|
||||||
|
|
||||||
std::vector<Component> buttons;
|
std::vector<Component> buttons;
|
||||||
for (int i = 0; i < (int)labels.size(); ++i) {
|
for (int i = 0; i < (int)labels.size(); ++i) {
|
||||||
@@ -190,4 +248,3 @@ bool PortfolioApp::OnEvent(Event event) {
|
|||||||
}
|
}
|
||||||
return ComponentBase::OnEvent(event);
|
return ComponentBase::OnEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ftxui/component/component.hpp>
|
#include <ftxui/component/component.hpp>
|
||||||
#include <ftxui/component/component_base.hpp>
|
#include <ftxui/component/component_base.hpp>
|
||||||
#include <ftxui/component/screen_interactive.hpp>
|
#include <ftxui/component/screen_interactive.hpp>
|
||||||
@@ -10,7 +9,6 @@
|
|||||||
// ------------------
|
// ------------------
|
||||||
// Structs
|
// Structs
|
||||||
// ------------------
|
// ------------------
|
||||||
|
|
||||||
struct Project {
|
struct Project {
|
||||||
std::string title;
|
std::string title;
|
||||||
std::string link; // Leave empty if no link
|
std::string link; // Leave empty if no link
|
||||||
@@ -19,7 +17,6 @@ struct Project {
|
|||||||
// ------------------
|
// ------------------
|
||||||
// Page Factory Functions
|
// Page Factory Functions
|
||||||
// ------------------
|
// ------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the About page component
|
* Creates the About page component
|
||||||
* @return Component containing personal introduction and focus areas
|
* @return Component containing personal introduction and focus areas
|
||||||
@@ -44,6 +41,18 @@ ftxui::Component MakeEducationPage();
|
|||||||
*/
|
*/
|
||||||
ftxui::Component MakeWorkPage();
|
ftxui::Component MakeWorkPage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the Awards page component
|
||||||
|
* @return Component displaying awards, competitions, and achievements
|
||||||
|
*/
|
||||||
|
ftxui::Component MakeAwardsPage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the Skills page component
|
||||||
|
* @return Component showing technical skills and expertise
|
||||||
|
*/
|
||||||
|
ftxui::Component MakeSkillsPage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the Contact page component
|
* Creates the Contact page component
|
||||||
* @return Component with contact information
|
* @return Component with contact information
|
||||||
@@ -53,7 +62,6 @@ ftxui::Component MakeContactPage();
|
|||||||
// ------------------
|
// ------------------
|
||||||
// Main Application Class
|
// Main Application Class
|
||||||
// ------------------
|
// ------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main portfolio application class that manages navigation and page switching
|
* Main portfolio application class that manages navigation and page switching
|
||||||
* Inherits from ftxui::ComponentBase to provide custom rendering and event handling
|
* Inherits from ftxui::ComponentBase to provide custom rendering and event handling
|
||||||
@@ -67,7 +75,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Switch to a specific page by index
|
* Switch to a specific page by index
|
||||||
* @param index The page index to switch to (0-4)
|
* @param index The page index to switch to (0-6)
|
||||||
*/
|
*/
|
||||||
void SwitchPage(int index);
|
void SwitchPage(int index);
|
||||||
|
|
||||||
@@ -93,6 +101,8 @@ private:
|
|||||||
ftxui::Component projects_page_; // Projects page component
|
ftxui::Component projects_page_; // Projects page component
|
||||||
ftxui::Component education_page_; // Education page component
|
ftxui::Component education_page_; // Education page component
|
||||||
ftxui::Component work_page_; // Work page component
|
ftxui::Component work_page_; // Work page component
|
||||||
|
ftxui::Component awards_page_; // Awards page component
|
||||||
|
ftxui::Component skills_page_; // Skills page component
|
||||||
ftxui::Component contact_page_; // Contact page component
|
ftxui::Component contact_page_; // Contact page component
|
||||||
|
|
||||||
std::vector<ftxui::Component> pages_; // Vector of all page components
|
std::vector<ftxui::Component> pages_; // Vector of all page components
|
||||||
|
|||||||
Reference in New Issue
Block a user