done, for now
This commit is contained in:
@@ -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 | 2021–2025",
|
||||
"🎓 Self-study: MIT OCW (Linear Algebra, ML)",
|
||||
"🔍 NSA Codebreaker, Lockheed Red Team"
|
||||
"🏫 Plano East Senior High School (2022–2026)\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 (2022–Present)\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 (2023–24)",
|
||||
"🏢 Lockheed Martin Competitions\n2nd in 2025, 4th in 2024"
|
||||
"👑 President, Cybersecurity Club at PESH (2023–2026)\nEthical hacking workshops, CTF prep, digital forensics mentoring",
|
||||
"💻 Officer, Computer Science Club at PESH (2023–2026)\nData structures instruction, Java sessions, Git workflows",
|
||||
"🔍 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({});
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user