Strona internetowa jest już uruchomiona i działa. Główne zadanie to zrozumienie obecnej struktury projektu, sprawdzenie jakości realizacji, naprawienie znalezionych problemów technicznych oraz pomoc w dalszych zmianach.Główna technologia Next.js 15 React 19 TypeScript Tailwind CSS Zod Redux Toolkit W projekcie mogą być również używane: Prisma JWT-uwierzytelnianie Stripe Mailgun Google APIs Vercel lub Netlify FunctionsGłówne zadania przeprowadzenie audytu istniejącego projektu; ocena struktury i jakości kodu; naprawa błędów i rozwijanie obecnej funkcjonalności; poprawa renderowania po stronie serwera i szybkości ładowania stron; sprawdzanie poprawności wyświetlania strony na urządzeniach mobilnych; praca z formularzami, częścią administracyjną i zewnętrznymi integracjami; wnoszenie technicznych zmian SEO; wspieranie i stopniowe ulepszanie istniejącej strony.Co jest dla nas ważne dobre doświadczenie w pracy z Next.js, React i TypeScript; umiejętność rozumienia cudzych kodów; zrozumienie SSR i specyfiki Next.js App Router; uwaga na wydajność i jakość realizacji; umiejętność wyjaśniania znalezionych problemów i proponowania zrozumiałych rozwiązań; samodzielność i staranna praca z działającą stroną. Na pierwszym etapie należy zapoznać się z projektem, przeprowadzić audyt techniczny i zaproponować listę priorytetowych zmian. Po tym możliwa jest stała praca nad dalszym rozwojem strony.
Aktualnie brak ofert
Aktualnie brak ofert
-
Pavlo K. 3 czerwca 2023Здається, проблема може виникати через виклик функції
getNotesMap()в кожній ітерації циклуforв основній функціїonEdit. Це може викликати затримки та зависання під час редагування таблиці.Одним з варіантів вирішення цієї проблеми є витягнення мапи заміток
notesMapза межі функціїonEditта передача її як аргумент функціїonEdit. Таким чином,getNotesMap()буде викликатись лише один раз під час першого викликуonEdit, а потім мапа буде передаватись як параметр. -
Pavlo K. 3 czerwca 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;
}
Aktualne zlecenia dla freelancerów w kategorii Javascript & Typescript
Potrzebna jest разработка formularza online rejestracji dla salonu kosmetycznego oraz jego integracja z istniejącą stroną (landing). Strona jest w fazie rozwoju (na HTML, CSS, JS). Na stronie nie ma własnej bazy danych (i nie jest planowana), dlatego należy zaproponować darmowe rozwiązanie do przechowywania i zarządzania danymi, które będzie proste w administracji i stabilne w działaniu. Wymagana funkcjonalność: ładowanie listy kategorii usług; ładowanie usług zgodnie z wybraną kategorią; ładowanie listy mistrzów, którzy wykonują wybraną usługę; wyświetlanie dostępnych dat i wolnego czasu zgodnie z grafikiem pracy mistrza; tworzenie rejestracji z automatycznym blokowaniem wybranego czasu; ochrona przed podwójną rezerwacją. Dane w formularzu: imię; numer telefonu; kategoria usług; usługa; mistrz; data; czas; komentarz (nieobowiązkowo). Administracja: Powinna być możliwość: dodawania i edytowania kategorii usług; dodawania i edytowania usług; dodawania i edytowania mistrzów; ustawiania grafiku pracy każdego mistrza; zarządzania dniami wolnymi, urlopami i innymi okresami niedostępności; przeglądania, edytowania i anulowania rejestracji klientów. Proszę o podanie: jakie rozwiązanie proponujecie do przechowywania danych; orientacyjną cenę; termin realizacji. Projekt nie jest ważny, najważniejsza jest funkcjonalność. Osoba, która robi szablon strony, sama dostosuje go do odpowiedniego projektu.
W moim Google Excel jest pewna logika związana z integracją z API Nowej Poczty i API Turbosms. Ogólnie wszystko działa dobrze, ale trzeba dopisać pewną funkcjonalność. Wszystkie szczegóły przy korespondencji. Dostęp do Excela i kodu dam. Dla wykonawcy ogólnie obowiązkowe jest posiadanie doświadczenia w pracy z Google Excel JS w Apps Script.
Witam wszystkich, potrzebujemy stworzyć stronę internetową do organizacji wydarzeń i sprzedaży biletów. Możliwe opcje na gotowym szablonie, frameworku lub wasza propozycja. Preferowane, abyście mieli doświadczenie w tworzeniu stron internetowych do sprzedaży biletów. Przykłady stron prześlemy w prywatnych wiadomościach. W razie potrzeby stworzymy prototyp. Jeśli wcześniej pracowaliście nad tworzeniem podobnych stron, proszę o przesłanie przykładów w prywatnych wiadomościach. Szczegóły omówimy w prywatnych wiadomościach. Dziękuję i miłego dnia!
Strona działa na frameworku Next.js (opartym na React). Trzeba zrealizować wszystkie punkty zgodnie z TŻ. TŻ jest dołączone w pliku. Oczekuję na propozycje.