How raptoredd/portfolio works
This is a React cybersecurity portfolio, not a backend service: visitors browse profile, career, projects and homelab material, follow security feeds, and play browser-based CTF challenges. The route shell dispatches visitors to those page-level experiences; the challenge flow includes challenge content, flag checking, and locally persisted progress. Other documented capabilities include theme/team switching and a contact form. Several links below are based on README descriptions or SOURCE INDEX references; unsampled internals are not inferred beyond that evidence.
Main entry points: App.jsx Route shell · useCTFProgress.js Challenge progress · Parcours.jsx Career timeline · Projets.jsx Project showcase
Components 26
App shell
- Route shell
src/App.jsx - Navigation
src/components/layout/Navbar.jsx - Theme control
src/components/layout/ThemeWidget.jsx
Portfolio content
- Profile home
src/pages/Home.jsx - Career timeline
src/pages/Parcours.jsx - Certifications
src/components/home/CertificationsModal.jsx - Project showcase
src/pages/Projets.jsx - Project catalog
src/data/projectsData.js - Homelab view
src/pages/Homelab.jsx - Network graph
src/components/homelab/NetworkGraph.jsx - Timeline content
src/data/timelineData.js
CTF challenges
- Challenge browser
src/pages/CTF.jsx - Challenge content
src/data/ctfData.js - Flag validation
src/components/ctf/CTFFlagInput.jsx - Challenge progress
src/hooks/useCTFProgress.js - Solution guide
src/pages/CTFSolutions.jsx - Vertex simulation
src/pages/VertexAdmin.jsx - VisionCorp scenario
src/pages/VisionCorpPage.jsx
Security resources
- Security feed
src/pages/Veille.jsx - RSS aggregator
src/components/veille/RSSFeed.jsx - Feed sources
src/data/rssFeeds.js - Contact form
src/pages/Contact.jsx
UI state
- Team mode state
src/context/TeamContext.jsx - Theme state
src/context/ThemeContext.jsx
Other components
- Visitor
- Formspree
Connections 30
- Visitor → Route shell: opens
src/App.jsx - Route shell → Profile home: routes to
src/App.jsx - Route shell → Career timeline: routes to
src/App.jsx - Route shell → Project showcase: routes to
src/App.jsx - Route shell → Challenge browser: routes to
src/App.jsx - Route shell → Solution guide: routes to
src/App.jsx - Route shell → Vertex simulation: routes to
src/App.jsx - Route shell → VisionCorp scenario: routes to
src/App.jsx - Route shell → Homelab view: routes to
src/App.jsx - Route shell → Security feed: routes to
src/App.jsx - Route shell → Contact form: routes to
src/App.jsx - Career timeline → Certifications: renders
src/pages/Parcours.jsx - Career timeline → Timeline content: reads
src/pages/Parcours.jsx - Project showcase → Project catalog: reads
src/pages/Projets.jsx - Project showcase → Team mode state: reads mode
src/pages/Projets.jsx - Navigation → Team mode state: reads mode
src/components/layout/Navbar.jsx - Homelab view → Network graph: renders
src/pages/Homelab.jsx - Challenge browser → Challenge content: loads
src/pages/CTF.jsx - Challenge browser → Challenge progress: reads progress
src/pages/CTF.jsx - Solution guide → Challenge content: loads
src/pages/CTFSolutions.jsx - Solution guide → Challenge progress: reads progress
src/pages/CTFSolutions.jsx - Flag validation → Challenge content: checks flags
src/components/ctf/CTFFlagInput.jsx - Flag validation → Challenge progress: records solve
src/components/ctf/CTFFlagInput.jsx - Challenge progress → Visitor: persists locally
src/hooks/useCTFProgress.js - Security feed → RSS aggregator: renders
src/pages/Veille.jsx - RSS aggregator → Feed sources: loads sources
src/components/veille/RSSFeed.jsx - RSS aggregator → Formspree
- Contact form → Formspree: submits form
README.md - Theme control → Theme state: sets theme
src/components/layout/ThemeWidget.jsx - Visitor → Navigation: navigates
README.md