diff --git a/src/portfolioapp.cpp b/src/portfolioapp.cpp index 66b434b..ca7c6d5 100644 --- a/src/portfolioapp.cpp +++ b/src/portfolioapp.cpp @@ -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 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 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 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 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 labels = {"About", "Projects", "Education", "Work", "Contact"}; + std::vector labels = {"About", "Projects", "Education", "Work", "Awards", "Skills", "Contact"}; std::vector buttons; for (int i = 0; i < (int)labels.size(); ++i) { @@ -190,4 +248,3 @@ bool PortfolioApp::OnEvent(Event event) { } return ComponentBase::OnEvent(event); } - diff --git a/src/portfolioapp.hpp b/src/portfolioapp.hpp index 6713145..75b2caa 100644 --- a/src/portfolioapp.hpp +++ b/src/portfolioapp.hpp @@ -1,5 +1,4 @@ #pragma once - #include #include #include @@ -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 pages_; // Vector of all page components