How antondorovs/antondorovs-com works
This is a bilingual personal portfolio website with dedicated browser-game routes. Visitors enter through the React app, which selects the home, privacy-policy, or game page from the URL hash; game sessions then provide shared play, pause, fullscreen, and record behavior. The README documents portfolio content, themes, consent, and four games. Several page and integration files are not sampled, so their internal wiring is shown only where the entry-point code or documentation supports it.
Main entry points: App.jsx Route app · GameSession.jsx Game session · HomePage.jsx Portfolio home · GamePage.jsx Game page
Components 26
Portfolio site
- Route app
apps/web/src/app/App.jsx - Route definitions
apps/web/src/app/routes.js - Portfolio home
apps/web/src/pages/HomePage/HomePage.jsx - Game page
apps/web/src/pages/GamePage/GamePage.jsx - Privacy page
apps/web/src/pages/PrivacyPolicyPage/PrivacyPolicyPage.jsx - Portfolio sections
apps/web/src/modules - Site header
apps/web/src/modules/header/Header.jsx - Theme mode
apps/web/src/shared/theme/useThemeMode.js
Language and privacy
- Language provider
apps/web/src/shared/i18n/LanguageProvider.jsx - Localized copy
apps/web/src/shared/i18n - Consent controls
apps/web/src/modules/privacy/ConsentProvider.jsx - Privacy settings
apps/web/src/modules/privacy/ConsentBanner.jsx
Browser games
- Game session
apps/web/src/games/shared/GameSession.jsx - Game records
apps/web/src/games/shared/gameRecords.js - Snake game
apps/web/src/games/snake/SnakeGame.jsx - Snake rules
apps/web/src/games/snake/snakeEngine.js - Dino game
apps/web/src/games/dino/DinoGame.jsx - Game of Life
apps/web/src/games/game-of-life/GameOfLife.jsx - Flappy Bird
apps/web/src/games/flappy-bird/FlappyBirdGame.jsx
State and services
- Analytics loader
apps/web/src/modules/analytics/AnalyticsScripts.jsx - Visit counter UI
apps/web/src/modules/analytics/visitCounter.js - Counter API
apps/web/public/api/site-info.php - Counter file store
apps/web/public/api/site-info.php
Other components
- Visitor
- Browser storage and APIs
- Analytics providers
Connections 25
- Visitor → Route app: opens site
- Route app → Route definitions: resolves hash
- Route app → Portfolio home: renders default
- Route app → Game page: renders game route
- Route app → Privacy page: renders privacy route
- Route app → Analytics loader: loads scripts
- Route app → Privacy settings: renders controls
- Portfolio home → Site header: presents navigation
- Portfolio home → Portfolio sections: presents portfolio
- Site header → Theme mode: selects theme
- Language provider → Localized copy: loads copy
- Visitor → Language provider: chooses language
- Visitor → Consent controls: sets preferences
- Consent controls → Browser storage and APIs: persists choice
- Analytics loader → Analytics providers: loads services
- Visit counter UI → Counter API: requests counts
- Counter API → Counter file store: reads and writes
- Game page → Game session: hosts session
- Game session → Game records: reads and saves
- Game records → Browser storage and APIs: stores records
- Game session → Snake game: hosts play
- Game session → Dino game: hosts play
- Game session → Game of Life: hosts play
- Game session → Flappy Bird: hosts play
- Snake game → Snake rules: advances rules