Сайт уже запущен и работает. Основная задача — разобраться в текущей структуре проекта, проверить качество реализации, исправить найденные технические проблемы и помочь с дальнейшими изменениями.Основной стек Next.js 15 React 19 TypeScript Tailwind CSS Zod Redux Toolkit В проекте также могут использоваться: Prisma JWT-авторизация Stripe Mailgun Google APIs Vercel или Netlify FunctionsОсновные задачи провести ревизию существующего проекта; оценить структуру и качество кода; исправлять ошибки и дорабатывать текущий функционал; улучшать серверный рендеринг и скорость загрузки страниц; проверять корректность отображения сайта на мобильных устройствах; работать с формами, административной частью и внешними интеграциями; вносить технические SEO-изменения; поддерживать и постепенно улучшать существующий сайт.Что для нас важно хороший опыт работы с Next.js, React и TypeScript; умение разбираться в чужом коде; понимание SSR и особенностей Next.js App Router; внимательность к производительности и качеству реализации; умение объяснять найденные проблемы и предлагать понятные решения; самостоятельность и аккуратная работа с действующим сайтом. На первом этапе необходимо ознакомиться с проектом, провести техническую ревизию и предложить список приоритетных изменений. После этого возможна постоянная работа над дальнейшим развитием сайта.
Ставки пока отсутствуют
Ставки пока отсутствуют
-
Pavlo K. 3 июня 2023Здається, проблема може виникати через виклик функції
getNotesMap()в кожній ітерації циклуforв основній функціїonEdit. Це може викликати затримки та зависання під час редагування таблиці.Одним з варіантів вирішення цієї проблеми є витягнення мапи заміток
notesMapза межі функціїonEditта передача її як аргумент функціїonEdit. Таким чином,getNotesMap()буде викликатись лише один раз під час першого викликуonEdit, а потім мапа буде передаватись як параметр. -
Pavlo K. 3 июня 2023Спробуйте це :
function onEdit(e) {
const range = e.range;
try {
const col = range.getColumn();
if (col === 4) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let row = range.getRow();
const notesMap = getNotesMap();
let noteInd = 0;
let nextNoteInd = 0;
for (const index of notesMap.keys()) {
if (index <= row) {
noteInd = index;
} else {
nextNoteInd = index;
break;
}
}
nextNoteInd = nextNoteInd || noteInd + 11;
const backgroundsRange = notesMap.get(noteInd);
let backgrounds = sheet.getRange(backgroundsRange).getBackgrounds().flat();
backgrounds = Array.from(new Set(backgrounds)).filter(item => item !== "#ffffff").map(item => [item]);
sheet.getRange(`AB${noteInd}:AB${nextNoteInd - 1}`).clearContent();
sheet.getRange(noteInd, 28, backgrounds.length, 1).setValues(backgrounds);
}
} catch (error) {
console.log(error);
}
}
function getNotesMap() {
const notesArr = SpreadsheetApp.getActive().getRange("AB1:AB").getNotes();
Logger.log(notesArr);
let ind = 0;
const map = new Map([]);
while (ind < notesArr.length) {
const note = notesArr[ind][0].trim();
if (note) {
const rowInd = ind + 1;
map.set(rowInd, note);
}
++ind;
}
return map;
}
function COUNTBACKGROUNDCOLOR(color, valRange, trigger) {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let range = sheet.getRange(valRange);
let values = range.getValues().flat();
let colorValues = range.getBackgrounds().flat();
let sum = 0;
let ind = 0;
while (ind < values.length) {
if (colorValues[ind] === color) {
sum += +values[ind];
}
++ind;
}
return sum;
}
Актуальные фриланс-проекты в категории Javascript и Typescript
Необходимо разработать форму онлайн-записи для косметического салона и интегрировать ее в существующий сайт (лендинг). Сайт на стадии разработки (на HTML, CSS, JS). На сайте отсутствует собственная база данных (и не планируется), поэтому необходимо предложить бесплатное решение для хранения и управления данными, которое будет простым в администрировании и стабильным в работе. Необходимый функционал: подгрузка списка категорий услуг; подгрузка услуг в соответствии с выбранной категорией; подгрузка списка мастеров, которые выполняют выбранную услугу; отображение доступных дат и свободного времени в соответствии с графиком работы мастера; создание записи с автоматическим блокированием выбранного времени; защита от двойного бронирования. Данные в форме: имя; номер телефона; категория услуг; услуга; мастер; дата; время; комментарий (необязательно). Администрирование: Должна быть возможность: добавлять и редактировать категории услуг; добавлять и редактировать услуги; добавлять и редактировать мастеров; настраивать график работы каждого мастера; управлять выходными, отпусками и другими периодами недоступности; просматривать, редактировать и отменять записи клиентов. Прошу указать: какое решение предлагаете для хранения данных; ориентировочную стоимость; срок выполнения. Дизайн не важен, главное функционал. Человек, который делает верстку сайта, сам оформит ее в нужном дизайне.
У меня в Google Excel есть некоторая логика, которая связана с интеграцией с API Новой Почты и API Турбосмс. В целом все работает нормально, но нужно дописать некоторый функционал. Все детали при переписке. Доступ к Excel и коду я дам. Для исполнителя в целом обязательно иметь опыт работы с Google Excel JS в Apps Script.
Всем привет, нужно создать сайт для создания ивентов и продажи билетов. Возможны варианты на готовом шаблоне, фреймворке или ваш вариант. Желательно, чтобы у вас был опыт работы в разработке сайтов для продажи билетов. Примеры сайтов вышлем в приватные сообщения. При необходимости создадим прототип. Если вы ранее работали над созданием подобных сайтов, пожалуйста, отправьте примеры в приватные сообщения. Детали обсудим в приватных сообщениях. Спасибо и хорошего дня!
Сайт работает на фреймворке Next.js (на базе React). Необходимо выполнить все пункты по ТЗ. ТЗ прилагается в файле. Жду предложений.