diff --git a/app/frontend/images/crescent/bg.jpg b/app/frontend/images/crescent/bg.jpg new file mode 100644 index 00000000..47c01e22 Binary files /dev/null and b/app/frontend/images/crescent/bg.jpg differ diff --git a/app/frontend/images/crescent/logo.png b/app/frontend/images/crescent/logo.png new file mode 100644 index 00000000..2ed4f2f4 Binary files /dev/null and b/app/frontend/images/crescent/logo.png differ diff --git a/app/frontend/images/sso_apps/crescent.png b/app/frontend/images/sso_apps/crescent.png new file mode 100644 index 00000000..acf98238 Binary files /dev/null and b/app/frontend/images/sso_apps/crescent.png differ diff --git a/app/models/onboarding_scenarios/crescent.rb b/app/models/onboarding_scenarios/crescent.rb new file mode 100644 index 00000000..da6fac8f --- /dev/null +++ b/app/models/onboarding_scenarios/crescent.rb @@ -0,0 +1,23 @@ +module OnboardingScenarios + class Crescent < Base + def self.slug = "crescent" + + def title = "Let's create a Hack Club Account!" + + def form_fields = [ :first_name, :last_name, :primary_email, :birthday, :country ] + + def slack_user_type = :full_member + + def slack_onboarding_flow = :internal_tutorial + def slack_channels = chans(:crescent_bulletin, :crescent_help, :crescent_chat, :identity_help, :help, :welcome_to_hack_club, :slack_guide, :library, :lounge, :welcome, :happenings, :community, :announcements, :news_wire) + + def first_step = :welcome + + def next_action = :home + + def logo_path = "images/crescent/logo.png" + def background_path = "images/crescent/bg.jpg" + + def card_attributes = { wide_logo: true } + end +end diff --git a/app/models/special_app_cards/crescent.rb b/app/models/special_app_cards/crescent.rb new file mode 100644 index 00000000..7a0aca46 --- /dev/null +++ b/app/models/special_app_cards/crescent.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module SpecialAppCards + class Crescent < Base + def visible? + identity.ysws_eligible != false && Flipper.enabled?(:app_card_crescent_2026_09_23, identity) + end + + def friendly_name = "Crescent" + + def tagline = "Four different challenges each week - pick a card, then ship something!" + + def icon = "crescent.png" + + def url = "https://crescent.hackclub.com/?utm_source=hca" + + def launch_text = "onwards!" + end +end diff --git a/config/flipper_features.yml b/config/flipper_features.yml index 47e4dfb0..1be09952 100644 --- a/config/flipper_features.yml +++ b/config/flipper_features.yml @@ -10,6 +10,7 @@ shared: app_card_hctg_2026_03_19: enables HCTG app card on the welcome page app_card_blueprint_2026_01_14: enables Blueprint app card on the welcome page app_card_forge_2026_09_19: enables Forge app card on the welcome page + app_card_crescent_2026_09_23: enables Crescent app card on the welcome page full_user_open_floodgates_2026_04_06: provisions users as full Slack members instead of multi-channel guests dev_allow_manual_flow_2026_05_27: enables the manual document verification flow for an actor disable_slack_invites_2025_12_08: suppresses Slack SCIM provisioning for an actor diff --git a/config/slack_channels.yml b/config/slack_channels.yml index bd8884ef..89c41129 100644 --- a/config/slack_channels.yml +++ b/config/slack_channels.yml @@ -90,3 +90,6 @@ shared: leaders_bulletin: C0AQ1CG4JLD news_wire: C0BJ6LTLAFJ snowglobe: C0BPM9KRW8L + crescent_bulletin: C0C3EH0ACPQ + crescent_help: C0C3BHDUHT7 + crescent_chat: C0C3A8NUJ1H