Jak zbudować aplikację do śledzenia czasu: liczniki, karty czasu i raporty
Aplikacja do śledzenia czasu zapisuje, kto nad czym pracował, przez ile czasu i czy ten czas można rozliczyć. Żeby ją zbudować, potrzebujesz klientów i projektów, do których przypisujesz czas, licznika, który przetrwa zamknięcie karty przeglądarki, sposobu dodawania i poprawiania wpisów ręcznie, tygodniowej karty czasu oraz raportów, które zamieniają surowe wpisy w sumy. Narzędzie do budowy aplikacji z AI może wygenerować działającą pierwszą wersję z jednego jasnego promptu. Decyzje, które mają znaczenie, dotyczą reguł: zaokrąglania, tego, kto może co edytować, kiedy tydzień jest zablokowany i co jest rozliczalne.
Określ, do czego służy śledzenie czasu
Ta sama aplikacja wygląda inaczej w zależności od powodu, dla którego powstaje:
- Rozliczanie klientów. Godziny na klienta, stawka za osobę lub projekt i czysty eksport do faktur. Najważniejsza jest dokładność i ślad audytowy.
- Lista płac dla pracowników godzinowych. Wejście i wyjście, przerwy, zasady nadgodzin i zatwierdzenie przez kierownika. Obowiązują lokalne przepisy o pracy, więc sprawdź, jakie zapisy musisz prowadzić.
- Zrozumienie, gdzie idzie czas. Wgląd osobisty lub zespołowy, szacunki kontra rzeczywistość. Szybkość wprowadzania ważniejsza niż przepływy zatwierdzania.
Wybierz jedno główne zadanie dla wersji pierwszej. Tracker dla freelancera do rozliczeń i zegar zmianowy w magazynie mają wspólny licznik i bardzo niewiele poza tym.
Czego potrzebuje aplikacja
Dane
| Tabela | Kluczowe pola |
|---|---|
| Klienci | Nazwa, domyślna stawka godzinowa, aktywny tak/nie |
| Projekty | Klient, nazwa, budżet w godzinach (opcjonalnie), domyślnie rozliczalny tak/nie |
| Zadania lub kategorie | Projekt, nazwa (projektowanie, spotkania, wsparcie) — na początek opcjonalne |
| Wpisy czasu | Osoba, projekt, zadanie, czas rozpoczęcia, czas zakończenia, czas trwania, notatka, rozliczalny tak/nie, status (szkic, wysłany, zatwierdzony), zafakturowany tak/nie |
| Osoby | Imię, e-mail, rola, stawka kosztowa lub stawka rozliczeniowa |
Zapisuj czas rozpoczęcia i zakończenia w każdym wpisie i wyliczaj z nich czas trwania. Wpisy wpisywane jako „2h 15min” bez godzin mogą zapisywać sam czas trwania, ale zachowaj datę.
Strony
- Licznik i dziś: duży przycisk start/stop, wybór projektu i dzisiejsze wpisy pod spodem.
- Widok tygodnia: siatka z projektami w wierszach i dniami w kolumnach, w której ludzie wpisują godziny wprost. Wiele osób woli to od liczników.
- Raporty: godziny według klienta, projektu i osoby dla zakresu dat, z podziałem na rozliczalne i nierozliczalne oraz eksportem CSV.
- Panel administracyjny: zarządzanie klientami, projektami, osobami i stawkami.
Uprawnienia
Zapisz, kto może co robić, zanim zaczniesz budować:
- Osoby widzą i edytują własne wpisy.
- Kierownicy widzą wpisy zespołu i zatwierdzają tygodnie.
- Tylko administratorzy zmieniają stawki, i najlepiej tylko administratorzy je w ogóle widzą.
- Nikt nie edytuje wpisu po zatwierdzeniu lub zafakturowaniu, chyba że administrator go ponownie otworzy.
Ta ostatnia zasada sprawia, że raporty są wiarygodne. Nasz przewodnik jak dodać logowanie do aplikacji obejmuje stronę logowania, a kontrola dostępu oparta na rolach — role.
Decyzje i kompromisy
Licznik, wpis ręczny czy oba
Liczniki są dokładne, gdy ludzie pamiętają, żeby je uruchomić, a to nie zawsze się zdarza. Wpis ręczny jest szybki dla osób, które wypełniają tydzień w piątek. Większość zespołów potrzebuje obu oraz sposobu edycji wpisu z licznika po fakcie. Jeśli zbudujesz tylko jedną rzecz, zbuduj siatkę tygodnia; jest prostsza i obejmuje przypadek „zapomniałem uruchomić”.
Gdzie żyje działający licznik
Licznik odliczający w przeglądarce traci wszystko, gdy karta się zamknie. Zapisz czas startu w bazie danych, gdy ktoś naciśnie start, a pokazuj czas upływający, odejmując go od teraz. Licznik działa wtedy dalej po odświeżeniu, na innym laptopie czy telefonie. Zdecyduj, czy jedna osoba może mieć dwa liczniki naraz. Zwykle odpowiedź brzmi nie: uruchomienie nowego zatrzymuje stary.
Zaokrąglanie
Popularne zasady to zaokrąglanie każdego wpisu w górę do 6, 15 lub 30 minut. Trzymaj dokładne czasy w bazie danych i stosuj zaokrąglanie tylko w raportach i fakturach. W raportach pokazuj obie liczby, żeby nikt nie był zaskoczony.
Blokady i zatwierdzanie
Bez blokady godziny z zeszłego miesiąca mogą się zmienić po wysłaniu faktury. Prosty model: osoby wysyłają tydzień, kierownik go zatwierdza, a zatwierdzone wpisy stają się tylko do odczytu. Jeśli fakturujesz z aplikacji, oznaczaj wpisy jako zafakturowane, żeby nie można ich rozliczyć dwa razy.
Strefy czasowe i północ
Przechowuj czasy w UTC i wyświetlaj je w strefie czasowej danej osoby. Zdecyduj, do którego dnia należy wpis trwający od 23:00 do 01:00. Zwykle przyjmuje się dzień rozpoczęcia.
Pierwszy prompt, który działa
Zbuduj aplikację do śledzenia czasu dla sześcioosobowego studia projektowego. Dane: klienci (nazwa, stawka godzinowa), projekty (klient, nazwa, budżet godzin) i wpisy czasu (osoba, projekt, start, koniec, notatka, rozliczalny tak/nie, status szkic/wysłany/zatwierdzony). Strony: widok Dziś z licznikiem start/stop i wyborem projektu, który zapisuje czas rozpoczęcia w bazie danych, tak aby licznik przetrwał odświeżenie; widok Tydzień z projektami w wierszach i dniami od poniedziałku do niedzieli w kolumnach, w których można wpisywać godziny bezpośrednio; strona Raporty pokazująca godziny według klienta, projektu i osoby dla zakresu dat, podzielone na rozliczalne i nierozliczalne, z eksportem CSV; oraz strona Administracja dla klientów, projektów i osób. Jedna osoba może mieć tylko jeden działający licznik. Zatwierdzonych wpisów nie można edytować. Zapisuj czasy w UTC i pokazuj je w strefie użytkownika. Czysty, szybki design, obsługiwany klawiaturą.
Kroki budowy
- Najpierw projekty i wpisy ręczne. Klienci, projekty, formularz dodawania wpisu i lista. Upewnij się, że sumy się zgadzają.
- Licznik. Start, stop, jeden działający licznik na osobę, zapisany czas startu. Przetestuj: uruchom licznik, zamknij kartę i otwórz ją ponownie.
- Siatka tygodnia. Wpisanie godzin w komórkę tworzy lub aktualizuje wpis.
- Logowanie i role. Dodaj je, zanim korzystać będą prawdziwi ludzie, żeby nikt przez przypadek nie zobaczył stawek ani cudzych wpisów.
- Wysyłanie i zatwierdzanie. Tygodniowe wysyłanie, zatwierdzenie przez kierownika, tylko do odczytu po zatwierdzeniu.
- Raporty i eksport. Zakres dat, grupowanie, podział na rozliczalne, CSV.
- Stawki i punkty zaczepienia pod fakturowanie, jeśli rozliczasz klientów. Tworzenie faktur trzymaj w osobnym kroku lub aplikacji; zobacz jak zbudować aplikację do fakturowania.
- Przetestuj przypadki brzegowe. Wpis przez północ, tydzień ze zmianą czasu letniego, dwa liczniki uruchomione z dwóch urządzeń, edycja zatwierdzonego wpisu.
Częste błędy
- Liczenie czasu tylko w przeglądarce. Działa w demo i gubi godziny w prawdziwym użyciu.
- Zaokrąglanie zapisanych wartości. Nigdy nie odzyskasz dokładnego czasu.
- Brak blokady zatwierdzonych tygodni. Raporty przestają zgadzać się z fakturami.
- Wszyscy widzą stawki wszystkich. Ukrywaj stawki według roli od pierwszego dnia.
- Zbyt wiele wymaganych pól. Jeśli zapisanie czasu zajmuje więcej niż kilka sekund, ludzie przestają to robić, a dane stają się fikcją. Na początku uczyń zadanie i notatkę opcjonalnymi.
- Budowanie pełnego menedżera projektów w trackerze. Trzymaj projekty jako proste etykiety. Jeśli potrzebujesz zadań, tablic i terminów, to narzędzie do zarządzania projektami, osobna budowa.
Kiedy lepszy jest gotowy tracker
Jeśli zespół potrzebuje licznika, widoku tygodnia i raportów, dedykowane produkty do śledzenia czasu robią to już dobrze. Mają też rzeczy, które wymagają dużo pracy: aplikacje na komputer i telefon, wykrywanie bezczynności, integracje z kalendarzem i narzędziami oraz przypomnienia o wypełnianiu kart czasu. W przypadku płac godzinowych narzędzie stworzone do tego lepiej obsłuży przerwy, nadgodziny i prowadzenie ewidencji niż własna aplikacja w pierwszej wersji.
Buduj własne, gdy twoje zasady nie pasują, gdy chcesz mieć godziny powiązane z danymi, które już przechowujesz (zlecenia, zlecenia serwisowe, retainery, faktury), gdy cena za stanowisko w dużym zespole zaczyna być wysoka albo gdy śledzenie czasu to jedna część większego wewnętrznego narzędzia. Nasz przewodnik o budowaniu kontra kupowaniu oprogramowania omawia ten wybór, a jeśli twoje godziny leżą obecnie we wspólnym arkuszu, zobacz jak zamienić arkusz w aplikację.
Budowa z Mythex
W Mythex opisujesz tracker w czacie, a agent buduje go w podglądzie na żywo. Dodaje dedykowaną bazę Postgres, gdy wpisy trzeba zapisywać; możesz o to poprosić wprost lub wpisać /database. Przypadek użycia narzędzia wewnętrznego w dokumentacji sugeruje wybór jednego bolesnego kroku na wersję pierwszą, co tu pasuje: zacznij od wpisów i siatki tygodnia, a potem dodaj liczniki i zatwierdzanie.
Logowanie dla zespołu dodajesz własnym podejściem do uwierzytelniania (przepis: dodaj logowanie). Konta Mythex są dla osób budujących, a nie dla osób korzystających z aplikacji. Gdy podstawowy przepływ działa, /test pozwala agentowi przeklikać podgląd (uruchomić licznik, dodać wpis, uruchomić raport) i zgłosić, co się psuje. Wizualny punkt wyjścia znajdziesz w szablonach aplikacji.
Pytania
Jakie funkcje potrzebuje aplikacja do śledzenia czasu?
Listę klientów i projektów, licznik start/stop, sposób dodawania i poprawiania wpisów ręcznie, tygodniowy widok karty czasu oraz raport godzin według projektu i osoby. Zatwierdzanie, stawki rozliczeniowe i eksporty przychodzą dalej.
Jak sprawić, by licznik nie tracił czasu, gdy przeglądarka się zamknie?
Zapisz czas rozpoczęcia w bazie danych w momencie startu licznika i licz trwający czas od tego zapisanego momentu. Wtedy zamknięcie karty, odświeżenie lub przejście na inne urządzenie niczego nie zgubi.
Czy czas powinien być zaokrąglany?
Zapisuj dokładne czasy rozpoczęcia i zakończenia, a zaokrąglanie stosuj tylko w raportach i fakturach. Dzięki temu możesz później zmienić zasadę zaokrąglania, bez przepisywania historii.
Czy warto zbudować własny tracker czasu?
Zwykle tylko wtedy, gdy twoje zasady są nietypowe albo chcesz powiązać godziny z innymi danymi, które już przechowujesz, na przykład zleceniami, klientami czy fakturami. Do prostych liczników i raportów gotowy tracker jest tańszy i szybszy.