done, for now

This commit is contained in:
2025-07-24 15:00:41 -05:00
parent 53db1b34c9
commit af91151497
2 changed files with 96 additions and 29 deletions

View File

@@ -21,9 +21,11 @@ const auto hacker_button_active_style = color(Color::LightGreen) | bold;
Component MakeAboutPage() {
const std::string content =
"Hi, I'm Krishna — cybersecurity and AI researcher.\n"
"🔹 Rustacean | 🔹 CTF Red Teamer | 🔹 OSS Contributor\n\n"
"Focus areas: Secure systems, ML accuracy, and privacy.";
"Hi, I'm Krishna Ayyalasomayajula — cybersecurity researcher and systems engineer.\n"
"🦀 Rustacean | 🔴 Red Team Specialist | 🧠 AI/ML Research Assistant\n\n"
"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 paragraph(content) | hacker_text_style | flex;
@@ -32,24 +34,25 @@ Component MakeAboutPage() {
Component MakeProjectsPage() {
const std::vector<Project> projects = {
{"🔐 VaultX — Stego-auth password vault", "https://github.com/krishna/vaultx"},
{"🌐 P2PChat — Gossip-based secure chat", "https://github.com/krishna/p2pchat"},
{"📊 Tenderlabs — Options research tool", ""},
{"🛰️ SpaceData Viz — TUI telemetry monitor", "https://github.com/krishna/spacedata"}
{"🗃️ Matrix FS — L2 distributed storage over IPFS", "Rust + Tauri + Svelte, AES-256-CBC/ChaCha20-Poly1305 encryption"},
{"🎓 Bon Voyage — AI MOOC content generator", "Java + Stanford CoreNLP, MLH Hackathon winner"},
{"🏥 EHR System — Secure health records platform", "Java client-server, TCP/IP sockets, Swing GUI, SMB integration"},
{"🧮 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({});
for (const Project& project : projects) {
Component card = Renderer([project]() -> Element {
Element title = text(project.title) | hacker_text_style;
Element link_line = project.link.empty()
? text("")
: text("🔗 " + project.link) | hacker_link_style;
Element title = text(project.title) | hacker_text_style | bold;
Element desc = text(project.link) | color(Color::GreenYellow);
return vbox({
title,
link_line
desc
}) | hacker_border_style;
});
@@ -63,9 +66,9 @@ Component MakeProjectsPage() {
Component MakeEducationPage() {
const std::vector<std::string> entries = {
"🏫 STEM Endorsed High School\nGPA: 4.52 | 20212025",
"🎓 Self-study: MIT OCW (Linear Algebra, ML)",
"🔍 NSA Codebreaker, Lockheed Red Team"
"🏫 Plano East Senior High School (20222026)\nSTEM & Multi-disciplinary Endorsement\nCS & Mathematics concentrations",
"📚 Coursework: Data Structures, OOP, Calculus, Differential Equations,\nProbability, Statistics, Newtonian Physics",
"🔬 Research Assistant to Dr. Madan M. T. Ayyalasomayajula (2022Present)\nLiterature review, benchmarking, technical workflows"
};
Component container = Container::Vertical({});
@@ -84,9 +87,11 @@ Component MakeEducationPage() {
Component MakeWorkPage() {
const std::vector<std::string> jobs = {
"🔧 Founder @ Tenderlabs\nQuant research & trading infrastructure",
"💻 IT Army of Ukraine\nCyberdefense and red-teaming (202324)",
"🏢 Lockheed Martin Competitions\n2nd in 2025, 4th in 2024"
"👑 President, Cybersecurity Club at PESH (20232026)\nEthical hacking workshops, CTF prep, digital forensics mentoring",
"💻 Officer, Computer Science Club at PESH (20232026)\nData structures instruction, Java sessions, Git workflows",
"🔍 Trace Labs OSINT Search Party (20232024)\nMissing person investigations, OSINT pivoting, geolocation analysis",
"🇺🇦 IT Army of Ukraine (Dec 2023Feb 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({});
@@ -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() {
const std::string contact_info =
"📫 Email: krishna@domain.com\n"
"💻 GitHub: github.com/krishna\n"
"🔗 LinkedIn: linkedin.com/in/krishna\n"
"📍 Based in DFW Metroplex";
"📫 Email: krishna@ayyalasomayajula.net\n"
"🌐 Website: https://krishna.ayyalasomayajula.net\n"
"📞 Phone: (214) 293-5743\n"
"📍 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 paragraph(contact_info) | hacker_text_style | flex;
@@ -122,6 +176,8 @@ PortfolioApp::PortfolioApp() {
projects_page_ = MakeProjectsPage();
education_page_ = MakeEducationPage();
work_page_ = MakeWorkPage();
awards_page_ = MakeAwardsPage();
skills_page_ = MakeSkillsPage();
contact_page_ = MakeContactPage();
// Add pages to vector
@@ -129,10 +185,12 @@ PortfolioApp::PortfolioApp() {
pages_.push_back(projects_page_);
pages_.push_back(education_page_);
pages_.push_back(work_page_);
pages_.push_back(awards_page_);
pages_.push_back(skills_page_);
pages_.push_back(contact_page_);
// 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;
for (int i = 0; i < (int)labels.size(); ++i) {
@@ -190,4 +248,3 @@ bool PortfolioApp::OnEvent(Event event) {
}
return ComponentBase::OnEvent(event);
}

View File

@@ -1,5 +1,4 @@
#pragma once
#include <ftxui/component/component.hpp>
#include <ftxui/component/component_base.hpp>
#include <ftxui/component/screen_interactive.hpp>
@@ -10,7 +9,6 @@
// ------------------
// Structs
// ------------------
struct Project {
std::string title;
std::string link; // Leave empty if no link
@@ -19,7 +17,6 @@ struct Project {
// ------------------
// Page Factory Functions
// ------------------
/**
* Creates the About page component
* @return Component containing personal introduction and focus areas
@@ -44,6 +41,18 @@ ftxui::Component MakeEducationPage();
*/
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
* @return Component with contact information
@@ -53,7 +62,6 @@ ftxui::Component MakeContactPage();
// ------------------
// Main Application Class
// ------------------
/**
* Main portfolio application class that manages navigation and page switching
* Inherits from ftxui::ComponentBase to provide custom rendering and event handling
@@ -67,7 +75,7 @@ public:
/**
* 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);
@@ -93,6 +101,8 @@ private:
ftxui::Component projects_page_; // Projects page component
ftxui::Component education_page_; // Education 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
std::vector<ftxui::Component> pages_; // Vector of all page components