Разработка на JavaScript — удалённая работа в Москве
Дата: 2025-05-02
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-05-02
Описание
Покрыть готовый код тестами на Cypress и Jest. Тестирование. Функциональные требования Интеграционные тесты на Cypress написаны для страницы конструктора бургера: Созданы моковые данные для ингредиентов (например, в файле ingredients.json); Настроен перехват запроса на эндпоинт 'api/ingredients’, в ответе на который возвращаются созданные ранее моковые данные. Протестировано добавление ингредиента из списка в конструктор. Минимальные требования — добавление одного ингредиента, в идеале — добавление булок и добавление начинок. Протестирована работа модальных окон: открытие модального окна ингредиента; закрытие по клику на крестик; закрытие по клику на оверлей (желательно); Создание заказа: Созданы моковые данные ответа на запрос данных пользователя. Созданы моковые данные ответа на запрос создания заказа. Подставляются моковые токены авторизации. Собирается бургер. Вызывается клик по кнопке «Оформить заказ». Проверяется, что модальное окно открылось и номер заказа верный. Закрывается модальное окно и проверяется успешность закрытия. Проверяется, что конструктор пуст. Тесты на Jest: Проверяют правильную инициализацию rootReducer. Проверяют редьюсер слайса constructor: обработку экшена добавления ингредиента; обработку экшена удаления ингредиента; обработку экшена изменения порядка ингредиентов в начинке; Проверяют редьюсеры остальных слайсов (на примере ingredients): При вызове экшенаRequest булевая переменная, отвечающая за текущий запрос (например, store.isLoading) меняется на true. При вызове экшена Success и передаче в него ингредиентов эти данные записываются в стор (например, в [store.data](http://store.data)) и store.isLoading меняется на false. При вызове экшена Failed и передаче в него ошибки она записывается в стор (например, store.error) и store.isLoading меняется на false.
Похожие заказы
Разработка на JavaScript
дистанционно
договорная
Решение домашнего задания на языке Java с определенными требованиям. Разработка с нуля, тестирование. Шаблон, который прописан в задании вышлю дополнительно.
Москва
Фрилансеры
2025-06-05
Разработка на Node.js
дистанционно
договорная
Доработка бот. Разработка с нуля. Пожелания и особенности: У меня есть готовый скрипт код игровой бот из вк, вам нужно переписать из вк на телеграмм полностью.
Нижний Новгород
Фрилансеры
2025-06-04
Разработка на React
дистанционно
договорная
Веб-разработка. Разработка с нуля, Я junior frontend разработчик, ищу ментора-помощника на текущий проект. Необходимо сверстать по макету с использованием mui компонентов. Табы, пагинация, таблицы, гет запросы с сервера. Проект срочный, нужно созвониться сегодня 02.06 вечером по мск.
Санкт-Петербург
Фрилансеры
2025-06-02
Разработка на JavaScript
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Есть реализованный рабочий проект - сайт. Необходимо исправить некоторые моменты. За более подробной информацией в личные сообщения.
Москва
Фрилансеры
2025-06-02
Разработка на Node.js
дистанционно
договорная
Доработка Сайта и его продакшн. Доработка существующего продукта. # Техническое задание: Доработка BS Legal Platform ## 1. Текущее состояние проекта ### 1.1 Реализованные компоненты - Рабочее веб-приложение на React + Node.js - Базовая структура frontend и backend - Работающая база данных MySQL - Базовый функционал Redis - Локальные скрипты запуска (launcher.ps1, launcher.sh) ### 1.2 Существующая инфраструктура - Локальное окружение разработки - Локальные бинарники MySQL и Redis - Базовые конфигурации сервисов ### 1.3 Стек технологий #### Frontend - React 18.2.0 - TypeScript 5.0.4 - Vite 4.3.0 - Material-UI 5.13.0 - Redux Toolkit 2.2.3 - React Router 6.11.0 - Axios 1.4.0 - TailwindCSS 3.3.2 - Framer Motion 10.12.0 - Three.js 0.152.0 - React Hook Form 7.45.0 - Zod 3.25.30 - React Hot Toast 2.4.0 - React Toastify 9.1.3 #### Backend - Node.js >=16.0.0 - Express 4.18.2 - TypeScript 5.3.3 - Prisma 5.10.0 - MySQL 8.0 - Redis 4.6.13 - JWT - Winston 3.11.0 - Morgan 1.10.0 - Helmet 7.0.0 - Express Rate Limit 7.1.0 - Express Validator 7.0.1 - Swagger/OpenAPI 6.2.1 #### Инфраструктура - Docker 24.0.0 - Docker Compose 2.20.0 - Git 2.40.0 - npm 9.6.0 - PowerShell 7.3.0 - Bash 5.2.0 ### 1.4 Структура проекта ``` bs-legal-platform/ ├── client/ # Frontend приложение │ ├── src/ │ │ ├── components/ # React компоненты │ │ ├── pages/ # Страницы приложения │ │ ├── store/ # Redux store │ │ ├── hooks/ # React hooks │ │ ├── utils/ # Утилиты │ │ ├── types/ # TypeScript типы │ │ ├── assets/ # Статические файлы │ │ └── styles/ # Стили │ ├── public/ # Публичные файлы │ └── package.json # Зависимости frontend │ ├── server/ # Backend приложение │ ├── src/ │ │ ├── controllers/ # Контроллеры │ │ ├── models/ # Модели данных │ │ ├── routes/ # Маршруты API │ │ ├── middleware/ # Middleware │ │ ├── utils/ # Утилиты │ │ ├── config/ # Конфигурации │ │ └── types/ # TypeScript типы │ └── package.json # Зависимости backend │ ├── deploy/ # Файлы для деплоя │ ├── mysql/ # MySQL бинарники и конфиги │ │ ├── bin/ │ │ ├── data/ │ │ └── my.ini │ ├── redis/ # Redis бинарники и конфиги │ │ ├── redis-server.exe │ │ └── redis.conf │ └── scripts/ # Скрипты для деплоя │ ├── docs/ # Документация │ ├── api/ # API документация │ ├── setup/ # Инструкции по установке │ └── architecture/ # Архитектура системы │ ├── scripts/ # Скрипты запуска │ ├── launcher.ps1 # PowerShell скрипт для Windows │ └── launcher.sh # Bash скрипт для Linux │ └── README.md # Основная документация ``` ### 1.5 Инструкции по запуску #### Windows (PowerShell) 1. Убедитесь, что установлены: - Node.js >=16.0.0 - PowerShell 7.3.0 - MySQL 8.0 (локальный) - Redis 4.6.13 (локальный) 2. Запустите PowerShell от администратора и выполните: ```powershell .\scripts\launcher.ps1 ``` Скрипт автоматически: - Проверит наличие всех зависимостей - Создаст необходимые директории - Установит npm-пакеты - Запустит MySQL и Redis - Запустит backend и frontend #### Linux (Bash) 1. Убедитесь, что установлены: - Node.js >=16.0.0 - MySQL 8.0 - Redis 4.6.13 2. Выполните в терминале: ```bash chmod +x scripts/launcher.sh ./scripts/launcher.sh ``` #### Ручной запуск 1. Запустите MySQL: ```bash cd deploy/mysql ./bin/mysqld --defaults-file=my.ini ``` 2. Запустите Redis: ```bash cd deploy/redis ./redis-server redis.conf ``` 3. Запустите backend: ```bash cd server npm install npm run dev ``` 4. Запустите frontend: ```bash cd client npm install npm run dev ``` #### Проверка работоспособности 1. Frontend доступен по адресу: http://localhost:3000 2. Backend API доступен по адресу: http://localhost:4000 3. Swagger документация: http://localhost:4000/api-docs 4. MySQL доступен на порту: 3306 5. Redis доступен на порту: 6379 ## 2. Требуемые доработки ### 2.1 Контейнеризация - [ ] Создание Dockerfile для frontend - [ ] Создание Dockerfile для backend - [ ] Настройка docker-compose.yml - [ ] Перенос конфигураций в контейнеры - [ ] Настройка volume для данных ### 2.2 Оптимизация - [ ] Настройка кэширования в Redis - [ ] Оптимизация запросов к БД - [ ] Настройка индексов - [ ] Оптимизация статических файлов ### 2.3 Безопасность - [ ] Настройка переменных окружения - [ ] Конфигурация CORS - [ ] Настройка rate limiting - [ ] Проверка безопасности endpoints ### 2.4 Мониторинг - [ ] Настройка логирования - [ ] Конфигурация алертов - [ ] Настройка метрик - [ ] Создание дашбордов ### 2.5 Документация - [ ] Описание архитектуры - [ ] Инструкции по развертыванию - [ ] API документация - [ ] Руководство по поддержке ## 3. Критерии приемки ### 3.1 Функциональность - [ ] Все сервисы запускаются в контейнерах - [ ] Данные сохраняются в volume - [ ] Кэширование работает - [ ] Бэкапы настроены ### 3.2 Производительность - [ ] Время отклика API < 200ms - [ ] Кэш hit ratio > 80% - [ ] CPU usage < 70% - [ ] Memory usage < 80% ### 3.3 Безопасность - [ ] Все секреты в переменных окружения - [ ] CORS настроен - [ ] Rate limiting работает - [ ] Нет уязвимостей в зависимостях ### 3.4 Мониторинг - [ ] Логи доступны - [ ] Алерты работают - [ ] Метрики собираются - [ ] Дашборды доступны ## 4. Документация ### 4.1 Техническая - [ ] Архитектура системы - [ ] Схема базы данных - [ ] API endpoints - [ ] Конфигурация сервисов ### 4.2 Операционная - [ ] Инструкции по развертыванию - [ ] Процедуры бэкапа - [ ] Мониторинг и алерты - [ ] Troubleshooting guide ## 5. Передача проекта ### 5.1 Документация - [ ] Все конфигурации - [ ] Схемы развертывания - [ ] Процедуры поддержки - [ ] Контакты для поддержки ### 5.2 Обучение - [ ] Демонстрация работы - [ ] Объяснение архитектуры - [ ] Процедуры обновления - [ ] Процедуры восстановления ## 6. Заключение Данное техническое задание описывает необходимые доработки для BS Legal Platform. Проект уже имеет работающую базовую версию, требуется его оптимизация и подготовка к промышленной эксплуатации. Все изменения должны быть документированы, а код должен соответствовать современным стандартам разработки. После завершения работ исполнитель должен обеспечить передачу знаний команде заказчика и предоставить все необходимые инструкции по поддержке и развитию системы. (подготовленный проект может быть с рядом ошибок, недочетов и прочего в связи с тем, что разрабатывался обывателем в сфере разработки сайтов, но довольно много было реализовано уже). Нужно будет разместить сайт на хостинге рег.ру, разобраться как там все сделать (так как не известно vps это или нет и тд) то есть полный продакшн и реализация проекта на хостинге рег.ру, подключением бд и тд.
Москва
Фрилансеры
2025-06-01
Разработка на React
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Мы — стартап ранней стадии Мигрировали на Next проект из другого проекта (React, 2 идентичных проекта), упёрлись с frontend частью Нужно дособрать frontend Текущая версия нового проекта https://place-of-power-ru-test.netlify.app/ Старый проект, на который ориентируемся https://prismatic-gaufre-034282.netlify.app/.
Москва
Фрилансеры
2025-05-31
Разработка на React
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Пожелания и особенности: Есть веб-сайт с полностью реализованным бэкендом и логикой фронтенда. Появился дизайн в фигме, нужно переверстать фронтенд под дизайн. На сайте есть следующие страницы: 1) главная - статичный лендинг 2) авторизация/регистрация - набор форм, вся логика уже реализована 3) страница профиля - здесь есть информация о пользователе с возможностью редактирования (4 поля), загрузка фото и информация о твоем стиле, который AI на бэкенде определил по фото. Для загрузки фото нужна оплата, эта логика также реализована.
Москва
Фрилансеры
2025-05-30