ProgramowanieOchrona płatnościSzczegóły
- Poprawki w ramach pakietu są bezpłatne.
- Jeśli nie odpowiesz w ciągu 3 dni od dostarczenia pracy, zostanie ona zaakceptowana automatycznie.
Pieniądze są rezerwowane w chwili płatności i przekazywane dopiero po akceptacji pracy.

Przykładowy rezultat
Łączenie miesięcznych plików sprzedaży 9 sklepów w jeden raport w Excelu
Jak się go uruchamia
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Folder: sales/2026-10, znaleziono 9 plików
2026-11-02 09:14:03 INFO shop-01.csv: 1284 wiersze
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 wierszy
2026-11-02 09:14:04 WARN shop-07.csv: pominięto 3 wiersze bez ceny (linie 88, 412, 913)
2026-11-02 09:14:05 INFO Gotowe: 10 412 wierszy -> report-2026-10.xlsx (arkusze „Sprzedaż” i „Podsumowanie”)
Ustawienia zamiast kodu
Nazwy kolumn każdego sklepu są zapisane w settings.ini, więc nowy sklep albo kolumna o zmienionej nazwie to po prostu jeden wiersz w tym pliku:
[columns]
date = Data, Data sprzedaży, Dzień
product = Produkt, Towar, Nazwa
quantity = Ilość, Szt., Liczba sztuk
price = Cena, Cena jedn.
Fragment kodu
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Wczytuje plik jednego sklepu i nadaje mu nazwy kolumn raportu."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: brak kolumny dla '{name}' (szukano: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Pliki: archiwum ZIP z plikami merge_sales.py (310 wierszy), settings.ini, requirements.txt oraz README, które opisuje instalację Pythona, uruchomienie skryptu i znaczenie każdego komunikatu w dzienniku. Klient uruchamia skrypt na własnym komputerze.
Klient: mała sieć 9 sklepów papierniczych; każdy sklep przesyła sprzedaż za miesiąc w pliku CSV lub Excel, z nieco innymi nazwami kolumn. Zadanie: jeden skrypt, który wczytuje każdy plik z folderu, sprowadza kolumny do jednego układu i zapisuje jeden raport w Excelu z całą sprzedażą oraz arkuszem podsumowań według sklepów.
Klient i wszystkie dane są wymyślone.
O usłudze
Twój serwer WWW zapisuje każde zapytanie w logu dostępu, ale plik z milionami wierszy niewiele mówi, dopóki ktoś go nie policzy. Ten skrypt w Pythonie odczytuje logi dostępu Nginx lub Apache, także starsze skompresowane, i tworzy raport: zapytania według dnia i godziny, najczęściej odwiedzane strony, kody statusu, strony zwracające 404 lub 500 i to, skąd przyszli odwiedzający. Pakiet Premium liczy roboty wyszukiwarek osobno od ludzi i zapisuje skoroszyt Excel z kartą na każdą sekcję. Adresy IP odwiedzających domyślnie nie trafiają do raportu albo są skracane, jeśli ich potrzebujesz. Prześlij nam wiersz formatu logu z ustawień serwera i 20-30 wierszy ze zmienionymi adresami. Uruchamiasz go na swoim serwerze lub komputerze; odczytuje logi i nie zmienia żadnych ustawień.
Co obejmuje usługa
- Co otrzymaszArchiwum ZIP ze skryptem w Pythonie, plikiem README z instrukcją krok po kroku oraz, od pakietu Standard, plikiem ustawień ze ścieżkami logów i opcjami raportu; kod widać też na stronie zamówienia.
- Nginx i ApachePopularne formaty logów albo Twój, jeśli się różni
- Błędy ze stronamiKtóre adresy zwracają 404 lub 500 i jak często
- Także stare logiOd pakietu Standard skompresowane pliki .gz odczytywane bez rozpakowywania
- Bez danych osobowychAdresy IP pominięte lub skrócone
- Czytelny kodZ komentarzami, łatwo później dodać sekcję
Jak to działa
- 1ZadaniePrzysyłasz format logu i kilka wierszy ze zmienionymi adresami
- 2KodPiszemy skrypt i instrukcję uruchomienia
- 3WypróbujUruchamiasz go na kopii logu z jednego dnia i przeglądasz raport
- 4ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie
Czego potrzebujemy od Ciebie
Twój serwer WWW (Nginx lub Apache), wiersz log_format lub LogFormat z jego ustawień, jeśli został zmieniony, i 20-30 wierszy logu dostępu z adresami IP zastąpionymi zmyślonymi. Gdzie są przechowywane logi i jak są rotowane, jak duży jest log z jednego dnia, co ma pokazywać raport i w jakiej formie (CSV lub Excel) oraz gdzie będzie działał: na samym serwerze (z jego systemem) czy na Twoim komputerze.
Zapytamy Cię:
- Jaki serwer WWW i format logu?
- Co ma pokazywać raport?
- Jak często go potrzebujesz?
- Gdzie będzie działał?
Porównaj pakiety
| Pakiety | PodstawowyJeden log, jeden raport61 zł | StandardRaport z ustawieniami125 zł | PremiumNarzędzie do raportów z logów252 zł |
|---|---|---|---|
| Termin | 1 dzień | 2 dni | 3 dni |
| Poprawki | 1 | 2 | 3 |
| Kod | do 150 wierszy | do 400 wierszy | do 1000 wierszy |
| Pliki z kodem | 1 | do 3 | do 8 |
| Plik ustawień | Nie | Tak | Tak |
| Czytelne komunikaty o błędach i log | Nie | Tak | Tak |
| Opcje uruchamiania i instrukcja uruchamiania według harmonogramu | Nie | Nie | Tak |
| Instrukcja instalacji i uruchomienia (README) | Tak | Tak | Tak |
| Język | Python | Python | Python |
| Zamów Podstawowy | Zamów Standard | Zamów Premium |
Ochrona płatności
Płacisz przy składaniu zamówienia, ale pieniądze są przekazywane tylko za zaakceptowaną pracę.
- Stała cenaCena pakietu nie zmienia się po zapłacie.
- Pieniądze są zarezerwowanePrzy płatności kwota jest tylko rezerwowana. Serwis otrzymuje ją dopiero po akceptacji pracy.
- Sprawdzone przed dostarczeniemKażdy wynik przechodzi kontrolę jakości, zanim do Ciebie trafi, a przed akceptacją widzisz go na stronie zamówienia.
- Bezpłatne poprawkiProś o poprawki w ramach briefu tyle razy, ile przewiduje pakiet.
- Akceptacja po 3 dniachJeśli w ciągu 3 dni od dostarczenia pracy ani jej nie zaakceptujesz, ani nie poprosisz o poprawki, zostanie zaakceptowana automatycznie. Jeśli po dostarczeniu napiszesz na czacie zamówienia, zamówienie czeka; po naszej odpowiedzi możemy ponownie uruchomić odliczanie 3 dni i poinformujemy o tym na czacie.
- Ponowne wykonanie lub pełny zwrot pieniędzyJeśli wynik nie odpowiada Twojemu briefowi, a poprawki tego nie naprawiły, lub praca trwa ponad dwa razy dłużej niż termin, napisz na czacie zamówienia: wykonamy pracę ponownie albo zwrócimy całą płatność.
Pytania i odpowiedzi
Czy to to samo co analityka internetowa?
Nie. Liczy to, co zobaczył serwer: każde zapytanie, także od robotów i skryptów, bez plików cookie i kodu śledzącego. Liczby będą się różnić od Twojego serwisu analitycznego, a każde z tych spojrzeń jest przydatne na swój sposób.
A adresy IP odwiedzających?
W wielu krajach są uznawane za dane osobowe, więc raport domyślnie je pomija. Jeśli ich potrzebujesz, na przykład żeby zobaczyć jeden adres zalewający stronę zapytaniami, mogą zostać skrócone.
Czy może blokować złych odwiedzających?
Nie. Tylko odczytuje logi i tworzy raport; nie zmienia ustawień serwera ani zapory.
Czy będziecie czytać moje logi?
Nie. Skrypt uruchamiasz po swojej stronie. Potrzebujemy tylko wiersza formatu i kilku wierszy ze zmienionymi adresami.
Nie ma tu odpowiedzi?


