Запуск проекта

Не могу поверить, что мой второй проект в WeCode уже завершен! Последние 2 недели были довольно сумасшедшими, много-много веселья и обучения. Это чтобы поделиться своим путешествием со вторым командным проектом.

Мой второй проект — клонировать одну из самых популярных рекрутинговых платформ в Корее, Wanted. Мы придумали название и логотип нашего командного проекта ‹GetWanted/›, что показывает, что мы решили сделать рекрутинговый сайт именно для разработчиков. В команде шесть человек, включая меня, по три на front-end и back-end.

Хотя это проект клонирования, наша цель не в идентичном клонировании веб-приложения. Мы стремимся реализовать различные функции самостоятельно, особенно те, которые мы не смогли испытать в прошлом проекте. Итак, члены моей команды и я поделились тем, что мы сделали из последнего проекта, и распределили работу на основе того, из чего мы можем извлечь максимальную пользу.

Моей частью была страница управления файлами резюме, страница написания резюме и страница сведений о вакансии. Я собираюсь поделиться некоторыми кодами в следующем разделе.

Командная работа и Scrum

На этот раз мы снова использовали Trello, чтобы каждый день сообщать друг другу о прогрессе и делиться информацией. Встречи проходили довольно прямолинейно и быстро, и большая часть нашей работы выполнялась вовремя. Все усердно работали в выходные и праздничные дни, и я горжусь своей командой, которая сделала все возможное для завершения каждой части. В очередной раз я понял, что общение между членами команды чрезвычайно важно. В следующий раз я надеюсь на более конструктивное общение с бэкенд-членами, так как я обнаружил, что картина, которую рисует каждый член команды, может сильно отличаться друг от друга, и требуется много времени, чтобы договориться, если мы тоже найдем разницу. поздно.

Сводная информация о работе

Функции, которые я разработал для этого проекта, включают:

Resume Storage

  • Загрузить PDF-файлы
  • Добавлять, удалять, изменять файлы резюме
  • Загрузить формы резюме
  • Динамическая маршрутизация

Написание резюме

  • Автозаполнение основной личной информации
  • Добавить/удалить опыт работы
  • Сохранить как черновик/закончить и обновить хранилище

Сообщения о вакансиях

  • Карусель изображений работодателя
  • Отображение местоположения работодателя с помощью API карты Kakao
  • Загружайте резюме пользователя и отправляйте файлы на почту

Сутки, которыми можно поделиться

В этом проекте мне пришлось использовать множество функций выборки для получения и публикации информации, работающей на стороне сервера. На более поздних этапах проекта у нас был сеанс повторного использования функций. Я хотел провести рефакторинг своего кода, особенно функций выборки, чтобы мне не приходилось снова и снова писать одни и те же строки.

Выше reuseFetch принимает четыре параметра: API, метод, токен и полезную нагрузку. Методы, которые я использовал, были только GET и POST, поэтому я использовал условие if для POST, так как ему нужны параметры.

Второй момент, которым я хочу поделиться, касается включения кнопки отправки на странице сведений о вакансии. Функция, которую я должен был разработать, имеет следующие требования:

  1. Есть галочки прикрепления файла, который пользователь разместил в аккаунте, а значит количество файлов может быть разным.
  2. Кнопка отправки (제출하기) должна быть включена и менять цвет, когда установлен хотя бы один из флажков.
  3. Кнопка отправки должна оставаться активной, когда установлен ряд флажков, так как можно отправить несколько файлов.
  4. При снятии флажков кнопка отправки должна быть отключена, когда все флажки сняты.

Мне было довольно сложно разработать эту функцию, потому что я не был уверен, в каком компоненте я должен управлять состояниями флажков. Первоначально у меня были состояния компонента флажка, так как я думал, что у каждого флажка должно быть свое собственное состояние, чтобы каждое поле можно было проверить отдельно. Затем у меня было состояние submitReady для его родительского компонента. Проблема заключалась в том, что хотя я смог включить кнопку отправки, когда было установлено несколько флажков, как только один из них был снят, кнопка отправки отключилась.

С помощью моего наставника я понял, что состоянием каждого флажка также следует управлять из родительского компонента. Но, поскольку количество флажков разное в зависимости от того, сколько файлов загрузил пользователь, мне пришлось подумать о том, как получить количество состояний. Итак, я использовал функцию map для возврата логического состояния для каждого файла в массиве resumeList.

Затем handleCheckBoxClick изменяет только состояние выбранного флажка в массиве. Наконец, checkSubmitReadyфункция проверяет, нажат ли хотя бы один флажок, состояние submitReady должно быть истинным, иначе останется ложным. Эта функция оказалась более сложной, чем я думал. Как пользователь, я никогда бы не подумал, что такая простая на вид функция нуждается в такой логике, ха-ха.

Завершение проекта

В день финальной презентации я был не слишком доволен результатом. Все работало нормально до вчерашнего вечера, но по какой-то причине некоторые функции на странице резюме не работали так хорошо. Мы не смогли сделать это идеально на презентации, но тем не менее, я горжусь своей работой и прогрессом, которого я добился на буткемпе. Оглядываясь назад на начало лагеря, то, чего мы все достигли, просто безумно!

С завтрашнего дня я начинаю свою месячную стажировку в начинающей компании. Я нервничаю и волнуюсь одновременно. Я с нетерпением жду возможности узнать гораздо больше от работы с разработчиками в этой области, и через месяц я буду более готов в качестве младшего разработчика.