چطور اپ ردیابی زمان بسازیم: تایمر، برگه زمان و گزارش
یک اپ ردیابی زمان ثبت میکند چه کسی روی چه کاری، چقدر وقت گذاشته، و آیا این زمان قابلصورتحساب هست یا نه. برای ساختنش به مشتریها و پروژههایی نیاز دارید که زمان روی آنها ثبت شود، تایمری که بسته شدن برگه مرورگر آن را از بین نبرد، راهی برای افزودن و اصلاح دستی ورودیها، یک برگه زمان هفتگی و گزارشهایی که ورودیهای خام را به جمع تبدیل کنند. یک سازنده اپ با هوش مصنوعی میتواند با یک پرامپت روشن، نسخه اول کارکرد را بسازد. تصمیمهای مهم درباره قواعد است: گرد کردن، اینکه چه کسی چه چیزی را میتواند ویرایش کند، کی یک هفته قفل میشود و چه چیزی قابلصورتحساب است.
تعیین کنید زمان را برای چه چیزی ردیابی میکنید
همان اپ بسته به دلیلش متفاوت به نظر میرسد:
- صورتحساب مشتری. ساعت به تفکیک مشتری، نرخ برای هر نفر یا پروژه، و خروجی تمیز برای فاکتور. دقت و ردپای حسابرسی بیشترین اهمیت را دارند.
- حقوق کارکنان ساعتی. ساعت ورود و خروج، استراحتها، قواعد اضافهکار و تأیید مدیر. قوانین کار محلی اعمال میشود، پس بررسی کنید چه سوابقی را موظفید نگه دارید.
- فهمیدن اینکه زمان کجا میرود. بینش شخصی یا تیمی، برآورد در برابر واقعیت. سرعت ثبت از جریان تأیید مهمتر است.
برای نسخه اول یکی را کار اصلی قرار دهید. ردیاب صورتحساب یک فریلنسر و ساعت شیفت یک انبار یک تایمر و تقریباً هیچ چیز دیگری مشترک ندارند.
اپ به چه چیزهایی نیاز دارد
داده
| جدول | فیلدهای کلیدی |
|---|---|
| مشتریها | نام، نرخ ساعتی پیشفرض، فعال بودن بله/خیر |
| پروژهها | مشتری، نام، بودجه ساعت (اختیاری)، پیشفرض قابلصورتحساب بله/خیر |
| وظیفهها یا دستهها | پروژه، نام (طراحی، جلسات، پشتیبانی) — در ابتدا اختیاری |
| ورودیهای زمان | شخص، پروژه، وظیفه، زمان شروع، زمان پایان، مدت، یادداشت، قابلصورتحساب بله/خیر، وضعیت (پیشنویس، ارسالشده، تأییدشده)، صورتحسابشده بله/خیر |
| افراد | نام، ایمیل، نقش، نرخ هزینه یا نرخ صورتحساب |
زمان شروع و پایان را روی هر ورودی ذخیره کنید و مدت را از آنها محاسبه کنید. ورودیهایی که بهصورت «۲ ساعت و ۱۵ دقیقه» و بدون زمان وارد میشوند میتوانند فقط مدت را ذخیره کنند، اما باید تاریخ هم داشته باشند.
صفحهها
- تایمر و امروز: یک دکمه بزرگ شروع/توقف، انتخابگر پروژه و ورودیهای امروز زیر آن.
- نمای هفته: شبکهای که پروژهها در ستون کناری و روزها در بالا هستند، و افراد مستقیم ساعتها را در خانهها وارد میکنند. بسیاری این را به تایمر ترجیح میدهند.
- گزارشها: ساعت به تفکیک مشتری، پروژه و شخص برای یک بازه تاریخی، با تقسیم قابلصورتحساب و غیرقابلصورتحساب و خروجی CSV.
- مدیریت: مدیریت مشتریها، پروژهها، افراد و نرخها.
دسترسیها
پیش از ساختن، بنویسید چه کسی چه کاری میتواند بکند:
- افراد ورودیهای خودشان را میبینند و ویرایش میکنند.
- مدیران ورودیهای تیمشان را میبینند و هفتهها را تأیید میکنند.
- فقط مدیران نرخها را تغییر میدهند و ترجیحاً فقط مدیران اصلاً آنها را میبینند.
- کسی ورودی تأییدشده یا صورتحسابشده را ویرایش نمیکند، مگر اینکه مدیر آن را دوباره باز کند.
همین قاعده آخر است که گزارشها را قابل اعتماد میکند. راهنمای افزودن ورود به اپ بخش ورود را پوشش میدهد و کنترل دسترسی بر اساس نقش نقشها را.
تصمیمها و مبادلهها
تایمر، ثبت دستی یا هر دو
تایمرها وقتی دقیقاند که افراد یادشان باشد شروعشان کنند، که همیشه اینطور نیست. ثبت دستی برای کسانی که هفتهشان را جمعه پر میکنند سریع است. بیشتر تیمها به هر دو و راهی برای ویرایش ورودی تایمر پس از وقوع نیاز دارند. اگر فقط یکی را میسازید، نمای شبکه هفتگی را بسازید؛ سادهتر است و حالت «یادم رفت شروع کنم» را هم پوشش میدهد.
کجا تایمر در حال اجرا زندگی میکند
تایمری که در مرورگر میشمارد با بسته شدن برگه همهچیز را از دست میدهد. وقتی کسی شروع را میزند، زمان شروع را در پایگاهداده ذخیره کنید و زمان سپریشده را با کم کردن آن از الان نشان دهید. تایمر آنوقت در رفرش، لپتاپ و گوشی ادامه پیدا میکند. تصمیم بگیرید آیا یک نفر میتواند دو تایمر همزمان داشته باشد. معمولاً جواب نه است: شروع یکی، قبلی را متوقف میکند.
گرد کردن
قواعد رایج گرد کردن هر ورودی به نزدیکترین ۶، ۱۵ یا ۳۰ دقیقه است. زمانهای دقیق را در پایگاهداده نگه دارید و گرد کردن را فقط در گزارشها و فاکتورها اعمال کنید. هر دو عدد را در گزارشها نشان دهید تا کسی غافلگیر نشود.
قفل کردن و تأیید
بدون قفل، ساعتهای صورتحسابشده ماه قبل بعد از ارسال فاکتور میتوانند عوض شوند. یک مدل ساده: افراد یک هفته را ارسال میکنند، مدیر تأیید میکند و ورودیهای تأییدشده فقطخواندنی میشوند. اگر از داخل اپ فاکتور صادر میکنید، ورودیها را صورتحسابشده علامت بزنید تا دو بار صورتحساب نشوند.
منطقه زمانی و نیمهشب
زمانها را به UTC ذخیره کنید و به منطقه زمانی شخص نمایش دهید. تصمیم بگیرید ورودیای که از ساعت ۲۳:۰۰ تا ۰۱:۰۰ است متعلق به کدام روز است. پاسخ رایج این است که روزی که شروع شده.
یک پرامپت اولیه که کار میکند
یک اپ ردیابی زمان برای یک استودیوی طراحی ششنفره بسازید. دادهها: مشتریها (نام، نرخ ساعتی)، پروژهها (مشتری، نام، ساعت بودجه) و ورودیهای زمان (شخص، پروژه، شروع، پایان، یادداشت، قابلصورتحساب بله/خیر، وضعیت پیشنویس/ارسالشده/تأییدشده). صفحات: یک صفحه امروز با تایمر شروع/توقف و انتخابگر پروژه که زمان شروع را در پایگاهداده ذخیره کند تا تایمر بعد از رفرش بماند؛ یک صفحه هفته با پروژهها در ردیفها و دوشنبه تا یکشنبه در ستونها، جایی که افراد مستقیم ساعت تایپ کنند؛ یک صفحه گزارش با ساعت به تفکیک مشتری، پروژه و شخص برای یک بازه تاریخی، تقسیمشده به قابلصورتحساب و غیرقابلصورتحساب، با خروجی CSV؛ و یک صفحه مدیریت برای مشتریها، پروژهها و افراد. هر فرد فقط یک تایمر میتواند در حال اجرا داشته باشد. ورودیهای تأییدشده قابل ویرایش نیستند. زمانها را به UTC ذخیره کنید و به منطقه زمانی کاربر نشان دهید. طراحی تمیز، سریع و قابل کار با کیبورد.
این پرامپت جدولها، صفحهها، رفتار تایمر و قانون قفل را نام میبرد؛ چیزهایی که یک هوش مصنوعی در غیر این صورت حدس میزند.
مراحل ساخت
- اول پروژهها و ثبت دستی. مشتریها، پروژهها، فرم افزودن ورودی و فهرست. مطمئن شوید جمعها درست است.
- تایمر. شروع، توقف، یک تایمر در حال اجرا برای هر نفر و زمان شروع ذخیرهشده. آزمایش: تایمر را شروع کنید، برگه را ببندید و دوباره باز کنید.
- شبکه هفته. تایپ ساعت در یک خانه، ورودی را ایجاد یا بهروز کند.
- ورود و نقشها. پیش از استفاده افراد واقعی اضافه کنید تا کسی تصادفاً نرخها یا ورودیهای دیگران را نبیند.
- ارسال و تأیید. ارسال هفتگی، تأیید مدیر، فقطخواندنی بعد از تأیید.
- گزارش و خروجی. بازه تاریخی، گروهبندی، تقسیم قابلصورتحساب، CSV.
- نرخها و اتصال به فاکتور اگر مشتریها را صورتحساب میکنید. ساخت فاکتور را در مرحله یا اپ جداگانه نگه دارید؛ به نحوه ساخت اپ فاکتورگیری مراجعه کنید.
- موارد مرزی را آزمایش کنید. ورودی که از نیمهشب رد میشود، هفتهای با تغییر ساعت تابستانی، دو تایمر شروعشده از دو دستگاه، ویرایش ورودی تأییدشده.
اشتباهات رایج
- شمردن زمان فقط در مرورگر. در دمو کار میکند و در استفاده واقعی ساعتها را از دست میدهد.
- گرد کردن مقادیر ذخیرهشده. هرگز نمیتوانید زمان دقیق را دوباره به دست آورید.
- نبودن قفل برای هفتههای تأییدشده. گزارشها دیگر با فاکتورها نمیخوانند.
- دیده شدن نرخهای همه توسط همه. از روز اول نرخها را بر اساس نقش پنهان کنید.
- فیلدهای اجباری زیاد. اگر ثبت زمان بیش از چند ثانیه طول بکشد، مردم دیگر آن را انجام نمیدهند و دادهها خیالی میشوند. وظیفه و یادداشت را در ابتدا اختیاری کنید.
- ساختن یک مدیر پروژه کامل داخل ردیاب. پروژهها را ساده و بهعنوان برچسب نگه دارید. اگر وظیفه، برد و موعد لازم دارید، آن یک ابزار مدیریت پروژه است، ساخت جداگانه.
کی یک ردیاب آماده بهتر است؟
اگر تیم شما به تایمر، نمای هفته و گزارش نیاز دارد، ابزارهای ردیابی زمان اختصاصی این کار را خوب انجام میدهند. آنها همچنین چیزهایی دارند که ساختنشان کار واقعی میبرد: اپ دسکتاپ و موبایل، تشخیص بیکاری، یکپارچگی با تقویم و ابزارها، و یادآوری برای پر کردن برگههای زمان. برای حقوق ساعتی، ابزاری که برایش ساخته شده با استراحت، اضافهکار و نگهداری سوابق امنتر رفتار میکند تا یک اپ سفارشی نسخه اول.
خودتان بسازید وقتی قواعدتان جور نیست، وقتی میخواهید ساعتها به دادههایی که از قبل نگه میدارید (کار، سفارش کاری، ریتینر، فاکتور) وصل باشند، وقتی هزینه بهازای هر صندلی برای یک تیم بزرگ جمع میشود، یا وقتی ردیابی زمان بخشی از یک ابزار داخلی بزرگتر است. ساختن در برابر خریدن نرمافزار این مبادله را بررسی میکند و اگر ساعتهای شما الان در یک صفحهگسترده مشترک است، تبدیل صفحهگسترده به اپ را ببینید.
ساخت آن با Mythex
در Mythex ردیاب را در چت توصیف میکنید و عامل آن را در یک پیشنمایش زنده میسازد. وقتی ورودیها نیاز به ذخیره دارند، یک پایگاهداده Postgres اختصاصی اضافه میکند؛ میتوانید این را مستقیم بخواهید یا /database را تایپ کنید. مورد استفاده ابزار داخلی در مستندات پیشنهاد میکند یک مرحله دردناک را برای نسخه اول انتخاب کنید، که اینجا جور است: با ورودیها و نمای شبکه هفتگی شروع کنید، و بعد تایمرها و تأییدها را اضافه کنید.
ورود برای تیم شما چیزی است که با روش احراز هویت خودتان اضافه میکنید (دستورالعمل افزودن ورود). حسابهای Mythex برای کسانی است که میسازند، نه کسانی که اپ را استفاده میکنند. وقتی جریان اصلی کار کرد، /test به عامل اجازه میدهد پیشنمایش را کلیک کند (تایمر شروع کند، ورودی اضافه کند، گزارش بگیرد) و بگوید چه چیزی خراب است. برای نقطه شروع تصویری، قالبهای اپ را ببینید.
پرسشها
یک اپ ردیابی زمان چه امکاناتی لازم دارد؟
فهرستی از مشتریها و پروژهها، تایمر شروع و توقف، راهی برای افزودن یا اصلاح دستی ورودیها، نمای برگه زمان هفتگی و گزارشی از ساعتها به تفکیک پروژه و شخص. تأیید، نرخ قابلصورتحساب و خروجیگرفتن در مرحله بعد میآیند.
چطور جلوی از دست رفتن زمان تایمر را وقتی مرورگر بسته میشود بگیرم؟
زمان شروع را لحظهای که تایمر آغاز میشود در پایگاهداده ذخیره کنید و مدت جاری را از همان زمان ذخیرهشده حساب کنید. آنوقت بستن برگه، رفرش یا عوض کردن دستگاه چیزی را از بین نمیبرد.
آیا زمان باید گرد شود؟
زمان دقیق شروع و پایان را ذخیره کنید و گرد کردن را فقط در گزارشها و فاکتورها اعمال کنید. اینطور میتوانید بعداً قاعده گرد کردن را عوض کنید بدون بازنویسی تاریخچه.
آیا ارزش دارد ردیاب زمان خودم را بسازم؟
معمولاً فقط وقتی که قواعد شما غیرعادی است یا میخواهید ساعتها را به دادههای دیگری که دارید، مثل کار، مشتری یا فاکتور، وصل کنید. برای تایمرهای ساده و گزارشها، یک ردیاب موجود ارزانتر و سریعتر است.