Budżet: 600 UAH Termin: 2 dni
1 часть:
Написание объекта функций обращения к api для последующей реализации выгрузки товаров из складской программы на сайт bp.ua
Дополнительно работа по сортировке карточек товаров:
Карточки товара должны быть отсортированы таким образом, чтобы карточки, у которых нет ни одной позиции в наличии были в конце любого списка товаров (например списка ограниченного фильтром). Так же в карточках товаров по умолчанию должны быть активны позиции, которые находятся в наличии, а в самом выпадающем списке карточки товара позиции должны быть отсортированы по принципу - вначале позиции в наличии, внизу списка те, которых нет в наличии.
2 часть:
Задание по импорту товаров из складской программы на сайт bp.ua
Задача состоит в том, что бы сделать автоматический перенос позиций по расписанию (раз в сутки) из складской базы в базу сайта с заполненными полями: наименование товара, тип (парфюмированная вода, туалетная вода), артикул (первая колонка, по которому будет проходить синхронизация наличия и цен), объем в мл, пол, EAN (вторая колонка) код и фото (источник json или xml). Перенесенные позиции должны быть как то помечены в общем списке товаров опенкарта с тем что б можно было этот спискок отсортировать для работы (корректировки например названий или добавления дополнительных фото текстов и т.п.).
Название любого товара из прайс листа формируется по одному принципу: в начале названия стоит название бренда + наименование позиции+кириллицей тип туалетная/парфюмированная вода/набор/пробник/миниатюра+объем в ml+пол+EAN код, стоящий в скобках в самом конце наименования товара. Условные обозначения для замены из файла выгрузки в строку, формирующую наименование товара: (edp - парфюмированная вода, edt - туалетная вода, parfum - духи, edc - одеколон, set - набор.) Пол, указанный в позициях должен определять категории, в которые товары должны попадать по умолчанию (М-мужской, L-женский, U или L\M - унисекс соответственно в категории Мужские Духи, Женские Духи и в обе категории одновременно, если позиция унисекс. Слова tester, set, mini, vial должны заменяться в названии соответственно на тестер, набор, миниатюра и пробник, а позиции, содержащие в своем названии данные слова должны помимо категорий Мужские Духи, Женские Духи попадать соответственно в категории тестеры, наборы, тестеры, пробники и миниатюры. Так же слова для замены в названии товара: a\sh balm или a\sh или asb или a/s или aftershave balm - бальзам после бритья, deo - дезодорант, body cream - крем для тела, edc - одеколон, b\l - лосьон для тела, s\g или s/g или shower gel - гель для душа, shampoo - шампунь, body mist - дымка-спрей для тела для тела, pouch - косметичка, deo stick - твердый дезодорант, mascara - тушь, Lipstick - помада.
Слова spray, new, NEW PACK, New design, должны исключаться из названия.
Товары, которые должны попадать в раздел Акции->Уценка содержат в названии следующие фразы:
без упаковки
брак упаковки
недолив
примятые
без целлофана
подтекает
подтекают
В административной части опенкарта должно быть управление розничной ценой (курс должен передаваться автоматически из файла выгрузки), так же должно быть две наценки в % одна наценка на оптовую долларовую цену из прайса, вторая, так же в процентах наценка, которая используется для файла выгрузки на Розетку (файл https://bp.ua/pub/rozetka_production.xml) по умолчанию первая наценка 7%, вторая 15% (в структуре цены, т.е. 17.7%).
Budżet: 600 UAH Termin: 2 dni
Potrzebny doświadczony programista Laravel do integracji systemu płatności w istniejącym projekcie. O projekcie Backend: Laravel Frontend: React Projekt: chmurowa platforma do przechowywania plików (odpowiednik Dropbox) Co należy zrealizować Integrację płatności kartami bankowymi przez API systemu płatności. Tworzenie płatności. Przekierowanie użytkownika na stronę płatności. Obsługę udanej i nieudanej płatności. Obsługę callback/webhook. Sprawdzenie statusu płatności. Poprawną zmianę statusu zamówienia po udanej płatności. Logowanie zapytań i odpowiedzi API. Pracę zarówno w środowisku testowym, jak i produkcyjnym. Wymagania Doskonała znajomość Laravel. Doświadczenie w integracji systemów płatności (API bankowe itp.). Doświadczenie w pracy z REST API. Bedzie to atutem Doświadczenie w integracji bankowych bramek płatniczych. Możliwość pokazania podobnych projektów. Co zapewnimy Pełną dokumentację techniczną systemu płatności. Dostęp do środowiska testowego. Przy odpowiedzi proszę podać: 1. Jakie systemy płatności już zintegrowałeś. 2. Koszt pracy. 3. Czas realizacji. 4. Przykłady podobnych projektów (jeśli są).
ZADANIE TECHNICZNE Opracowanie systemu Digital Signage dla sieci ekranów reklamowych 1. Ogólny opis systemuSystem przeznaczony do zdalnego zarządzania treściami multimedialnymi (wideo, obrazy) w sieci telewizorów działających na Android TV. Architektura:Backend / Panel sterowania (Admin): PHP (Laravel / Yii2 lub czysty PHP) + MySQL.Frontend (Odtwarzacz na TV): HTML5 / JavaScript (Aplikacja Jednostronicowa), uruchamiana na TV w trybie pełnoekranowym przez aplikację Fully Kiosk Browser.2. Wymagania funkcjonalne: Panel sterowania (Admin na PHP)2.1. Zarządzanie ekranami (Telewizorami)Możliwość dodawania/usuwania ekranów w systemie.Każdemu ekranowi przypisywana jest: Nazwa (geo-punkt), unikalny ID (device_token) oraz status (Online/Offline).Monitorowanie (Ping): Wyświetlanie statusu TV w czasie rzeczywistym. Jeśli TV nie wysyłał zapytań przez więcej niż 5 minut, status powinien być pomalowany na czerwono (Offline). 2.2. Zarządzanie treścią (Biblioteka mediów)Przesyłanie plików (wideo, obrazy) na serwer.Usuwanie plików (z automatycznym usunięciem fizycznego pliku z serwera).Możliwość przeglądania (i zmieniania), na których ekranach jest emitowany każdy pojedynczy plik multimedialny.Ustawienie kolejności odtwarzania plików. 2.3. API serwera (do komunikacji z TV)Zrealizować REST API (JSON):POST /api/ping — przyjmuje od TV jego ID, rejestruje czas ostatniej aktywności (dla statusu Online) i zwraca aktualną wersję playlisty.GET /api/file/device_token — zwraca aktualną tablicę JSON z linkami do plików multimedialnych, ich kolejnością oraz ustawieniami czasu wyświetlania.3. Wymagania funkcjonalne: Odtwarzacz kliencki (HTML5/JS na TV)Odtwarzacz jest stroną internetową, która jest otwarta na TV. Główne zadanie klienta — autonomia.3.1. Cache i synchronizacja (Praca bez internetu)Przy starcie odtwarzacz żąda playlisty przez API.Lokalne przechowywanie: Wszystkie pliki z playlisty (wideo/obrazy) JS powinien ładować do wewnętrznej pamięci przeglądarki (używając Cache API lub IndexedDB). Streaming (odtwarzanie bezpośrednio z internetu) jest zabroniony.Synchronizacja: Jeśli na serwerze dodano nową treść, odtwarzacz ładuje ją w tle, nie przerywając aktualnego pokazu. Po zakończeniu ładowania — dodaje do transmisji. Jeśli treść została usunięta na serwerze, odtwarzacz musi usunąć ją z lokalnej pamięci podręcznej TV, aby nie zapełniać pamięci urządzenia.Tryb offline: Przy całkowitym zniknięciu internetu odtwarzacz nieskończoność powtarza ostatnią pomyślnie załadowaną playlistę. 3.2. Odtwarzanie i rotacjaCykliczne odtwarzanie treści i zgodnie z ustaloną w adminie kolejnością.Dla obrazów należy ustawić czas wyświetlania w sekundach (domyślnie 10 sek).Przejścia między filmami powinny być płynne, bez czarnych ekranów i zauważalnego przeładowania strony. 3.3. Logowanie i kontrola błędów (Ochrona przed awariami)Obsługa uszkodzonych plików: Jeśli plik wideo jest uszkodzony i nie może być odtworzony, odtwarzacz powinien go pominąć i włączyć następny w kolejności, a nie zawieszać się na czarnym ekranie.Logi pokazów (Analiza): Odtwarzacz powinien zapisywać w lokalnej pamięci fakt każdego pomyślnego odtworzenia filmu. Po pojawieniu się internetu te dane są wysyłane na serwer (POST /api/logs), aby w adminie można było zobaczyć statystyki: "Film A na TV nr 3 był wyświetlany 450 razy w ciągu doby oraz 2365 razy łącznie".4. Wymagania dotyczące optymalizacji pod Android TVInterfejs odtwarzacza nie powinien zawierać żadnych elementów sterujących (kursory, paski przewijania, przyciski). Tylko czysta treść na cały ekran.Kod JS musi być zoptymalizowany pod kątem pamięci (na czas usuwania nieużywanych elementów DOM i obiektowych URL), ponieważ budżetowe telewizory mają surowe ograniczenia dotyczące pamięci RAM i mogą awaryjnie zamykać kartę przy wycieku pamięci po 12-24 godzinach ciągłej pracy.
Potrzebna jest migracja sklepu internetowego Opencart z PHP 7.4 na PHP 8.x. Obecnie zainstalowane jest jądro w wersji 3.0.3.8. Czytamy, że najprawdopodobniej będzie trzeba również zaktualizować jądro do wersji 4.0 i że nie powinno być większych trudności... Funkcjonalność jest głównie niestandardowa, są również Simple, OCFilter, Nowa poczta. Oczekujemy rekomendacji i orientacyjnej ceny. Idealnie, jeśli ktoś już przeprowadzał podobną pracę.
Wymagane jest zaktualizowanie, przeniesienie i skonfigurowanie projektów Laravel na nowym serwerze, zapewniając stabilne działanie, bezpieczeństwo, ochronę przed exploitami oraz poprawne działanie wszystkich usług po migracji. 1. Główne zadania Przygotować nowy serwer do pracy. Przenieść pliki projektów, bazy danych, konfiguracje oraz zadania cron. Zaktualizować oprogramowanie serwera. Skonfigurować bezpieczne środowisko dla Laravel. Sprawdzić zgodność PHP, Laravel, pakietów Composer i zależności. Zapewnić ochronę przed znanymi exploitami, złośliwymi zapytaniami oraz nieautoryzowanym dostępem. Skonfigurować certyfikaty SSL. Sprawdzić działanie stron po przeniesieniu. 2. Przenoszenie projektów Laravel Dla każdego projektu należy: Przenieść pliki projektu. Przenieść bazę danych. Przenieść konfigurację .env. Skonfigurować prawa dostępu do katalogów: storage bootstrap/cache Sprawdzić działanie: strony głównej; panelu administracyjnego; autoryzacji; formularzy; API; przesyłania plików; wysyłania e-maili; zadań cron; workerów kolejek.3. Bezpieczeństwo i ochrona Należy wdrożyć podstawowy i aplikacyjny poziom ochrony: zamknąć dostęp root przez SSH; skonfigurować dostęp SSH tylko za pomocą kluczy; zmienić standardowy port SSH, jeśli to konieczne; skonfigurować zaporę sieciową; zezwolić tylko na niezbędne porty; zainstalować Fail2Ban; ukryć wersje usługowe Nginx/Apache/PHP; zabronić dostępu do .env, .git, plików kopii zapasowych, plików logów; ustawić odpowiednie uprawnienia do plików; sprawdzić projekty pod kątem złośliwych plików; sprawdzić pakiety Composer pod kątem znanych luk; zaktualizować zależności, jeśli nie łamie to funkcjonalności; skonfigurować ochronę przed SQL injection, XSS, CSRF oraz path traversal; sprawdzić poprawność Laravel APP_ENV oraz APP_DEBUG; ustawić APP_DEBUG=false na produkcji; skonfigurować ograniczenie liczby żądań dla krytycznych punktów końcowych; sprawdzić dostęp do storage/uploads; skonfigurować ochronę przed wykonywaniem PHP w katalogach przesyłania; sprawdzić prawa dostępu do paneli administracyjnych. 4. SSL i domeny Należy: Zainstalować certyfikaty SSL. Skonfigurować automatyczne odnawianie SSL. Włączyć przekierowanie z HTTP na HTTPS. Sprawdzić poprawne działanie stron przez HTTPS. 5. Kopie zapasowe Należy skonfigurować kopie zapasowe: plików projektów; baz danych; plików .env; przesyłanych mediów; konfiguracji cron; konfiguracji Nginx/Apache. Kopie zapasowe powinny być wykonywane automatycznie według harmonogramu. Preferowane jest przechowywanie kopii oddzielnie od głównego serwera. 6. Weryfikacja po przeniesieniu Po migracji należy sprawdzić: brak błędów 500/403/404; brak krytycznych błędów w logach Laravel. 9. Wynik wykonania Po zakończeniu prac powinno być: projekty Laravel pomyślnie przeniesione na nowy serwer; strony działają stabilnie; SSL skonfigurowany; serwer zabezpieczony podstawowymi ustawieniami bezpieczeństwa; dostępy do krytycznych plików zamknięte; kopie zapasowe skonfigurowane; cron i kolejki działają; stary serwer można wyłączyć po ostatecznej weryfikacji.
Szukam dewelopera do projektu składającego się z 4 powiązanych zadań, dla strony best-matchmaking.com wykonywanych kolejno:Integracja gotowego premium szablonu Blade artykułu blogowego + autogeneracja Schema/SEO oznaczeń (Article, FAQPage, Open Graph, canonical) dla wszystkich bieżących i przyszłych artykułówDopracowanie struktury bloga: zmiana URL z 301 przekierowaniami, zmiany w stopce/menu/breadcrumbach, czyszczenie ukrytego kodu, usunięcie kategoriiNowy blok (zdjęcie + cytat recenzji) w istniejącym konstruktorze strony głównej i stron docelowych = możliwość samodzielnego dodawania bloków tekstowych między sekcjamiUjednolicenie czcionek, rozmiarów i kolorów na całej stronie (z wyjątkiem bloga) — jednolity standard dla nagłówków i zwykłego tekstu, w tym nagłówka i stopkiSzczegółowe TŻ dla każdego punktu — załączam poniżej w linku Google. https://docs.google.com/document/d/1E5oQO2E-xmKJ3C0jW0ZsSPDBjaiELq0ETxfdivW6yIs/edit?tab==t.0 Przykłady HTML i kod wyślę na priv po odpowiedzi WAŻNE.! Dokładnie przejrzyj wszystkie 4 zadania, zanim złożysz ofertę, szczególnie ostatnie - czcionki. Jest tam sporo pracy. Potrzebne doświadczenieLaravel + Blade — pewny, nie początkowy poziomFrontend (CSS/JS) na tym samym poziomie, co backendDoświadczenie w pracy z istniejącym, nie swoim kodemFormat pracyBackup i serwer testowy przed rozpoczęciem, przeniesienie na produkcję OBOWIĄZKOWE — po uzgodnieniu i testowaniu Obowiązkowe samosprawdzanie na wszystkich urządzeniach przed oddaniem — wysyłanie "gotowe, sprawdzajcie" bez własnego testowania nie jest akceptowalne. Błędy znalezione po oddaniu są poprawiane w ramach tego samego zadania. Błędy, które pojawiły się podczas przenoszenia. W trakcie przenoszenia również muszą być poprawione na produkcji. Raport ze zrzutami ekranu "przed/po" dla każdego punktuTermin i budżet — po ocenie zakresu według szczegółowego TŻ. Czekam na wasze oferty. Dziękuję