Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: alexmojaki/futurecoder
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: Dvurechensky-Tools/futurecoder
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 56 files changed
  • 1 contributor

Commits on Jun 2, 2026

  1. 1.0.0

    # Changelog
    
    ## 2026-06-01
    
    ### Docker And Local Build
    
    - [x] Added `Dockerfile` with a multi-stage production build for generator, frontend, homepage assets, and Nginx runtime.
    - [x] Added `.dockerignore` to keep the Docker build context smaller and cleaner.
    - [x] Added `compose.yaml` with the `futurecoder` service exposed on host port `14621`.
    - [x] Added `docker/nginx.conf` for localized static routing and React course fallback routing.
    - [x] Configured `/course/` and `/course` redirects to `/ru/course/` by default.
    - [x] Configured localized course routes for `/en/course/`, `/es/course/`, `/fr/course/`, `/pl/course/`, `/ta/course/`, `/zh/course/`, and `/ru/course/`.
    - [x] Added Nginx COOP/COEP/CORP headers for course routes so local Pyodide can run correctly.
    - [x] Added Docker healthcheck against `/ru/course/`.
    - [x] Added `scripts/build_localized_courses.sh` to build all localized React course bundles for the Docker image.
    - [x] Added fallback behavior in the Docker build for legacy locales that cannot be generated by the current course generator.
    - [x] Verified the running container reports `healthy`.
    - [x] Verified the built site is available at `http://localhost:14621/`.
    
    ### Russian Localization
    
    - [x] Added Russian as a first-class visible language in `frontend/src/languages.js`.
    - [x] Added `/ru/` homepage and `/ru/course/` course routing.
    - [x] Added `translations/locales/ru/` with Russian locale files.
    - [x] Added `translations/bootstrap_russian.py` to bootstrap and repair Russian translation data.
    - [x] Added `scripts/improve_russian_locale.py` for reviewed Russian wording fixes.
    - [x] Added `scripts/ensure_complete_locales.py` to fill missing locale entries with English fallbacks.
    - [x] Added Russian navigation labels for homepage, current lesson, and free coding links.
    - [x] Localized key course UI labels such as run, previous/back, skip step, requirements, checking, help, hints, and solution wording.
    - [x] Added Russian homepage copy for the hero section, feature bullets, testimonials, demo section, contribution text, and footer areas.
    - [x] Added Russian `README.ru.md`.
    - [x] Added Russian `BUILD.ru.md`.
    - [x] Added Russian `how_to_contribute.ru.md`.
    - [x] Added Russian `frontend/README.ru.md`.
    - [x] Added Russian `scripts/README.ru.md`.
    - [x] Added EN/RU language switchers at the top of paired Markdown documentation files.
    
    ### Language Switching
    
    - [x] Replaced the crowded language link row on the homepage with a compact combobox-style language selector.
    - [x] Added browser-language detection for first visit.
    - [x] Added saved language preference support through `homepage/static/js/language-preferences.js`.
    - [x] Set Russian as the default language when no saved or browser-supported language is available.
    - [x] Updated localized homepage language links so local Docker routes are used instead of external translation domains.
    - [x] Updated React course language URLs to use local localized routes during localized builds.
    - [x] Added `rememberLanguage` helper for persisted language selection.
    - [x] Added current language highlighting in the homepage language selector.
    
    ### Homepage UI And Design
    
    - [x] Reworked the homepage header layout for the language selector, GitHub button, and product placement card.
    - [x] Updated the GitHub button to point to `https://github.com/Dvurechensky-Tools/futurecoder`.
    - [x] Added `Dvurechensky Pro` product placement card to the homepage header.
    - [x] Added `homepage/static/img/dvurechensky-pro-logo.gif` as the product placement asset.
    - [x] Styled the product placement card to match the dark futuristic homepage design.
    - [x] Added responsive behavior for the product placement card on smaller screens.
    - [x] Reworked homepage buttons with a GitHub-inspired visual language.
    - [x] Removed the `or` / `или` separator between the main CTA buttons.
    - [x] Replaced the two standalone CTA buttons with a premium translucent CTA panel.
    - [x] Added subtle glassmorphism, border glow, button shine animation, and a blurred code-preview decoration to the CTA panel.
    - [x] Made the CTA panel full-width within the hero content area.
    - [x] Made the CTA panel more transparent so the animated white background lines remain visible through it.
    - [x] Tuned CTA button sizes, font weight, gradients, shadows, and spacing to look less oversized and more professional.
    - [x] Kept CTA buttons responsive and stacked them cleanly on mobile.
    - [x] Improved homepage feature cards, form controls, footer styling, and dark theme details.
    - [x] Updated homepage footer copyright to include both original and added attribution: `2025 Alex Hall & 2026 Dvurechensky`.
    
    ### Mobile And Responsive UI
    
    - [x] Improved mobile layout for the homepage header.
    - [x] Improved mobile behavior for the language selector.
    - [x] Improved mobile behavior for the GitHub button.
    - [x] Improved mobile behavior for the `Dvurechensky Pro` card.
    - [x] Improved mobile behavior for the homepage hero title, subtitle, bullets, and CTA block.
    - [x] Hid decorative CTA code preview on mobile to avoid layout overflow.
    - [x] Improved responsive course layout and dark styling.
    - [x] Improved table of contents layout and visual styling for mobile and desktop.
    
    ### Course Runtime And UI
    
    - [x] Updated `frontend/src/Worker.js` to load Pyodide from the local built course path instead of relying on an external CDN.
    - [x] Fixed the runtime failure caused by external `importScripts` loading from CDN.
    - [x] Added `scripts/browser_smoke_test.mjs` to verify that the local Docker-served course can load and execute with local Pyodide.
    - [x] Updated `frontend/src/serviceWorkerRegistration.js` behavior for the localized/static build.
    - [x] Updated `frontend/src/shell/defs/styles/Terminal.js` for the refreshed dark terminal styling.
    - [x] Updated course UI components including `App.js`, `Feedback.js`, `RunCode.js`, `TaskClient.js`, and related styles.
    - [x] Updated `frontend/src/css/main.scss` with a stronger GitHub-inspired dark UI.
    - [x] Updated `frontend/src/css/toc.scss` with a redesigned table of contents view.
    - [x] Added navigation buttons to the table of contents header: homepage, current lesson, and free coding.
    - [x] Added `Dvurechensky Pro` placement to the bottom of the table of contents.
    - [x] Preserved user progress and current lesson routing behavior while adding the new navigation affordances.
    
    ### Table Of Contents
    
    - [x] Added a homepage return action.
    - [x] Added a current lesson action.
    - [x] Added a free coding action.
    - [x] Styled the table of contents with a darker professional GitHub-like look.
    - [x] Improved current lesson highlighting.
    - [x] Added product placement card in the table of contents.
    - [x] Improved table of contents mobile spacing and readability.
    
    ### SEO And Discovery
    
    - [x] Added SEO generation to `scripts/prepare_localized_homepages.py`.
    - [x] Added localized page titles for all homepage languages.
    - [x] Added localized meta descriptions and keywords.
    - [x] Added canonical URLs.
    - [x] Added localized `hreflang` tags.
    - [x] Added `x-default` route pointing to Russian by default.
    - [x] Added OpenGraph metadata.
    - [x] Added Twitter card metadata.
    - [x] Added JSON-LD structured data for organization, website, and course.
    - [x] Added SEO author metadata for Alex Hall and Dvurechensky.
    - [x] Added generated `robots.txt`.
    - [x] Added generated `sitemap.xml`.
    - [x] Added generated `manifest.webmanifest`.
    - [x] Added generated `llms.txt`.
    - [x] Added course SPA SEO metadata in `frontend/public/index.html`.
    - [x] Updated `frontend/public/manifest.json`.
    - [x] Set the project site URL used by generated metadata.
    
    ### Documentation
    
    - [x] Added `BUILD.md` with English Docker build and verification instructions.
    - [x] Added `BUILD.ru.md` with Russian Docker build and verification instructions.
    - [x] Updated `README.md` with project/fork-specific information and documentation links.
    - [x] Added `README.ru.md` with Russian project documentation.
    - [x] Updated `how_to_contribute.md` with the EN/RU language switcher.
    - [x] Added `how_to_contribute.ru.md`.
    - [x] Updated `frontend/README.md` with the EN/RU language switcher.
    - [x] Added `frontend/README.ru.md`.
    - [x] Rewrote `scripts/README.md` to document the current script set.
    - [x] Added and expanded `scripts/README.ru.md`.
    - [x] Added language switchers to all paired Markdown files.
    - [x] Documented Docker usage, health checks, smoke tests, rebuild flow, and known build warnings.
    - [x] Documented the new scripts used for localization, homepage preparation, localized course builds, and browser smoke testing.
    
    ### Homepage Localization Source Updates
    
    - [x] Updated `homepage/index.html` CTA structure to use the new `hero-cta` wrapper.
    - [x] Updated translated homepage sources in `translations/locales/es/index.html`.
    - [x] Updated translated homepage sources in `translations/locales/fr/index.html`.
    - [x] Updated translated homepage sources in `translations/locales/pl/index.html`.
    - [x] Updated translated homepage sources in `translations/locales/ta/index.html`.
    - [x] Updated translated homepage sources in `translations/locales/zh/index.html`.
    - [x] Removed old CTA separators from translated homepage source files.
    - [x] Normalized old GitHub links in generated pages to the new repository URL.
    - [x] Added local route preparation for translated homepage assets.
    
    ### Branding And Attribution
    
    - [x] Added `Dvurechensky Pro` card to homepage.
    - [x] Added `Dvurechensky Pro` card to table of contents.
    - [x] Added `https://dvurechensky.pro` as product placement target.
    - [x] Added `https://github.com/Dvurechensky-Tools/futurecoder` as the GitHub target.
    - [x] Preserved original `2025 Alex Hall` attribution.
    - [x] Added `2026 Dvurechensky` attribution alongside the original footer attribution.
    
    ### Verification
    
    - [x] Built the Docker image with `docker compose up --build -d`.
    - [x] Verified the Docker container health status is `healthy`.
    - [x] Verified local homepage/course routes work on port `14621`.
    - [x] Ran `node scripts/browser_smoke_test.mjs`.
    - [x] Confirmed smoke test result: `Browser smoke test passed: LOCAL_PYODIDE_OK`.
    - [x] Ran `git diff --check`.
    - [x] Confirmed `git diff --check` has no formatting errors, aside from standard Windows LF/CRLF warnings.
    
    ### Known Notes
    
    - [x] Docker build can print expected React source-map warnings from dependencies.
    - [x] Docker build can print expected existing ESLint warnings.
    - [x] Some legacy localized course builds can fall back to English course data when their old translation data is incompatible with current generator behavior.
    - [x] Windows Git can print LF/CRLF warnings for edited files.
    Dvurechensky committed Jun 2, 2026
    Configuration menu
    Copy the full SHA
    8bbb110 View commit details
    Browse the repository at this point in the history
Loading