Skip to content

Commit

Permalink
Merge branch 'main' into feat/725-sync-wearecommunity-link-with-api-data
Browse files Browse the repository at this point in the history
  • Loading branch information
Quiddlee authored Jan 27, 2025
2 parents 2ffe6ac + e091d61 commit b809a4f
Show file tree
Hide file tree
Showing 299 changed files with 4,306 additions and 974 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms
open_collective: rsschool
custom: ["https://boosty.to/rsschool"]
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:

env:
NODE_VERSION: 20.x
API_URL: ${{ secrets.API_URL }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}

jobs:
ci:
Expand Down Expand Up @@ -36,5 +38,3 @@ jobs:

- name: Build
run: npm run build
env:
API_URL: ${{ secrets.API_URL }}
4 changes: 2 additions & 2 deletions .github/workflows/preview-create.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ env:
AWS_ACCESS_KEY_ID: ${{ secrets.DEPLOY_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEPLOY_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'eu-central-1'
API_URL: ${{ secrets.API_URL }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}

jobs:
build-rs-school:
Expand All @@ -34,8 +36,6 @@ jobs:
run: |
npm ci
npm run build
env:
API_URL: ${{ secrets.API_URL }}
- uses: jakejarvis/s3-sync-action@master
name: Sync to S3
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ env:
AWS_ACCESS_KEY_ID: ${{ secrets.DEPLOY_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEPLOY_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'eu-central-1'
API_URL: ${{ secrets.API_URL }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_PRODUCTION }}

jobs:
rs-school:
Expand All @@ -26,11 +28,9 @@ jobs:

- name: Install dependencies
uses: bahmutov/npm-install@v1

- name: Build
run: npm run build
env:
API_URL: ${{ secrets.API_URL }}

# Copy the static files to the S3 bucket from _next folder (js, css, images)
# Set the cache-control header to 30 days
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/visual-testing-on-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:

env:
NODE_VERSION: 20.x
API_URL: ${{ secrets.API_URL }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}

jobs:
run-visial-testing:
Expand Down Expand Up @@ -51,4 +53,3 @@ jobs:
PERCY_PULL_REQUEST: ${{ github.event.issue.number }}
PERCY_COMMIT: ${{ steps.get_pr.outputs.commit_sha }}
PERCY_BRANCH: ${{ steps.get_pr.outputs.branch_name }}
API_URL: ${{ secrets.API_URL }}
3 changes: 2 additions & 1 deletion .github/workflows/visual-testing-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:

env:
NODE_VERSION: 20.x
API_URL: ${{ secrets.API_URL }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY_DEVELOPMENT }}

jobs:
visial-testing:
Expand All @@ -26,4 +28,3 @@ jobs:
- run: npm run test:visual
env:
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
API_URL: ${{ secrets.API_URL }}
4 changes: 2 additions & 2 deletions dev-data/about-mentors.data.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const aboutMentorsData = {
en: { header: 'Mentorship details' },
ru: { header: 'Краткая информация' },
en: { header: 'Mentorship Details' },
ru: { header: 'Краткая Информация' },
};
5 changes: 3 additions & 2 deletions dev-data/courses-data.types.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { ReactNode } from 'react';
import { StaticImageData } from 'next/image';
import { MentorActivities } from './mentorship-data.types';

import type { MentorActivity } from './mentorship-data.types';
import type { Course } from '@/entities/course';
import type { ListData } from '@/shared/types';

export type DataMap = {
mentorship: MentorActivities[];
mentorship: MentorActivity[];
courses: Course[];
coursesPath: CoursesPath[];
javascript: JSPath[];
Expand Down
16 changes: 16 additions & 0 deletions dev-data/donate-options.data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { LINKS } from '@/core/const';

export const donateOptions = [
{
id: 1,
linkLabel: 'Donate now',
icon: 'openCollective',
href: LINKS.DONATE_OPEN_COLLECTIVE,
},
{
id: 2,
linkLabel: 'Subscribe now',
icon: 'boosty',
href: LINKS.DONATE_BOOSTY,
},
];
8 changes: 3 additions & 5 deletions dev-data/hero-page.data.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import mentorImg from '@/shared/assets/mentor-new-with-border.webp';
import coursesPageHeroImg from '@/shared/assets/mentor-with-his-students.webp';

export const heroPageData = {
Expand All @@ -22,10 +21,9 @@ export const heroPageData = {
imageAltText: '',
},
mentorship: {
mainTitle: 'RS Mentorship',
widgetTitle: '"Teach It Forward"',
mainTitle: 'Mentorship',
widgetTitle: '',
subTitle: ['By teaching others, you learn yourself'],
heroImageSrc: mentorImg,
imageAltText: 'Wanted poster featuring a cartoon sloth in a fedora, labeled Wanted Mentor',
imageAltText: '',
},
};
7 changes: 6 additions & 1 deletion dev-data/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ export type {
export type {
CourseTitle,
ImageLink,
MentorActivities,
MentorActivity,
MentorshipCourse,
MentorshipCourseRouteKeys,
MentorshipDefaultRouteKeys,
MentorshipDetails,
MentorshipRoute,
} from './mentorship-data.types';
export type { MentorshipCourseTitles, MentorshipLinks } from './mentorship-data.types';
export {
ANNOUNCEMENT_TELEGRAM_LINK,
type CourseNamesChannels,
Expand Down Expand Up @@ -52,6 +54,7 @@ export { courseDataMap } from './required.data';
export { courseStatus, heroCourseLocalized } from './hero-course.data';
export { courses } from './courses.data';
export { coursesPath } from './courses-path.data';
export { donateOptions } from './donate-options.data';
export { events } from './events.data';
export { faqData } from './faq.data';
export { generalMaterials } from './general.data';
Expand All @@ -62,6 +65,8 @@ export { jsPath } from './js-path.data';
export { jsPathRu } from './js-ru-path.data';
export { mentorDocsData } from './mentor-docs.data';
export { mentorsActivityData } from './mentors-activity.data';
export { mentorsAfterRegisterData } from './mentors-after-register.data';
export { mentorsFeedbackData } from './mentors-feedback.data';
export { mentorsRegisterData } from './mentors-register.data';
export { mentorsWantedData } from './mentors-wanted.data';
export { mentorshipCourses, mentorshipCoursesDefault } from './mentorship.data';
Expand Down
4 changes: 2 additions & 2 deletions dev-data/mentor-docs.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export const mentorDocsData = {
textAfterLink: 'for the',
textAfterCourseName: 'Course.',
},
pictureAlt: 'Mentor and its students',
pictureAlt: 'Sloth mascot dressed in a red superhero cape',
additional: 'You can also ask questions ',
},
ru: {
Expand All @@ -30,7 +30,7 @@ export const mentorDocsData = {
textAfterLink: 'для курса',
textAfterCourseName: '.',
},
pictureAlt: 'Ментор и его студенты',
pictureAlt: 'Талисман ленивца, одетый в красный плащ супергероя',
additional: 'Вы так же можете задать вопросы ',
},
};
42 changes: 42 additions & 0 deletions dev-data/mentors-after-register.data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
export const mentorsAfterRegisterData = {
en: {
title: 'After Completing the Registration',
steps: [
{
id: 1,
subtitle: 'An email with instructions',
content: 'will be sent to you before mentoring begins',
},
{
id: 2,
subtitle: 'Confirm your participation',
content: 'in the mentoring program by clicking on the link in the email',
},
{
id: 3,
subtitle: 'Follow the links',
content: 'from the email to join the selected course community on Telegram and Discord',
},
],
},
ru: {
title: 'После Регистрации',
steps: [
{
id: 1,
subtitle: 'Письмо с инструкциями',
content: 'будет отправлено вам на электронную почту перед началом менторинга',
},
{
id: 2,
subtitle: 'Подтвердите участие',
content: 'в программе менторинга, перейдя по ссылке в письме',
},
{
id: 3,
subtitle: 'Подключайтесь по ссылкам',
content: 'из письма к сообществу выбранного курса в Телеграм и Дискорд',
},
],
},
};
49 changes: 49 additions & 0 deletions dev-data/mentors-feedback.data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { MentorFeedback } from '@/entities/mentor';
import mentorSloth1 from '@/shared/assets/svg/mentor-sloths/1.svg';
import mentorSloth2 from '@/shared/assets/svg/mentor-sloths/2.svg';

export const mentorsFeedbackData: MentorFeedback[] = [
{
name: 'Матвеев Михаил',
course: 'FE Javascript',
review:
'По моему мнению это один из лучших курсов школы. Огромное количество интересных заданий, которые постоянно обновляются. Однако для лучшего усвоения материала ментор/наставник тут необходим для большинства студентов. Я сам заканчивал этот курс и для меня структура курса и сам процесс менторинга не был чем то новым, я знал на что иду. На все задачки которые ты должен проверять как ментор дается более чем достаточно времени, а все остальное довольно индивидуально. У меня были студенты которые очень боялись задавать вопросы, боялись сдавать таски, были слабые студенты, были сильные студенты, но все они выросли и стали лучше.',
photo: mentorSloth1,
},
{
name: 'Оксана Федотова',
course: 'JavaScript/Front-end 2023Q1',
review: `Должна отметить, что мне в целом очень понравились курсы RS School. Для меня удивительно и здорово, что есть такие курсы, которые позволяют изучать различные направления разработки бесплатно, при этом на высоком уровне.
Ментором я стала почти случайно. Однажды мне пришло письмо на электронную почту с информацией о том, что идет новый курс и не хватает менторов. Я решила попробовать. Мне назначили трёх студентов, с которыми мы провели вводной созвон, познакомились и обсудили предстоящую работу.
На первом этапе моя основная задача заключалась в проверке качества кода и помощи студентам с их вопросами и сложностями. Критерии проверки для каждого задания были чётко прописаны, что значительно упростило процесс и помогло избежать недоразумений. Это было для меня не только полезным опытом наставничества, но и отличной возможностью освежить собственные знания.
Следующий этап был ещё интереснее — написание совместного проекта. Это оказался непростой, но увлекательный процесс. Мои студенты были разными с точки зрения опыта и навыков, но нам удалось удачно распределить роли, чтобы каждый работал над тем, что у него получалось лучше всего. Для меня особенно ценно было поработать с такими инструментами, как API Commercetools и SASS модули — это позволило мне и самой погрузиться в новые технологии.
Я считаю, что менторинг в RS School — это прекрасная возможность не только передать свои знания, но и отличный шанс развить коммуникационные и организационные навыки, углубить понимание материалов и внести вклад в развитие будущих разработчиков.`,
photo: mentorSloth2,
},
{
name: 'Маргарита Малец',
course: 'JavaScript/Front-end 2023Q4, React 2024 Q3',
review:
`В RS school главное для ментора поддержать студентов, поделиться своим опытом и знаниями (даже если пока нет опыта работы но есть опыт успешного обучения это уже полезно для тех, кто сейчас учиться).
Есть несколько обязательных активностей: ревью кода и проведение интервью. А в остальном - ментор сам выбирает линию поведения и вовлечённость.
Роль ментора лично мне помогла победить страх перед публичными выступлениями и новыми знакомствами, принять свое несовершенство и найти рецепт непрерывного обучения.`,
photo: mentorSloth1,
},
{
name: 'Александр Радванский',
course: 'JavaScript/Front-end 2023Q4 / React 2024 Q3',
review:
`Спасибо RSSCHOOL за предоставленную возможность попробовать себя в роли менторинга студентов. Это отличный повод завести новые знакомства, пообщаться с интересными людьми, расширить кругозор, повторить и попробовать "базу", держать себя в форме и подтянуть soft-skills 🙂.
Прекрасно и интересно провел время в компании целеустремлённых и мотивированных людей пробуя, решая, объясняя разнообразные темы и задачи.
Так держать RSSCHOOL, вы делаете правильные и нужные вещи и всегда помните, что "Вы - клёвые".`,
photo: mentorSloth2,
},
];
14 changes: 1 addition & 13 deletions dev-data/mentors-register.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,21 @@ import { LINKS } from '@/core/const';

export const mentorsRegisterData = {
en: {
header: 'Registration as a mentor',
stepsAfter: [
'An email with instructions will be sent to you before mentoring begins',
'Confirm your participation in the mentoring program by clicking on the link in the email',
'Follow the links from the email to join the selected course community on Telegram and Discord',
],
header: 'Register as a Mentor',
button: {
text: 'Registration',
link: LINKS.BECOME_MENTOR,
external: true,
},
noteBefore: 'You need a Github account to complete registration and access the RS-App application',
noteAfter: 'After completing the registration',
},
ru: {
header: 'Регистрация ментором',
stepsAfter: [
'Перед началом менторинга вам будет направлено письмо с инструкциями на электронную почту',
'Подтвердите участие в программе менторинга перейдя по ссылке в письме',
'Подключитесь по ссылкам из письма к сообществу выбранного курса в Телеграмм и Дискорд',
],
button: {
text: 'Регистрация',
link: LINKS.BECOME_MENTOR,
external: true,
},
noteBefore: 'Для прохождения регистрации и доступа в приложение RS-App вам необходим Github аккаунт',
noteAfter: 'После выполнения регистрации',
},
};
45 changes: 38 additions & 7 deletions dev-data/mentorship-data.types.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,45 @@
import { StaticImageData } from 'next/image';

import { COURSE_TITLES } from './courseTitles.data';
import { ROUTES } from '@/core/const';
import { Language } from '@/shared/types';
import { SocialMediaProps } from '@/shared/ui/social-media-item';
import { Stage } from '@/widgets/member-activity/ui/stage-card';

export type MentorActivities = Pick<Stage, 'id' | 'title' | 'description' | 'links'>;
export type MentorActivity = {
id: number;
title: string;
description: string;
icon: StaticImageData;
links?: ActivityLink[];
};

type ActivityLink = {
href: string;
linkTitle: string;
};

type CourseTitleKey = keyof typeof COURSE_TITLES;
export type CourseTitle = typeof COURSE_TITLES[CourseTitleKey];
export type CourseTitle = (typeof COURSE_TITLES)[CourseTitleKey];

export type MentorshipCourseTitles = Extract<
CourseTitle,
'JS / Front-end RU' | 'JS / Front-end EN' | 'Angular' | 'React'
>;

export type MentorshipLinks = {
[Key in MentorshipCourseTitles]: MentorshipCourseRoute;
};

export type MentorshipDefaultRouteKeys = typeof ROUTES.MENTORSHIP;
type MentorshipDefaultRoute = `/${typeof ROUTES.MENTORSHIP}`;

export type MentorshipCourseRouteKeys =
typeof ROUTES.JS | typeof ROUTES.JS_RU | typeof ROUTES.REACT | typeof ROUTES.ANGULAR;
type MentorshipCourseRoute = `${MentorshipDefaultRoute}/${MentorshipCourseRouteKeys}`;
| typeof ROUTES.JS
| typeof ROUTES.JS_RU
| typeof ROUTES.REACT
| typeof ROUTES.ANGULAR;

export type MentorshipCourseRoute = `${MentorshipDefaultRoute}/${MentorshipCourseRouteKeys}`;

export type MentorshipRoute = MentorshipDefaultRoute | MentorshipCourseRoute;

Expand All @@ -24,6 +48,12 @@ export type ImageLink = {
alt: string;
};

export type MentorshipDetails = {
id: number;
title: string;
info: string;
};

export type MentorshipCourse = {
id: number;
title: CourseTitle;
Expand All @@ -37,6 +67,7 @@ export type MentorshipCourse = {
courseDocs?: string;
onboard?: SocialMediaProps[];
};
details: string[];
activities: MentorActivities[];
details: MentorshipDetails[];
activitiesTitle: string;
activities: MentorActivity[];
};
Loading

0 comments on commit b809a4f

Please sign in to comment.