Как да създадете приложение за проследяване на време: таймери, табели с часове и отчети
Приложение за проследяване на време записва кой по какво е работил, колко дълго и дали това време може да се фактурира. За да създадете такова, ви трябват клиенти и проекти, срещу които да се проследява, таймер, който оцелява, когато браузърът е затворен, начин за добавяне и поправяне на записи ръчно, седмична табела с часове и отчети, които превръщат суровите записи в суми. Инструмент за създаване на приложения с ИИ може да направи работеща първа версия по една ясна подкана. Решенията, които имат значение, са правилата: закръгляне, кой какво може да редактира, кога една седмица се заключва и какво се смята за фактурируемо.
Решете за какво проследявате времето
Едно и също приложение изглежда различно според причината зад него:
- Фактуриране на клиенти. Часове по клиент, ставка на човек или проект и чист експорт за фактури. Точността и одитната следа са най-важни.
- Заплати за почасово наети служители. Часове на вход и изход, почивки, правила за извънредни часове и одобрение от мениджър. Важат местните трудови правила, затова проверете какви записи сте длъжни да пазите.
- Разбиране къде отива времето. Лична или екипна информация, оценки срещу реално изпълнение. Скоростта на въвеждане е по-важна от одобренията.
Изберете една основна цел за първата версия. Тракерът за фрийлансър за фактуриране и часовникът за смяна в склад споделят таймер и почти нищо друго.
Какво трябва на приложението
Данни
| Таблица | Основни полета |
|---|---|
| Клиенти | Име, стандартна почасова ставка, активен да/не |
| Проекти | Клиент, име, бюджет в часове (незадължително), фактурируем по подразбиране да/не |
| Задачи или категории | Проект, име (дизайн, срещи, поддръжка) – незадължително в началото |
| Записи на време | Човек, проект, задача, начален час, краен час, продължителност, бележка, фактурируем да/не, статус (чернова, изпратен, одобрен), фактуриран да/не |
| Хора | Име, имейл, роля, цена на разход или ставка за фактуриране |
Запазвайте начален и краен час при всеки запис и извеждайте продължителността от тях. Записите, въведени като „2ч 15мин“ без часове, могат да пазят само продължителността, но запазете дата.
Страници
- Таймер и днес: голям бутон за старт и стоп, избор на проект и записите за днес отдолу.
- Седмичен изглед: решетка с проекти по страничната линия и дни в хоризонтална посока, където хората въвеждат часове директно. Мнозина предпочитат това пред таймерите.
- Отчети: часове по клиент, проект и човек за даден период, с разделение на фактурируеми и нефактурируеми, и експорт в CSV.
- Администрация: управление на клиенти, проекти, хора и ставки.
Права
Преди да строите, запишете кой какво може да прави:
- Хората виждат и редактират собствените си записи.
- Мениджърите виждат записите на екипа си и одобряват седмици.
- Само администраторите променят ставките и, идеално, само администраторите ги виждат изобщо.
- Никой не редактира запис, след като е одобрен или фактуриран, освен ако администратор не го отвори отново.
Последното правило е това, което прави отчетите надеждни. Нашето ръководство за добавяне на вход към приложението обхваща входа, а контрол на достъпа по роли – ролите.
Решения и компромиси
Таймер, ръчно въвеждане или и двете
Таймерите са точни, когато хората не забравят да ги стартират, а това не винаги се случва. Ръчното въвеждане е бързо за хората, които попълват седмицата си в петък. Повечето екипи се нуждаят и от двете, и от начин да редактират запис от таймер след това. Ако изградите само едно, изградете седмичната решетка; тя е по-проста и покрива случая „забравих да стартирам“.
Къде живее работещият таймер
Таймер, който брои в браузъра, губи всичко, когато разделът се затвори. Запазвайте началното време в базата данни, когато някой натисне старт, и показвайте изминалото време, като изваждате това от сега. Таймерът тогава продължава да работи при презареждания, лаптопи и телефони. Решете дали един човек може да пуска два таймера едновременно. Обикновено отговорът е не: стартирането на нов спира стария.
Закръгляне
Чести правила са закръгляне на всеки запис нагоре до най-близките 6, 15 или 30 минути. Пазете точните часове в базата и прилагайте закръгляне само в отчетите и фактурите. Показвайте и двете числа в отчетите, за да не се изненада никой.
Заключване и одобрения
Без заключване часовете от миналия месец, които са фактурирани, могат да се променят след като фактурата е изпратена. Прост модел: хората изпращат седмица, мениджър я одобрява и одобрените записи стават само за четене. Ако фактурирате от приложението, маркирайте записите като фактурирани, за да не могат да бъдат таксувани два пъти.
Часови зони и полунощ
Пазете времената в UTC и показвайте в часовата зона на човека. Решете към кой ден принадлежи запис, който върви от 23:00 до 01:00. Обичайният отговор е денят, в който е започнал.
Първа подкана, която работи
Създай приложение за проследяване на време за дизайнерско студио с шест души. Данни: клиенти (име, почасова ставка), проекти (клиент, име, бюджетни часове) и записи на време (човек, проект, начало, край, бележка, фактурируем да/не, статус чернова/изпратен/одобрен). Страници: страница „Днес“ с таймер за старт и стоп и избор на проект, който запазва началния час в базата, за да оцелее таймерът при презареждане; страница „Седмица“ с проектите като редове и понеделник до неделя като колони, където хората могат да въвеждат часове директно; страница „Отчети“, която показва часове по клиент, проект и човек за даден период, разделени на фактурируеми и нефактурируеми, с експорт в CSV; и страница „Администрация“ за клиенти, проекти и хора. Само един таймер може да работи на човек. Одобрените записи не могат да се редактират. Пази времената в UTC и ги показвай в часовата зона на потребителя. Чист, бърз дизайн, удобен за клавиатура.
Тя назовава таблиците, страниците, поведението на таймера и правилото за заключване – неща, които ИИ иначе би трябвало да налучка.
Стъпки за изграждане
- Първо проекти и ръчни записи. Клиенти, проекти, форма за добавяне на запис и списък. Уверете се, че сумите се събират.
- Таймер. Старт, стоп, един работещ таймер на човек, запазен начален час. Тествайте: стартирайте таймер, затворете раздела и го отворете отново.
- Седмична решетка. Въвеждането на часове в клетка създава или обновява запис.
- Вход и роли. Добавете ги, преди реални хора да използват приложението, за да не виждат ставки или чужди записи по погрешка.
- Изпращане и одобрение. Седмично изпращане, одобрение от мениджър, само за четене след одобрение.
- Отчети и експорт. Период, групиране, разделяне на фактурируеми, CSV.
- Ставки и връзки към фактуриране, ако фактурирате клиенти. Пазете създаването на фактури в отделна стъпка или приложение; вижте как да създадете приложение за фактуриране.
- Тествайте крайните случаи. Запис през полунощ, седмица със смяна на часовото време, два таймера, пуснати от две устройства, редактиране на одобрен запис.
Чести грешки
- Броене на време само в браузъра. Работи в демото и губи часове в реална употреба.
- Закръгляне на съхранените стойности. Никога не можете да върнете точното време.
- Без заключване на одобрени седмици. Отчетите спират да съвпадат с фактурите.
- Всеки вижда ставките на всички. Скрийте ставките според ролята от първия ден.
- Твърде много задължителни полета. Ако записването на време отнема повече от няколко секунди, хората спират да го правят и данните стават измислица. Направете задачата и бележката незадължителни в началото.
- Изграждане на цял мениджър на проекти вътре в тракера. Пазете проектите като прости етикети. Ако ви трябват задачи, дъски и срокове, това е инструмент за управление на проекти – отделен проект.
Кога по-добър избор е готов тракер
Ако екипът ви се нуждае от таймер, седмичен изглед и отчети, специализираните продукти за проследяване на време вече правят това добре. Те идват и с неща, които отнемат реална работа за изграждане: настолни и телефонни приложения, засичане на неактивност, интеграции с календар и инструменти и напомняния за попълване на табелите с часове. За почасови заплати инструмент, създаден за целта, ще се справи с почивките, извънредните часове и водене на записи по-безопасно от първа версия на собствено приложение.
Създайте свое, когато правилата ви не пасват, когато искате часовете да са свързани с данни, които вече пазите (работни задания, поръчки, абонаментни договори, фактури), когато цената на потребител в голям екип нараства, или когато проследяването на време е една част от по-голям вътрешен инструмент. Нашето ръководство за избор между изграждане и покупка на софтуер разглежда компромиса, а ако часовете ви сега живеят в споделена електронна таблица, вижте как да превърнете електронна таблица в приложение.
Създаване с Mythex
В Mythex опишете тракера в чата, а агентът го изгражда в жив преглед. Той добавя специализирана PostgreSQL база данни, когато записите трябва да се пазят, и можете да го поискате директно или да напишете /database. Примерът за вътрешен инструмент в документацията препоръчва да изберете една болезнена стъпка за първата версия, което тук пасва: започнете със записите и седмичната решетка, после добавете таймери и одобрения.
Входът за екипа ви е нещо, което добавяте със собствения си подход за автентикация (рецепта за добавяне на вход). Акаунтите в Mythex са за хората, които създават, не за хората, които ще използват приложението ви. Когато основният поток работи, /test кара агента да премине през превюто (старт на таймер, добавяне на запис, пускане на отчет) и да докладва какво се счупва. За визуална отправна точка разгледайте шаблоните за приложения.
Въпроси
Какви функции трябва да има приложение за проследяване на време?
Списък с клиенти и проекти, таймер за старт и стоп, начин за добавяне или корекция на записи ръчно, седмичен изглед на табела с часове и отчет за часовете по проект и човек. Одобренията, ставките за фактуриране и експортите идват след това.
Как да спра таймера да губи време, когато браузърът се затвори?
Запазвайте началното време в базата данни в момента, в който таймерът стартира, и изчислявайте продължителността от това запазено време. Така затварянето на раздела, презареждането или смяната на устройство нищо не губят.
Трябва ли времето да се закръглява?
Съхранявайте точните начални и крайни часове и прилагайте закръгляне само в отчетите и фактурите. Така можете да промените правилото за закръгляне по-късно, без да пренаписвате историята.
Има ли смисъл да създам собствен тракер за време?
Обикновено само ако правилата ви са необичайни или искате часовете да са свързани с други данни, които вече пазите, като работни задания, клиенти или фактури. За прости таймери и отчети съществуващ тракер е по-евтин и по-бърз.