You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2.3 KiB

IKEA Foundation - Week 2026 Project

This project is a Ruby on Rails application developed for the IKEA Foundation. It appears to be a multi-lingual, interactive game or educational tool ("Week 2026") where players progress through various stages, making choices or facing "chance" events.

Key Features

  • Multi-lingual Support: Uses the mobility gem for translating content into numerous languages (en, zh, hr, cs, da, nl, fi, fr, fr-CA, de, hu, it, ja, ko, nb, pl, pt, ro, sr, sk, sl, es, sv, uk).
  • Content Management: A hierarchical "Node" system (using ancestry) for managing pages, stages, and interactive elements.
  • Player Progression: Tracks player progress, scores, and decisions across different stages.
  • Interactive Stages: Includes mechanics for "flipping" between "chance" and "choice" outcomes, sampling random results, and advancing through a sequence of stages.
  • Admin Interface: A backend for managing nodes, assets (using Active Storage), users, and translations.
  • Background Jobs: Uses sidekiq and redis for asynchronous processing.
  • Search: Integrates pg_search for full-text search capabilities within the node/content system.

Technical Stack

  • Framework: Ruby on Rails 8.1.2
  • Language: Ruby 3.4.9
  • Database: PostgreSQL
  • Asset Pipeline: Propshaft with Importmap-rails and Stimulus/Turbo.
  • Task Management: Sidekiq with Redis.
  • Styling/UI: Custom CSS/JS (Stimulus controllers for interactivity).

Core Models

  • Node: The central model for content, representing pages, stages, and interactive components in a tree structure.
  • Player: Represents a session/user playing the game, tracking their progress, current_stage, and score.
  • Asset & Attachment: Manage files and their association with nodes.
  • User: Handles admin authentication and roles.
  • VerificationCode: Likely used for secure admin login or two-step authentication.

Project Structure

  • app/controllers/admin/: Admin backend logic.
  • app/controllers/stages_controller.rb: Main logic for the interactive game stages.
  • app/controllers/site_controller.rb: Logic for rendering content nodes as pages.
  • config/locales/: Translation files for all supported languages.
  • db/migrate/: Database schema evolutions.