diff --git a/README.md b/README.md index a2b3fa2e0e1..67c06147128 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # Bootcamp -プログラマー向けEラーニングシステム。 +エンジニア向けEラーニングシステム。 ## インストールと起動 diff --git a/app/assets/images/courses/nextjs.svg b/app/assets/images/courses/nextjs.svg new file mode 100644 index 00000000000..f6ff8b48a94 --- /dev/null +++ b/app/assets/images/courses/nextjs.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/images/courses/rails.svg b/app/assets/images/courses/rails.svg new file mode 100644 index 00000000000..77ba3c45b94 --- /dev/null +++ b/app/assets/images/courses/rails.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 84444df0a6f..87c5bf26e15 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -61,6 +61,7 @@ def create logger.info "[Signup] 1. start create. #{user_params[:email]}" @user = User.new(user_params) + @user.course_id = params[:user][:course_id] if params[:user][:course_id].present? @user.course_id ||= Course.first.id @user.free = true if @user.trainee? @user.build_discord_profile diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index b3acb69aec5..67da6c71cc1 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -15,9 +15,7 @@ def faq; end def training; end - def practices - @categories = Course.find_by(title: DEFAULT_COURSE).categories.preload(:practices).order(:position) - end + def practices; end def tos; end @@ -26,4 +24,8 @@ def pp; end def law; end def coc; end + + def courses + @courses = Course.order(:created_at) + end end diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb new file mode 100644 index 00000000000..7b18db6fa82 --- /dev/null +++ b/app/helpers/courses_helper.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module CoursesHelper + def find_course(course_id) + Course.find_by(id: course_id) || Course.default_course + end +end diff --git a/app/javascript/stylesheets/application/blocks/auth-form/_auth-form.sass b/app/javascript/stylesheets/application/blocks/auth-form/_auth-form.sass index ac783ccc969..3ab1d591fcf 100644 --- a/app/javascript/stylesheets/application/blocks/auth-form/_auth-form.sass +++ b/app/javascript/stylesheets/application/blocks/auth-form/_auth-form.sass @@ -29,7 +29,10 @@ padding: 1rem 1.75rem .auth-form__body - padding: 1.5rem 1.75rem + +media-breakpoint-up(md) + padding: 1.5rem 1.75rem + +media-breakpoint-down(sm) + padding: 1.25rem 1rem .auth-form__footer padding: 1rem 1.75rem diff --git a/app/javascript/stylesheets/application/blocks/form/_form-actions.sass b/app/javascript/stylesheets/application/blocks/form/_form-actions.sass index 994f0a4db22..12869e3288e 100644 --- a/app/javascript/stylesheets/application/blocks/form/_form-actions.sass +++ b/app/javascript/stylesheets/application/blocks/form/_form-actions.sass @@ -15,6 +15,7 @@ padding-top: 1rem .form-actions__items + gap: .75rem +media-breakpoint-up(md) display: flex align-items: flex-end @@ -29,7 +30,6 @@ flex-direction: column .form-actions__item - padding-inline: .375rem +position(relative) &.is-sub +media-breakpoint-up(md) diff --git a/app/javascript/stylesheets/atoms/_a-short-text.sass b/app/javascript/stylesheets/atoms/_a-short-text.sass index 8b6a748f4cb..145a55ebaaf 100644 --- a/app/javascript/stylesheets/atoms/_a-short-text.sass +++ b/app/javascript/stylesheets/atoms/_a-short-text.sass @@ -35,6 +35,11 @@ border: none border-top: dashed 1px var(--border) margin-block: 1.25em + strong, + b + font-weight: 700 + .is-danger + color: var(--danger) &.is-ta-center, .is-ta-center text-align: center diff --git a/app/javascript/stylesheets/atoms/_a-welcome-button.sass b/app/javascript/stylesheets/atoms/_a-welcome-button.sass index 5a2f49bf3b8..dc992502ee2 100644 --- a/app/javascript/stylesheets/atoms/_a-welcome-button.sass +++ b/app/javascript/stylesheets/atoms/_a-welcome-button.sass @@ -21,3 +21,8 @@ font-size: .9375rem &.is-signup background-color: var(--welcome-orange) + &.is-disabled + pointer-events: none + background-color: var(--background-shade) + color: var(--muted-text) + border-color: var(--muted-text) diff --git a/app/javascript/stylesheets/shared/blocks/card/_card-header.sass b/app/javascript/stylesheets/shared/blocks/card/_card-header.sass index cdd21b4ad74..fe4bbfae1a6 100644 --- a/app/javascript/stylesheets/shared/blocks/card/_card-header.sass +++ b/app/javascript/stylesheets/shared/blocks/card/_card-header.sass @@ -23,6 +23,8 @@ font-size: .875rem .card-header.is-sm & font-size: .875rem + .card-header.is-lg & + font-size: 1.5rem .card-header__count font-weight: 400 diff --git a/app/javascript/stylesheets/welcome.sass b/app/javascript/stylesheets/welcome.sass index 6c47d11918e..8cba3770566 100644 --- a/app/javascript/stylesheets/welcome.sass +++ b/app/javascript/stylesheets/welcome.sass @@ -8,6 +8,10 @@ @import welcome/articles/bootcamp-ad @import welcome/articles/share-buttons +@import welcome/course-selection +@import welcome/course-selection-item +@import welcome/course-selection-nav + @import welcome/welcome-member/welcome-member-books @import welcome/welcome-member/welcome-member diff --git a/app/javascript/stylesheets/welcome/_course-selection-item.sass b/app/javascript/stylesheets/welcome/_course-selection-item.sass new file mode 100644 index 00000000000..c32ce7b8e4b --- /dev/null +++ b/app/javascript/stylesheets/welcome/_course-selection-item.sass @@ -0,0 +1,28 @@ +.course-selection-item-anchor + position: relative + top: -3rem + +.course-selection-item + +media-breakpoint-up(md) + padding: 1.5rem 2rem + +media-breakpoint-down(sm) + padding: 1.25rem 1rem + +.course-selection-item__body:not(:first-child) + margin-top: 1.5rem + +.course-selection-item__title + font-weight: 700 + +media-breakpoint-up(md) + +text-block(1.5rem 1.4) + +media-breakpoint-down(sm) + +text-block(1.25rem 1.4) + +.course-selection-item__action + margin-top: 1.25rem + +.course-selection-item__section + margin-top: 1.5rem + font-size: .875rem + +media-breakpoint-up(md) + +media-breakpoint-down(sm) diff --git a/app/javascript/stylesheets/welcome/_course-selection-nav.sass b/app/javascript/stylesheets/welcome/_course-selection-nav.sass new file mode 100644 index 00000000000..9f298d1cc82 --- /dev/null +++ b/app/javascript/stylesheets/welcome/_course-selection-nav.sass @@ -0,0 +1,28 @@ +.course-selection-nav + position: sticky + top: 0 + z-index: 2 + +.course-selection-nav__inner + padding-block: .5rem + +.course-selection-nav__items + display: flex + +.course-selection-nav__item + flex: 1 + +.course-selection-nav__item-link + border: solid 1px var(--main) + background-color: var(--base) + +text-block(.75rem 1.4, center) + display: flex + text-decoration: none + height: 2.75rem + justify-content: center + align-items: center + .course-selection-nav__item:first-child & + border-radius: .25rem 0 0 .25rem + margin-right: -1px + .course-selection-nav__item:last-child & + border-radius: 0 .25rem .25rem 0 diff --git a/app/javascript/stylesheets/welcome/_course-selection.sass b/app/javascript/stylesheets/welcome/_course-selection.sass new file mode 100644 index 00000000000..fcf31434aca --- /dev/null +++ b/app/javascript/stylesheets/welcome/_course-selection.sass @@ -0,0 +1,12 @@ +.course-selection__descritpion + +media-breakpoint-up(md) + font-size: 1rem + +media-breakpoint-down(sm) + font-size: .875rem + margin-bottom: .5rem + +.course-selection__items + +media-breakpoint-up(md) + margin-top: 2rem + +media-breakpoint-down(sm) + margin-top: 1rem diff --git a/app/javascript/stylesheets/welcome/_welcome-small-sections.sass b/app/javascript/stylesheets/welcome/_welcome-small-sections.sass index cd9bddb0478..a4100112584 100644 --- a/app/javascript/stylesheets/welcome/_welcome-small-sections.sass +++ b/app/javascript/stylesheets/welcome/_welcome-small-sections.sass @@ -162,3 +162,12 @@ aspect-ratio: 5 / 3 +media-breakpoint-down(sm) aspect-ratio: 3 / 4 + +.welcome-small-section__float-image + float: left + border-radius: .25rem + margin-right: 1rem + +media-breakpoint-up(md) + width: 6.75rem + +media-breakpoint-down(sm) + width: 4rem diff --git a/app/javascript/stylesheets/welcome/_welcome.sass b/app/javascript/stylesheets/welcome/_welcome.sass index bfc4c590412..678c907ceab 100644 --- a/app/javascript/stylesheets/welcome/_welcome.sass +++ b/app/javascript/stylesheets/welcome/_welcome.sass @@ -1,3 +1,4 @@ body.is-welcome color: var(--default-text) font-family: $sans-serif + scroll-behavior: smooth diff --git a/app/models/course.rb b/app/models/course.rb index 3bad8a736d7..848c5e251a7 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Course < ApplicationRecord + DEFAULT_COURSE = 'Railsエンジニア' + has_many :courses_categories, dependent: :destroy has_many :categories, through: :courses_categories has_many :practices, through: :categories @@ -8,4 +10,8 @@ class Course < ApplicationRecord has_many :users, dependent: :nullify validates :title, presence: true validates :description, presence: true + + def self.default_course + find_by(title: DEFAULT_COURSE) + end end diff --git a/app/views/articles/_ad.html.slim b/app/views/articles/_ad.html.slim index 558292ccd5f..9cb5e1b1195 100644 --- a/app/views/articles/_ad.html.slim +++ b/app/views/articles/_ad.html.slim @@ -11,15 +11,13 @@ aside.bootcamp-ad class: 'bootcamp-ad__image' .a-short-text.is-sm p - | フィヨルドブートキャンプは、 - | ソフトウェアエンジニアとして就職を目指せるスキルを - | 「プロの現場でプラス戦力として数えられるソフトウェアエンジニア」とし、 - | それを身につけることを目標とした - | オンラインプログラミングスクールです。 + | 就職ができるスキルを身につけるのは当然、 + | 卒業をした時点ですでに、「現場にとって、プラスの戦力として数えられる」の実力を + | 身につけることを目標とした、オンラインプログラミングスクールです。 br | プログラミング未経験からスタートして、 | HTML、CSS、Linux、Ruby、Rails、JavaScript、チーム開発を経て、 - | 自作サービスを公開するまでのカリキュラムを用意しています。 + | 最終的に自作サービスを公開するまでのカリキュラムを用意しています。 hr.a-border-tint .card-footer = link_to welcome_path, class: 'a-button is-primary is-lg is-block' do diff --git a/app/views/home/_welcome_message.html.slim b/app/views/home/_welcome_message.html.slim index cf2798bd3bc..7b398dbd68f 100644 --- a/app/views/home/_welcome_message.html.slim +++ b/app/views/home/_welcome_message.html.slim @@ -53,11 +53,13 @@ | 自分の気持ちをアウトプットする場としてコミュニティを使うのがオススメです。 p | 学習が進まなくて辛い、新しいことを知って嬉しい、プログラミングができるようになって楽しい、 - | 仕事が忙しくて学習に時間が取れなくて悲しい、ソフトウェアエンジニアとして就職できるのか不安...これから学習を進めていく上で色んな気持ちになるかと思いますが、 + | 仕事が忙しくて学習に時間が取れなくて悲しい、ソフトウェアエンジニアとして就職できるのか不安... + | これから学習を進めていく上で色んな気持ちになるかと思いますが、 | 気持ちをチャットや日報を使ってアウトプットしていきましょう。 | 辛いことに対しては親身に相談に乗ってくれたり、アドバイスをしてくれたり、嬉しいことは一緒に喜んでくれたり、 | コミュニティのみんなが「あなたのプログラミングを楽しむ気持ち」を育ててくれます。 - | どんな状況でも、それを楽しめるようになれば無敵です。どんどん気持ちをアウトプットすること、これが卒業までやりきるためのコツです。 + | どんな状況でも、それを楽しめるようになれば無敵です。 + | どんどん気持ちをアウトプットすること、これが卒業までやりきるためのコツです。 h2 | 学習の進め方 p @@ -65,14 +67,18 @@ | フィヨルドブートキャンプでは、学習の項目一つ一つを「プラクティス」と呼んでいます。 |このプラクティスを上から順にやっていく、というのが学習の進め方になります。 p - | プラクティス一覧画面に移動したら、最初のプラクティスをクリックしますと、そのプラクティスでやることが書かれています。 - | まずは、ページ上部にある「着手」をクリックして、ステータスを着手中にします。そして、そのプラクティスでのやることを進めていきます。 - | 全てが完了したら、ステータスを「修了」にします。これでそのプラクティスは完了です。次のプラクティスに進みます。 + | プラクティス一覧画面に移動したら、最初のプラクティスをクリックしますと、 + | そのプラクティスでやることが書かれています。 + | まずは、ページ上部にある「着手」をクリックして、ステータスを着手中にします。 + | そして、そのプラクティスでのやることを進めていきます。 + | 全てが完了したら、ステータスを「修了」にします。これでそのプラクティスは完了です。 + | 次のプラクティスに進みます。 p | 他にも色々在るのですが、現時点では以上のところだけ理解いただければ十分です。 | これから始まる「学習の進め方を知る」というプラクティスでその他の詳しい説明があります。 p - | もし何か不明点がありましたら、現時点では komagata@fjord.jp にメールでご連絡をお願いします。 - | 途中、「チャットを使えるようになる」というプラクティスがあるのですが、それを終えるとチャットで連絡が取れるようになりますので、 + | もし何か不明点がありましたら、現時点では info@fjord.jp にメールでご連絡をお願いします。 + | 途中、「チャットを使えるようになる」というプラクティスがあるのですが、 + | それを終えるとチャットで連絡が取れるようになりますので、 | そこから先はチャットでご質問をお願いします。 hr.a-border diff --git a/app/views/reports/_form.html.slim b/app/views/reports/_form.html.slim index a1519da3ea7..ce5d7a86d49 100644 --- a/app/views/reports/_form.html.slim +++ b/app/views/reports/_form.html.slim @@ -125,7 +125,7 @@ .a-short-text p | WIPとは、「work in progress」もしくは「work in process」の略。 - | 「作業中」を表すプログラマー界隈でよく使われる用語です。 + | 「作業中」を表すエンジニア界隈でよく使われる用語です。 p | 下書きと違って、WIPの状態でも公開されています(バグではありません😄)。 p diff --git a/app/views/unauthorized/_about_fbc.html.slim b/app/views/unauthorized/_about_fbc.html.slim index c3a466330f7..bc32b3e7ecf 100644 --- a/app/views/unauthorized/_about_fbc.html.slim +++ b/app/views/unauthorized/_about_fbc.html.slim @@ -1,9 +1,10 @@ .about-fbc .a-long-text.is-md p - | フィヨルドブートキャンプは、ソフトウェアエンジニアとして就職を - | 目指せるだけのスキルを身につけることを目標とした、 - | オンラインプログラミングスクールです。現場のソフトウェアエンジニアによる、 + | 就職ができるスキルを身につけるのは当然、 + | 卒業をした時点ですでに、「現場にとって、プラスの戦力として数えられる」の実力を + | 身につけることを目標とした、オンラインプログラミングスクールです。 + | 現場のプログラマーによる、 | 徹底的に現場目線にこだわった、 - | 現場のソフトウェアエンジニアが考える、 + | 現場のプログラマーが考える、 | プログラミングスクールの在るべき姿の実現に励んでいます。 diff --git a/app/views/user_sessions/new.html.slim b/app/views/user_sessions/new.html.slim index a931c49d036..45c70930f70 100644 --- a/app/views/user_sessions/new.html.slim +++ b/app/views/user_sessions/new.html.slim @@ -18,6 +18,6 @@ description: 'オンラインプログラミングスクールのフィヨルド li.auth-form-nav__item = link_to 'トップページ', root_path, class: 'auth-form-nav__item-link' li.auth-form-nav__item - = link_to '参加登録', new_user_path, class: 'auth-form-nav__item-link' + = link_to '参加登録', courses_path, class: 'auth-form-nav__item-link' li.auth-form-nav__item = link_to '休会からの復帰', new_comeback_path, class: 'auth-form-nav__item-link' diff --git a/app/views/users/_checked_campaign.html.slim b/app/views/users/_checked_campaign.html.slim index 1cd4beccec7..dde6fb04298 100644 --- a/app/views/users/_checked_campaign.html.slim +++ b/app/views/users/_checked_campaign.html.slim @@ -1,16 +1,15 @@ -.form - .form__items - .form-item - .block-checks.is-1-item - .block-checks__item - .a-block-check.is-checkbox.is-dammy - input.a-toggle-checkbox(type='radio' checked='checked') - .a-block-check__label.is-ta-left - | キャンペーン適用 - .a-form-help - p - | #{Campaign.current_title} のお試し期間延長が適用され、 - em - | 通常 3日間 のお試し期間が #{Campaign.current_trial_period}日間  - | になります。 - .form-item +.form__items + .form-item + .block-checks.is-1-item + .block-checks__item + .a-block-check.is-checkbox.is-dammy + input.a-toggle-checkbox(type='radio' checked='checked') + .a-block-check__label.is-ta-left + | キャンペーン適用 + .a-form-help + p + | #{Campaign.current_title} のお試し期間延長が適用され、 + em + | 通常 3日間 のお試し期間が #{Campaign.current_trial_period}日間  + | になります。 + hr.a-border.mb-8 diff --git a/app/views/users/_form.html.slim b/app/views/users/_form.html.slim index 142f4b6d4f4..bddcad33464 100644 --- a/app/views/users/_form.html.slim +++ b/app/views/users/_form.html.slim @@ -7,6 +7,11 @@ = f.hidden_field :course_id = hidden_field_tag :idempotency_token, SecureRandom.uuid = render 'errors', object: user + - if !current_user && !@user.adviser? && !@user.trainee? && Campaign.today_campaign? + = render 'checked_campaign' + .form__items + - if !@user.adviser? + = render 'users/form/course_select', f: f .form__items = render 'users/form/login_name', f: f = render 'users/form/email', f: f, user: user diff --git a/app/views/users/form/_course_practice_list.html.slim b/app/views/users/form/_course_practice_list.html.slim new file mode 100644 index 00000000000..ad0999eaa4d --- /dev/null +++ b/app/views/users/form/_course_practice_list.html.slim @@ -0,0 +1,9 @@ +- course.categories.each do |category| + - if category.practices.present? + h4 + = category.name + table.welcome-table.a-card + - category.practices.each do |practice| + tr + td + = practice.title diff --git a/app/views/users/form/_course_select.html.slim b/app/views/users/form/_course_select.html.slim new file mode 100644 index 00000000000..84368c2b730 --- /dev/null +++ b/app/views/users/form/_course_select.html.slim @@ -0,0 +1,19 @@ +.form-item + = f.label :course_id, '選択中のコース', class: 'a-form-label is-required' + .form-item__groups + .form-item-group + .form-item-group__body + .selected-item + - course = find_course(params[:course_id]) + = render 'users/form/course_selection', course: course, f: f + = render '/shared/modal', + id: 'modal-course-description', + modal_title: "#{course.title}コース" + .modal__description.is-md + .a-long-text.is-md.js-markdown-view + = course.description + .a-long-text.is-md + h3 カリキュラム一覧 + = render 'users/form/course_practice_list', course: course + +hr.a-border.mb-8 diff --git a/app/views/users/form/_course_selection.html.slim b/app/views/users/form/_course_selection.html.slim new file mode 100644 index 00000000000..468d52532ff --- /dev/null +++ b/app/views/users/form/_course_selection.html.slim @@ -0,0 +1,22 @@ +.a-block-check.is-radio + = f.radio_button :course_id, course.id, checked: true, id: "course_#{course.id}", class: 'a-toggle-checkbox' + label.a-block-check__label.is-ta-left(for="course_#{course.id}") + span.a-block-check__name + | #{course.title}コース +- if current_user + .form-actions + .a-short-text.is-sm + p + | コースの移行を希望される場合やご相談がある場合は、 + = link_to talk_path(current_user.talk, anchor: 'latest-comment') do + | 相談部屋にてお知らせください + | 。 +- else + .form-actions + ul.form-actions__items + li.form-actions__item.is-main + label.a-button.is-md.is-secondary.is-block(for='modal-course-description') + | コースの内容を確認する + li.form-actions__item.is-main + = link_to courses_path, class: 'a-button is-md is-secondary is-block' do + | コースを選択し直す diff --git a/app/views/users/form/_profile_job.html.slim b/app/views/users/form/_profile_job.html.slim index 08fb87206d2..cf479f7869c 100644 --- a/app/views/users/form/_profile_job.html.slim +++ b/app/views/users/form/_profile_job.html.slim @@ -1,3 +1,3 @@ .form-item = f.label :profile_job, class: 'a-form-label' - = f.text_field :profile_job, class: 'a-text-input', placeholder: 'プログラマー' + = f.text_field :profile_job, class: 'a-text-input', placeholder: 'エンジニア' diff --git a/app/views/users/form/_profile_text.html.slim b/app/views/users/form/_profile_text.html.slim index 9934fa935e3..0a71d537530 100644 --- a/app/views/users/form/_profile_text.html.slim +++ b/app/views/users/form/_profile_text.html.slim @@ -1,3 +1,3 @@ .form-item = f.label :profile_text, class: 'a-form-label' - = f.text_area :profile_text, class: 'a-text-input is-sm', placeholder: '[株式会社ロッカ](https://lokka.jp)の代表兼プログラマー。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' + = f.text_area :profile_text, class: 'a-text-input is-sm', placeholder: '[株式会社ロッカ](https://lokka.jp)の代表兼エンジニア。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' diff --git a/app/views/users/new.html.slim b/app/views/users/new.html.slim index 4765bf1ad8e..87c3a2ca223 100644 --- a/app/views/users/new.html.slim +++ b/app/views/users/new.html.slim @@ -21,8 +21,6 @@ = link_to new_corporate_training_inquiry_path do | こちらの企業研修申し込みフォーム | からお申し込みください。 - - if !@user.adviser? && Campaign.today_campaign? - = render 'checked_campaign' = render 'form', from: :new, url: users_path, user: @user hr.a-border-tint footer.auth-form__footer diff --git a/app/views/welcome/_about.slim b/app/views/welcome/_about.slim index f9171d29002..94aefc5b2a6 100644 --- a/app/views/welcome/_about.slim +++ b/app/views/welcome/_about.slim @@ -6,7 +6,13 @@ section.welcome-section.is-about#about | フィヨルドブートキャンプとは? .welcome-section__description p - | ソフトウェアエンジニアとして就職を目指せるだけのスキルを身につけることを目標としたオンラインプログラミングスクールです。就職を目指せるスキルを弊社では「現場の人間にとって、戦力になるソフトウェアエンジニア」としています。具体的には、一人でWebサービスを作ることをゴールとした課題をやるのですが、それだけでなくチーム開発も経験できます。 + | ソフトウェアエンジニアとして就職ができるスキルを身につけるのは当然、 + | 卒業をした時点ですでに、「現場にとって、プラスの戦力として数えられる」の実力を + | 身につけていることを目標としたオンラインプログラミングスクールです。 + br + | プログラミング未経験からスタートして、 + | HTML、CSS、Linux、Ruby、Rails、JavaScript、実際の仕事と同じ形式でのチーム開発を経て、 + | 最終的に自作サービスを公開するまでのカリキュラムを用意しています。 .welcome-section__actions .welcome-section__actions-items @@ -23,10 +29,10 @@ section.welcome-section.is-about#about .welcome-small-section__inner.a-card = image_tag('programmer.svg', class: 'welcome-small-section__icon') h3.welcome-small-section__title - | 現役プログラマーの
メンター + | 現役エンジニアの
メンター .welcome-small-section__description p - | メンターはアルバイトや講師を専門にしている人ではなく、実際にコードを書くことを仕事にしている現役のプログラマーです。現場目線でのアドバイス、Rubyコミュニティの文化なども伝えていきます。 + | メンターはアルバイトや講師を専門にしている人ではなく、実際にコードを書くことを仕事にしている現役のエンジニアです。現場目線でのアドバイス、Rubyコミュニティの文化なども伝えていきます。 .col-xs-12.col-md-4 section.welcome-small-section diff --git a/app/views/welcome/_campaign.html.slim b/app/views/welcome/_campaign.html.slim index 9077191f361..1d775a2f67b 100644 --- a/app/views/welcome/_campaign.html.slim +++ b/app/views/welcome/_campaign.html.slim @@ -21,4 +21,4 @@ section.welcome-section.is-gw .welcome-actions__item = link_to 'お問い合わせ・質問', new_inquiry_path, class: 'a-welcome-button' .welcome-actions__item - = link_to '参加登録', new_user_path, class: 'a-welcome-button is-signup' + = link_to '参加登録', courses_path, class: 'a-welcome-button is-signup' diff --git a/app/views/welcome/_cases.slim b/app/views/welcome/_cases.slim index 06c2dcf48c5..e7a16f9a740 100644 --- a/app/views/welcome/_cases.slim +++ b/app/views/welcome/_cases.slim @@ -10,7 +10,8 @@ section.welcome-child-section.is-cases | ソフトウェアエンジニアとして
就職したい .welcome-small-section__description p - | ソフトウェアエンジニアとして就職できるスキルを身に着けたい!スキルだけじゃなく、開発のやり方や業界の情報、ソフトウェアエンジニア友達も欲しい! + | ソフトウェアエンジニアとして就職できるスキルを身に着けたい!スキルだけじゃなく + | 開発のやり方や業界の情報、ソフトウェアエンジニア友達も欲しい! .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner @@ -18,7 +19,8 @@ section.welcome-child-section.is-cases | 転職したいけど、
その前にスキルを付けたい .welcome-small-section__description p - | うちのやり方ってブログの記事や勉強会で聞いた話と比べて開発方法が古い...今の会社でソフトウェアエンジニアを続けていっていいのだろうか?...転職だ! + | うちのやり方ってブログの記事や勉強会で聞いた話と比べて開発方法が古い... + | 今の会社でソフトウェアエンジニアを続けていっていいのだろうか?...転職だ! .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner @@ -34,4 +36,5 @@ section.welcome-child-section.is-cases | ソフトウェアエンジニアに
ジョブチェンジしたい .welcome-small-section__description p - | ソフトウェアエンジニアではなく、企画としてITに関わっていたけど、ソフトウェアエンジニアの方が楽しそう!自分もコードを書いてサービスを開発したい! + | ソフトウェアエンジニアではなく、企画としてITに関わっていたけど、 + | ソフトウェアエンジニアの方が楽しそう!自分もコードを書いてサービスを開発したい! diff --git a/app/views/welcome/_course.html.slim b/app/views/welcome/_course.html.slim new file mode 100644 index 00000000000..74a1d7f1ebb --- /dev/null +++ b/app/views/welcome/_course.html.slim @@ -0,0 +1,32 @@ +article.course-selection-item.a-card + .course-selection-item__inner + header.course-selection-item__header + h2.course-selection-item__title.text-center + | #{course.title} + br + | コース + .course-selection-item__action.mb-4 + = link_to new_user_path(course_id: course.id), class: "a-welcome-button is-md #{current_user ? 'is-disabled' : ''}" do + | このコースを選択 + .course-selection-item__body + .course-selection-item__description + .a-long-text.is-md.js-markdown-view + = course.description + section.course-selection-item__section + .a-long-text + details + summary + | カリキュラム一覧 + - course.categories.each do |category| + - if category.practices.present? + h4 + = category.name + table.welcome-table.a-card + - category.practices.each do |practice| + tr + td + = practice.title + + .course-selection-item__action + = link_to new_user_path(course_id: course.id), class: "a-welcome-button is-md #{current_user ? 'is-disabled' : ''}" do + | このコースを選択 diff --git a/app/views/welcome/_course_practices.html.slim b/app/views/welcome/_course_practices.html.slim new file mode 100644 index 00000000000..562840c67f4 --- /dev/null +++ b/app/views/welcome/_course_practices.html.slim @@ -0,0 +1,21 @@ +article.course-selection-item.a-card + .course-selection-item__inner + header.course-selection-item__header + h2.course-selection-item__title.text-center + | #{course.title} + br + | コース + .course-selection-item__body + section.course-selection-item__section + .a-long-text + h2 + | カリキュラム一覧 + - course.categories.each do |category| + - if category.practices.present? + h4 + = category.name + table.welcome-table.a-card + - category.practices.each do |practice| + tr + td + = practice.title diff --git a/app/views/welcome/_faq.slim b/app/views/welcome/_faq.slim index aac78957aa9..a902f42f47c 100644 --- a/app/views/welcome/_faq.slim +++ b/app/views/welcome/_faq.slim @@ -26,7 +26,8 @@ | 短時間でも毎日必ず学習する場合と間が空いてしまう場合など、時間のかけかたにも影響があったりもします。 p | 知的好奇心が求めるままに気になったこともきっちり調べる人は、時間がかかっても、 - | 就職後に仕事やソフトウェアエンジニアコミュニティで大活躍をしているので、卒業までの時間が短ければいいとは考えていません。 + | 就職後に仕事やコミュニティで大活躍をしているので、 + | 卒業までの時間が短ければいいとは考えていません。 p | フィヨルドブートキャンプとしては、卒業までの時間が長くなり過ぎないように、 | 泣く泣くカリキュラムを削ったりなどもしているのですが、 @@ -133,7 +134,9 @@ | 転職は考えていないのですが、スキルアップのためプログラミングの勉強がしたいです。その場合、参加は可能ですか? .faqs-item__body p - | 可能です。フィヨルドブートキャンプは就職できるためのスキルを身につけることを目標にしていますが、 + | 可能です。 + | フィヨルドブートキャンプは就職できるためのスキルを身につけることを + | 一つの目標にしていますが、 | 就職を必ずしなくてはいけないという縛りはありません。 .col-lg-4.col-md-6.col-xs-12 section.faqs-item diff --git a/app/views/welcome/_form.slim b/app/views/welcome/_form.slim index 9934d13953d..6308b1ac979 100644 --- a/app/views/welcome/_form.slim +++ b/app/views/welcome/_form.slim @@ -4,4 +4,4 @@ section.welcome-actions .welcome-actions__item = link_to 'お問い合わせ・質問', new_inquiry_path, class: 'a-welcome-button' .welcome-actions__item - = link_to '参加登録', new_user_path, class: 'a-welcome-button is-signup' + = link_to '参加登録', courses_path, class: 'a-welcome-button is-signup' diff --git a/app/views/welcome/_process.slim b/app/views/welcome/_process.slim index 7904ce19574..b7752fc6d74 100644 --- a/app/views/welcome/_process.slim +++ b/app/views/welcome/_process.slim @@ -18,7 +18,6 @@ section.welcome-section.is-process#process p | フィヨルドブートキャンプオリジナルのオンライン学習アプリに教材(プラクティス)があります。 | 卒業を目指してそれを順に進めていきます。基本的に途中のプラクティスを飛ばしたり、 - | 複数のプラクティスをつまみ食いしながら進めるのは禁止しています。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('report.svg', class: 'welcome-small-section__icon') diff --git a/app/views/welcome/_tutorials.slim b/app/views/welcome/_tutorials.slim index b865788aa41..c7d52024006 100644 --- a/app/views/welcome/_tutorials.slim +++ b/app/views/welcome/_tutorials.slim @@ -1,64 +1,39 @@ section.welcome-section.is-tutorials#tutorials .container.is-xl h2.welcome-section__title - = image_tag('tutorials-title.svg', alt: '一人でWebサービスを作って公開できることをゴールとしたカリキュラムを用意しています。', class: 'welcome-section__title-image') - h3.welcome-section__sub-title - | 現場でプラスの戦力になることが目標 + | 選べる2つのコース .welcome-section__description p - | 最終課題が「自分で考えたWebサービスを作って公開」。それに必要な、サーバの構築からバックエンド、フロントエンドも学べます。それだけでなく、オンライン上での質問の仕方、チーム開発のやり方、ペアプログラミングのやり方、ユーザー目線に立った Web サービスの考え方など、コードを書くこと以外の実践に必要なことも学べます。 + | 「Railsエンジニアコース」と「フロントエンドエンジニアコース」の2つのコースがあります。 + | 最初は共通のカリキュラムからスタートし、その後に専門分野に分かれて学んでいきます。 + | どちらのコースも最終的には、自分で考えたWebサービスを作ってリリースすることを目指します。 + | また、どちらもチーム開発を体験できるので、実践的なスキルが身につきます。 + br + | コース選びに迷ったら、まずはRailsエンジニアコースを選んでみてください。入会後はメンターに相談ができるので、その時にしっかり考えましょう。途中でのコースの変更、卒業後に別コースの必要なカリキュラムだけを受講することも可能です。 + section.welcome-child-section.is-tutorials .welcome-small-sections .row.is-gutter-width-24.welcome-small-sections__row - .col-xs-6.col-md-3 + .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner.a-card - = image_tag('mac.svg', class: 'welcome-small-section__icon') h3.welcome-small-section__title - | Macの基本 - .col-xs-6.col-md-3 + | Railsエンジニアコース + .welcome-small-section__description + = image_tag('courses/rails.svg', class: 'welcome-small-section__float-image', alt: 'Ruby on Railsのロゴ') + p + | プログラミング言語「Ruby」を用いたWebアプリケーションフレームワークであるRails(Ruby on Rails)を使ってWebエンジニアになるためのバックエンド・フロントエンドも含めた一通りの技術を学びます。 + .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner.a-card - = image_tag('html.svg', class: 'welcome-small-section__icon') h3.welcome-small-section__title - | HTML - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('css.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | CSS - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('linux.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | Linux - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('ruby.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | Ruby - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('git.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | Git - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('rails.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | Ruby on Rails - .col-xs-6.col-md-3 - section.welcome-small-section - .welcome-small-section__inner.a-card - = image_tag('js.svg', class: 'welcome-small-section__icon') - h3.welcome-small-section__title - | JavaScript + | フロントエンドエンジニアコース + .welcome-small-section__description + = image_tag('courses/nextjs.svg', class: 'welcome-small-section__float-image', alt: 'Ruby on Railsのロゴ') + p + | HTML、CSS やJavaScript/TypeScriptをつかってWebアプリケーションにおいてユーザーが直接触る部分(ユーザーインターフェース)を作るための技術を習得できます。 + .welcome-section__actions .welcome-section__actions-items .welcome-section__actions-item - = link_to '学習内容一覧', practices_path, class: 'a-welcome-button is-md' + = link_to 'コース内容を確認する', practices_path, class: 'a-welcome-button is-md' diff --git a/app/views/welcome/_welcome_header.html.slim b/app/views/welcome/_welcome_header.html.slim index fec41d88590..4b074824be4 100644 --- a/app/views/welcome/_welcome_header.html.slim +++ b/app/views/welcome/_welcome_header.html.slim @@ -36,7 +36,7 @@ header.welcome-header | 紹介・言及記事 - unless current_user li.welcome-header-nav__item - = link_to new_user_path, class: 'welcome-header-nav__item-link' do + = link_to courses_path, class: 'welcome-header-nav__item-link' do | 参加登録 li.welcome-header-nav__item.is-hidden-md-up - if current_user diff --git a/app/views/welcome/courses.html.slim b/app/views/welcome/courses.html.slim new file mode 100644 index 00000000000..e6e7460f64a --- /dev/null +++ b/app/views/welcome/courses.html.slim @@ -0,0 +1,60 @@ +- content_for :extra_body_classes, 'no-forms' +- title 'コース選択' +- set_meta_tags(site: 'FJORD BOOT CAMP(フィヨルドブートキャンプ)', + description: 'フィヨルドブートキャンプの学習内容一覧を表示しています。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。') + +.welcome-page-header + .container.is-xl + .welcome-page-header__inner + h1.welcome-page-header__title + = title + +.welcome-page-body + section.course-selection + .container.is-sm + header.course-selection__header + h2.welcome-section__title.has-border + | コースを選択してください。 + .course-selection__body + .course-selection__descritpion + .a-short-text + p + | Railsエンジニアコースとフロントエンドエンジニアコースの2つのコースがあります。 + | 料金はどちらも同じです。 + p + | どちらのコースも、最初は共通のカリキュラムからスタートし、 + | その後に専門分野に分かれて学んでいきます。最終的には、 + | 自分で考えたWebサービスを作ってリリースすることを目指します。 + | また、どちらのコースでもチーム開発を体験できるので、実践的なスキルが身につきます。 + p + | コース選びに迷ったら、まずはRailsエンジニアコースを選んでみてください。 + | 入会後はメンターに相談ができるので、その時にしっかり考えましょう。 + | 途中でのコースの変更、卒業後に別コースの必要なカリキュラムだけを受講することも可能です。 + .course-selection-nav.is-hidden-md-up + .container + .course-selection-nav__inner + ul.course-selection-nav__items + li.course-selection-nav__item + = link_to '#rails-programmer-course', class: 'course-selection-nav__item-link' do + | Railsエンジニア + li.course-selection-nav__item + = link_to '#front-engineer-course', class: 'course-selection-nav__item-link' do + | フロントエンドエンジニア + + .course-selection__items + .container.is-xl + .row.is-gutter-width-32 + .col-md-6.col-xs-12 + .course-selection-item-anchor#rails-programmer-course + - course = Course.find_by(title: 'Railsエンジニア') + - if course + = render('course', course: course) + - else + p コースが見つかりませんでした。 + .col-md-6.col-xs-12 + .course-selection-item-anchor#front-engineer-course + - course = Course.find_by(title: 'フロントエンドエンジニア') + - if course + = render('course', course: course) + - else + p コースが見つかりませんでした。 diff --git a/app/views/welcome/practices.html.slim b/app/views/welcome/practices.html.slim index 8a9456a94af..da6f4c6b3d2 100644 --- a/app/views/welcome/practices.html.slim +++ b/app/views/welcome/practices.html.slim @@ -8,16 +8,45 @@ h1.welcome-page-header__title = title -section.welcome-section - .container.is-xl - .welcome-small-sections - .row.is-gutter-widtd-32 - - @categories.each do |category| - - if category.practices.present? - .col-xs-12.col-md-4 - .welcome-small-section - h3.welcome-small-section__title = category.name - table.welcome-table.a-card - - category.practices.each do |practice| - tr - td = practice.title +.welcome-page-body + section.course-selection + .container.is-sm + .course-selection__header + h2.welcome-section__title.has-border + | 選べる2つのコース + .course-selection__body + .course-selection__descritpion + .a-short-text + p + | Railsエンジニアコースとフロントエンドエンジニアコースの2つのコースがあります。料金はどちらも同じです。 + p + | どちらのコースも、最初は共通のカリキュラムからスタートし、その後に専門分野に分かれて学んでいきます。最終的には、自分で考えたWebサービスを作ってリリースすることを目指します。また、どちらのコースでもチーム開発を体験できるので、実践的なスキルが身につきます。 + + .course-selection-nav.is-hidden-md-up + .container + .course-selection-nav__inner + ul.course-selection-nav__items + li.course-selection-nav__item + = link_to '#rails-programmer-course', class: 'course-selection-nav__item-link' do + | Railsエンジニア + li.course-selection-nav__item + = link_to '#front-engineer-course', class: 'course-selection-nav__item-link' do + | フロントエンドエンジニア + + .course-selection__items + .container.is-xl + .row.is-gutter-width-32 + .col-md-6.col-xs-12 + .course-selection-item-anchor#rails-programmer-course + - course = Course.find_by(title: 'Railsエンジニア') + - if course + = render('course_practices', course: course) + - else + p コースが見つかりませんでした。 + .col-md-6.col-xs-12 + .course-selection-item-anchor#front-engineer-course + - course = Course.find_by(title: 'フロントエンドエンジニア') + - if course + = render('course_practices', course: course) + - else + p コースが見つかりませんでした。 diff --git a/app/views/welcome/training.html.slim b/app/views/welcome/training.html.slim index a7fa5a78307..1cac2216f8d 100644 --- a/app/views/welcome/training.html.slim +++ b/app/views/welcome/training.html.slim @@ -22,7 +22,7 @@ | フィヨルドブートキャンプは企業の研修代行も行っております。 p | 私たちのカリキュラムは「ソフトウェアエンジニアとして就職するためのカリキュラム」ではありません。 - | 「現場のプラスの戦力になるためのカリキュラム」です。 + | その先の「現場のプラスの戦力になるためのカリキュラム」です。 | 新人がチームに加わった際、ほとんどの場合は教育にリソースが取られ、 | 戦力としてはマイナスになってしまいます。 p diff --git a/config/routes.rb b/config/routes.rb index 52d34f1a5fe..82a9063f6df 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,6 +15,7 @@ get "pp", to: "welcome#pp", as: "pp" get "law", to: "welcome#law", as: "law" get "coc", to: "welcome#coc", as: "coc" + get "courses", to: "welcome#courses", as: "courses" draw :scheduler draw :api draw :paper diff --git a/db/fixtures/courses.yml b/db/fixtures/courses.yml index e16dbf5d2aa..619fc3ea321 100644 --- a/db/fixtures/courses.yml +++ b/db/fixtures/courses.yml @@ -1,15 +1,66 @@ course1: title: Railsエンジニア - description: "Linux, Web, Ruby, Railsなどを学んでRailsエンジニアになろう。" + description: |- + このコースでは、プログラミング言語「Ruby」を用いたWebアプリケーションフレームワークであるRails(Ruby on Rails)を使ってWebエンジニアになるためのバックエンド・フロントエンドも含めた一通りの技術を学びます。 + + ### 主な内容 + **Linux** + Webアプリケーションを動かすために必要なOS、Linuxの使い方を学びます。 + + **Ruby** + Railsにも必須のバックエンドエンジニアとして必要な言語Rubyについて学びます。 + + **JavaScript** + フロントエンドエンドエンジニアとして必須のJavaScriptを基礎から学びます。 + + **Rails** + バックエンド・フロントエンドの両方を含めたWebアプリケーションを作るためのフレームワークであるRailsを学びます。 + + **チーム開発** + Railsで作られたフィヨルドブートキャンプのEラーニングシステム自体をチームで開発します。 + + **Webサービス作成** + アイデアから自分で考えたWebサービスをRailsを使って作り、デプロイまでして公開します。 + + :::message primary + #### バックエンドエンジニアとは + ウェブアプリケーションのサーバーサイドのロジックとデータ管理を担当するエンジニアです。 + 主な仕事はサーバーサイドのビジネスロジックの実装、APIの開発です。 + ユーザーが見えない部分で動作する仕組みを設計・実装し、システム全体が円滑に機能するようにします。 + ::: course2: title: Unityゲームエンジニア description: "Unity, C#を学んでゲームエンジニアになろう。" course3: - title: iOSプログラマー - description: "iOS, Swiftを学んでiOSプログラマーになろう。" + title: iOSエンジニア + description: "iOS, Swiftを学んでiOSエンジニアになろう。" course4: title: フロントエンドエンジニア - description: "JavaScriptやTypeScriptなどを学んでフロントエンドエンジニアになろう。" + description: |- + このコースではHTML、CSSやJavaScript/TypeScriptをつかってWebアプリケーションにおいてユーザーが直接触る部分(ユーザーインターフェース)を作るための技術を習得できます。 + ### 主な内容 + **JavaScript** + フロントエンドエンジニアとして一番重要な言語。基本から非同期処理、ライブラリの作成までしっかり学びます。 + + **TypeScript** + 現在のフロントエンド開発では欠かせない言語。アプリケーションを作っていく場面では全てこのTypeScriptを使用していきます。 + + **React** + WebアプリケーションのUIを作るための代表的なライブラリ。 + + **Next.js** + Reactと組み合わせてWebアプリケーションを作るための便利なライブラリ。 + + **チーム開発** + Next.jsで作られた実際に稼働しているWebアプリケーションをチームで作ります。 + + **Webサービス作成** + アイデアから自分で考えたWebサービスをNext.jsを使って作り、デプロイまでして公開します。 + + :::message primary + #### フロントエンドエンジニアとは + フロントエンドエンジニアとはユーザーが直接触れる部分を設計・開発するエンジニアです。主な仕事はユーザーインターフェース(UI)の設計と実装です。デザイナーが作成したビジュアルデザインを、HTML、CSS、JavaScriptを駆使して再現し、ユーザーが直感的に操作できるインターフェースを構築します。これにより、優れたユーザーエクスペリエンス(UX)を提供することを目指しています。 + ::: diff --git a/db/fixtures/users.yml b/db/fixtures/users.yml index 8d1cbd89de8..9f98162982a 100644 --- a/db/fixtures/users.yml +++ b/db/fixtures/users.yml @@ -28,8 +28,8 @@ komagata: created_at: "2014-01-01 00:00:01" last_activity_at: "2014-01-01 00:00:01" profile_name: "駒形 真幸" - profile_job: "プログラマー" - profile_text: "株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。" + profile_job: "エンジニア" + profile_text: "株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。" machida: login_name: machida @@ -173,7 +173,7 @@ mentormentaro: sent_student_followup_message: true last_activity_at: "2014-01-01 00:00:06" profile_name: "メンタ 麺太郎" - profile_job: "プログラマー" + profile_job: "エンジニア" profile_text: "メンタ麺太郎です。メンターです。" kimura: @@ -863,7 +863,7 @@ unadmentor: sent_student_followup_message: true last_activity_at: "2021-11-01 00:00:02" profile_name: "ウナ アドメン" - profile_job: "プログラマー" + profile_job: "エンジニア" profile_text: "管理者権限の無いメンターです。" tatenoicon: # アイコンが長方形のユーザー diff --git a/test/fixtures/courses.yml b/test/fixtures/courses.yml index 9d6ccbef668..19d9c307c71 100644 --- a/test/fixtures/courses.yml +++ b/test/fixtures/courses.yml @@ -7,5 +7,9 @@ course2: description: "Unity, C#を学んでゲームエンジニアになろう。" course3: - title: iOSプログラマー - description: "iOS, Swiftを学んでiOSプログラマーになろう。" + title: iOSエンジニア + description: "iOS, Swiftを学んでiOSエンジニアになろう。" + +course4: + title: フロントエンドエンジニア + description: "JavaScriptやTypeScriptなどを学んでフロントエンドエンジニアになろう。" diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 059e7e6a443..ea3075c80b6 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -32,8 +32,8 @@ komagata: last_activity_at: "2014-01-01 00:00:01" hide_mentor_profile: false profile_name: "駒形 真幸" - profile_job: "プログラマー" - profile_text: "株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。" + profile_job: "エンジニア" + profile_text: "株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。" machida: login_name: machida @@ -720,7 +720,7 @@ kimuramitai: created_at: "2022-03-28 00:00:01" last_activity_at: "2022-03-28 00:00:01" profile_name: "キムラ ミタイ" - profile_job: "プログラマー" + profile_job: "エンジニア" profile_text: "木村さんに似ているとよく言われます。" sent_student_followup_message: true diff --git a/test/system/admin/campaigns_test.rb b/test/system/admin/campaigns_test.rb index 5b073a28908..27bd5eea80a 100644 --- a/test/system/admin/campaigns_test.rb +++ b/test/system/admin/campaigns_test.rb @@ -163,6 +163,7 @@ class CampaignsTest < ApplicationSystemTestCase assert_text "#{example_start_at} #{example_end_at} #{example_pay_at}" end + logout visit new_user_path assert_text 'キャンペーン適用' assert_text 'お試し期間が倍以上の延長キャンペーン!!! のお試し期間延長が適用され、' diff --git a/test/system/admin/users_test.rb b/test/system/admin/users_test.rb index 944c51bff95..b72f1a0bd6c 100644 --- a/test/system/admin/users_test.rb +++ b/test/system/admin/users_test.rb @@ -311,10 +311,10 @@ class Admin::UsersTest < ApplicationSystemTestCase user = users(:kensyu) visit_with_auth "/admin/users/#{user.id}/edit", 'machida' within 'form[name=user]' do - select 'iOSプログラマー', from: 'user[course_id]' + select 'iOSエンジニア', from: 'user[course_id]' end click_on '更新する' - assert_equal 'iOSプログラマー', user.reload.course.title + assert_equal 'iOSエンジニア', user.reload.course.title end test 'general user cannot change user course' do diff --git a/test/system/courses_test.rb b/test/system/courses_test.rb index 092ee703304..4b917194c9c 100644 --- a/test/system/courses_test.rb +++ b/test/system/courses_test.rb @@ -5,7 +5,7 @@ class CoursesTest < ApplicationSystemTestCase test 'show listing courses' do visit_with_auth '/courses', 'mentormentaro' - assert_equal 'コース一覧 | FBC', title + assert_equal 'コース選択 | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title end test 'create course' do @@ -31,7 +31,7 @@ class CoursesTest < ApplicationSystemTestCase test 'show published courses' do visit_with_auth '/courses', 'hajime' - assert_no_text courses(:course1).title + assert_text courses(:course1).title visit_with_auth "/mentor/courses/#{courses(:course1).id}/edit", 'komagata' within 'form[name=course]' do find(:css, '#checkbox-published-course').set(true) diff --git a/test/system/home_test.rb b/test/system/home_test.rb index fed8a3e64de..35f7e1d0a16 100644 --- a/test/system/home_test.rb +++ b/test/system/home_test.rb @@ -553,7 +553,7 @@ def assert_events_count(event_label, count) test 'toggles_mentor_profile_visibility' do visit '/' assert_text '駒形 真幸' - assert_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' visit_with_auth edit_current_user_path, 'komagata' check 'プロフィール非公開', allow_label_click: true click_on '更新する' @@ -561,6 +561,6 @@ def assert_events_count(event_label, count) logout visit '/' assert_no_text '駒形 真幸' - assert_no_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_no_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' end end diff --git a/test/system/require_login_test.rb b/test/system/require_login_test.rb index 4c8e598ff49..dd13bd2bc0a 100644 --- a/test/system/require_login_test.rb +++ b/test/system/require_login_test.rb @@ -13,7 +13,6 @@ class RequireLoginTest < ApplicationSystemTestCase assert_login_required "/companies/#{companies(:company1).id}/users" assert_login_required '/companies' assert_login_required "/courses/#{courses(:course1).id}/practices" - assert_login_required '/courses' assert_login_required '/current_user/bookmarks' assert_login_required '/current_user/password/edit' assert_login_required '/current_user/products' diff --git a/test/system/welcome_test.rb b/test/system/welcome_test.rb index 922284a226f..4482edc7111 100644 --- a/test/system/welcome_test.rb +++ b/test/system/welcome_test.rb @@ -84,8 +84,8 @@ class WelcomeTest < ApplicationSystemTestCase visit_with_auth '/current_user/edit', 'komagata' attach_file 'user[profile_image]', Rails.root.join('test/fixtures/files/users/avatars/komagata.jpg'), make_visible: true fill_in 'user[profile_name]', with: '駒形 真幸' - fill_in 'user[profile_job]', with: 'プログラマー' - fill_in 'user[profile_text]', with: '[株式会社ロッカ](https://lokka.jp)の代表兼プログラマー。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' + fill_in 'user[profile_job]', with: 'エンジニア' + fill_in 'user[profile_text]', with: '[株式会社ロッカ](https://lokka.jp)の代表兼エンジニア。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' click_on '書籍を追加' find("input[name*='[title]']").set('プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで') find("input[name*='[url]']").set('https://www.amazon.co.jp/dp/B09MPX7SMY') @@ -95,8 +95,8 @@ class WelcomeTest < ApplicationSystemTestCase visit '/welcome' assert_selector 'img[src*="komagata.jpg"]' assert_text '駒形 真幸' - assert_text 'プログラマー' - assert_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_text 'エンジニア' + assert_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' assert_selector 'img[src*="cherry-book.jpg"]' end @@ -105,8 +105,8 @@ class WelcomeTest < ApplicationSystemTestCase visit_with_auth "/admin/users/#{user.id}/edit", 'komagata' attach_file 'user[profile_image]', Rails.root.join('test/fixtures/files/users/avatars/komagata.jpg'), make_visible: true fill_in 'user[profile_name]', with: '駒形 真幸' - fill_in 'user[profile_job]', with: 'プログラマー' - fill_in 'user[profile_text]', with: '[株式会社ロッカ](https://lokka.jp)の代表兼プログラマー。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' + fill_in 'user[profile_job]', with: 'エンジニア' + fill_in 'user[profile_text]', with: '[株式会社ロッカ](https://lokka.jp)の代表兼エンジニア。Rubyが大好きで[怖話](https://kowabana.jp)、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp)などを開発している。' click_on '書籍を追加' find("input[name*='[title]']").set('プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで') find("input[name*='[url]']").set('https://www.amazon.co.jp/dp/B09MPX7SMY') @@ -116,15 +116,15 @@ class WelcomeTest < ApplicationSystemTestCase visit '/welcome' assert_selector 'img[src*="komagata.jpg"]' assert_text '駒形 真幸' - assert_text 'プログラマー' - assert_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_text 'エンジニア' + assert_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' assert_selector 'img[src*="cherry-book.jpg"]' end test 'toggles_mentor_profile_visibility' do visit '/welcome' assert_text '駒形 真幸' - assert_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' visit_with_auth edit_current_user_path, 'komagata' check 'プロフィール非公開', allow_label_click: true click_on '更新する' @@ -132,9 +132,9 @@ class WelcomeTest < ApplicationSystemTestCase logout visit '/welcome' assert_no_text '駒形 真幸' - assert_no_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_no_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' visit_with_auth '/welcome', 'kimura' assert_text '駒形 真幸' - assert_text '株式会社ロッカの代表兼プログラマー。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' + assert_text '株式会社ロッカの代表兼エンジニア。Rubyが大好きで怖話、フィヨルドブートキャンプなどを開発している。' end end