Платформа поиска работы для водителей в США
NewJobs4You помогает водителям грузовиков искать работу и выбирать перевозчика. В каталоге можно сравнить оплату, маршруты, график и требования, прочитать отзывы о компании и отправить отклик. Для команды проекта я разработал админку: через неё ведут вакансии и профили работодателей, обрабатывают заявки, модерируют отзывы и публикуют материалы. В неё также входят редакторы страниц и инструменты SEO для поиска работы по городам и штатам. Всю разработку — архитектуру, базу данных, серверную часть и интерфейсы — я выполнил с нуля. Заказчик предоставил требования и дизайн в Figma.
Задача — Разработать сервис поиска работы и систему управления платформой
Заказчику нужна была платформа для найма водителей в США. Посетитель должен был находить вакансии по месту и условиям работы, изучать работодателей и отправлять отклики. Команде проекта требовалась админка для управления вакансиями, компаниями, заявками, отзывами и содержимым сайта. Отдельная часть требований касалась SEO: страниц городов и штатов, их наполнения и индексации. На старте были требования и макеты в Figma. Архитектуру приложения, базу данных, серверную логику и интерфейсы предстояло разработать с нуля. Вместе с заказчиком мы уточняли детали на созвонах, согласовывали поведение функций и делили работу на этапы.
Мой вклад — Самостоятельно разработал всё приложение
Я отвечал за техническую реализацию проекта целиком. Спроектировал базу данных и API, написал серверную часть, разработал публичный сайт по предоставленному дизайну и сделал его адаптивным. Реализовал поиск с зависимыми фильтрами, страницы вакансий и компаний, отзывы, формы отклика и отправки сообщений. Большой объём работы пришёлся на админку: подробные редакторы вакансий и работодателей, обработку обращений, модерацию, роли и журнал действий. Также я разработал CMS с блочным редактором, управление SEO-страницами и фоновые задачи. По ходу работы показывал заказчику готовые части приложения и вносил согласованные изменения.
- Архитектура и серверная часть
- Спроектировал базу данных: вакансии, работодатели, география, специальности, отзывы, отклики и контент. Разработал API и серверную логику для сайта и админки, включая права доступа и правила публикации записей.
- Интерфейсы и мобильная версия
- Разработал публичный сайт по макетам в Figma: каталог, вакансии, профили компаний, блог и формы. Адаптировал навигацию, фильтры и страницы под телефон. Для админки реализовал отдельный настольный интерфейс с таблицами, редакторами и настройками.
- Поиск и фильтры
- Реализовал поиск по местоположению и условиям работы: оплате, графику, опыту и типу техники. Разработал зависимые фильтры со счётчиками результатов и сохранением выбора в URL. Добавил в админку настройки названий, группировки, порядка и видимости фильтров.
- Управление платформой
- Разработал разделы для вакансий, компаний, отзывов, откликов и сообщений. Добавил статусы и сроки публикации, загрузку медиа, права доступа и журнал действий. В редакторе компании предусмотрел отдельные настройки найма, льгот, автопарка, контактов и других разделов профиля.
- CMS и редакторы страниц
- Создал блочный редактор статей с текстом, изображениями, видео, таблицами, FAQ и подборками из каталога. Реализовал управление авторами, категориями и публикациями, а также редактирование информационных страниц и секций сайта.
- SEO и фоновые задачи
- Разработал страницы для штатов, городов и специальностей в конкретной локации. Реализовал управление метаданными и индексацией, генерацию sitemap, обработку истечения срока вакансий и очередь уведомлений. Подготовил запуск сервисов в Docker.
Как устроена платформа
Поиск вакансий и фильтры
В каталоге водитель выбирает место работы и уточняет условия: оплату, тип занятости, время дома, требуемый опыт и технику. В карточке вакансии видны работодатель и основные параметры предложения. Для подробного описания можно открыть вакансию, а для знакомства с перевозчиком — перейти в профиль компании. Я разработал поиск с зависимыми фильтрами: при выборе штата меняются доступные варианты и количество вакансий. Выбранные параметры сохраняются в URL, поэтому ссылку на выдачу можно отправить другому человеку или открыть позже. Условия можно снимать по одному или сбрасывать целиком. Названия, порядок и видимость фильтров настраиваются в админке.
Вакансия, отклик и связь с работодателем
Страница вакансии содержит условия оплаты, график, требования к водителю, преимущества, информацию о технике и маршрутах. Здесь же находятся сведения о работодателе и способы связи. Из вакансии можно перейти к компании, отправить отклик или задать вопрос через отдельную форму. Отклик доступен без регистрации. Водитель заполняет контакты, указывает класс CDL, опыт и местоположение, при желании прикладывает резюме. Я реализовал обе формы и обработку заявок на сервере. Отклики и сообщения сохраняются в админке с привязкой к вакансии и работодателю.
Профили компаний и отзывы водителей
Для перевозчиков я разработал подробные профили: описание компании, условия найма, льготы, правила работы, автопарк, фотографии и контакты. В профиле также отображаются открытые вакансии. Данные этих разделов команда заполняет через редактор компании в админке. Отдельно реализовал отзывы с общей оценкой и оценками условий работы. Водитель может указать должность и период работы, написать отзыв и приложить документ, подтверждающий трудоустройство. В админке предусмотрено управление публикацией отзывов; опубликованные оценки используются в рейтинге компании.
Админка и управление данными
Я разработал админку для вакансий, компаний, отзывов, откликов и сообщений. В списках можно найти запись, проверить её статус и открыть редактор. Для вакансий предусмотрены сроки действия и настройки публикации. Профиль работодателя редактируется по разделам: условия найма, оплата, льготы, техника, адреса, контакты и медиа. Через админку команда также управляет справочниками и настройками фильтров. Права доступа зависят от роли сотрудника, а изменения фиксируются в журнале действий. Админка рассчитана на работу с компьютера: большие таблицы и подробные формы представлены в настольном интерфейсе.
Блог и управление содержимым сайта
Для публикации материалов я разработал CMS с блочным редактором. Статью можно собрать из текста, изображений, видео, таблиц, FAQ и подборок вакансий или компаний. Редактор позволяет менять порядок блоков, задавать обложку, автора, категории, дату публикации и метаданные. На сайте статьи представлены в блоге с категориями; внутри материала есть оглавление. Подборки вакансий и компаний берут данные из каталога. Кроме блога, через CMS редактируются информационные страницы, первые экраны и секции сайта — для этих изменений команде не нужно обращаться к коду.
Страницы городов и штатов, настройки SEO
Я разработал страницы поиска работы по штатам, городам и сочетаниям локации со специальностью. На них выводятся соответствующие вакансии, компании и редакционные материалы. Для таких страниц в админке есть настройки содержания, метаданных и отдельных секций. Реализовал управление индексацией с учётом наполнения страниц и генерацию sitemap. Обновление поисковых страниц связано с данными каталога и сроками действия вакансий. Команда может управлять этой частью сайта через админку вместе с остальным контентом.
Техническая реализация
Публичный сайт и админку я разработал на Next.js и TypeScript, API — на Python и FastAPI. Данные хранятся в PostgreSQL; для работы с ними используется SQLAlchemy. Сервер обрабатывает поисковые запросы, отклики и сообщения, проверяет права доступа и определяет, какие записи доступны для публикации. Для истечения срока вакансий, обновления поисковых страниц, генерации sitemap и обработки очереди уведомлений предусмотрены отдельные фоновые процессы. В этой части используется Redis. Сервисы приложения запускаются в Docker.
- TypeScript
- Next.js
- Python
- FastAPI
- PostgreSQL
- Redis
- SQLAlchemy
- Docker