.. _wienfluss-requirements: =========================== Requirements by WIENFLUSS =========================== :Author: Michael Stenitzer Structures and Administration ============================= Project-Assignment ------------------ * Clients * Projects * Phases * Tasks A template-system for phases including the corresponding tasks would be great. These templates could be assigned to projects. Project-time tracking --------------------- * User (required) * Date (required) * Duration (required) * Project / phase / task (required in deepest available level [#f1]_) * Text (optional / required [#f2]_) * Working-time class (e.g. normal, overtime, business trip, assembling, ...) * Accounting class (hourly rates) Working-time tracking --------------------- There is maximum one working-time entry per day, interrupted by any number of breaks. * Working-time: start, end (required) .. attention:: the end time can fall to the next calendar day. Should the first break during the next day automatically end the working-time entry for the current day? * Breaks: start, end * Duration vacation times * Duration illness, consultation, official tasks, special leaves, special holidays (by religion), ... * Working-time calendar [#f3]_ (workday, weekend, holiday, ...) Working-time classes -------------------- Defined by the administrator, optional. * Types (normal, overtime, business trip, assembling, ...) * Description * ? Accounting classes ------------------ Defined by the administrator, optional. * Types (hourly rates or similar) * Description * ? Working-time calendar --------------------- * Types defined on a daily basis: workday, weekend, holiday * possibly in iCal or similar standard format * possibly defined by rules * export/import functionality * manageable by the administrator Clients ------- Defined by the administrator, optional. * Name * ? Projects -------- Defined by the administrator, required. * Short name * Name * Status: active, inactive * Type: internal, external, ... * Accounting: by effort, lump-sum * Description required? (maybe inherited) * User constraints * Possible further properties: * flag: support billing on a regular basis * end-date * accounting period * target date for projects / phases / ... Phases ------ Defined by the administrator, optional. * Name * Status: active, inactive * Accounting: by effort, lump-sum * Description required? * User constraints Tasks ----- Defined by the administrator (?), optional. * Name * Status: active, inactive * Accounting: by effort, lump-sum * Description required? * User constraints User Management --------------- * ??? Optional features: * Target working-times (per workday) .. attention:: for some employment statuses this might depend on th weekday. * Vacation quota * Overtime budget Interfaces ========== The entry interfaces should complement each other and be usable by personal likings or current needs. **General requirements:** * learning: current entry values (last used projects, ...) are automatically proposed by the system * flexible: the system can be used on different interfaces (e.g. mobile) * very good keyboard-, mouse- and touchscreen-support: shortcuts for keyboard-users, least possible keyboard usage for mobile users * visual feedback for current status: current recording of working-time or break; project-times already assigned to the workday? * the different interfaces (time-tracking, attendance-monitoring, ...) should be interweaved synergetically. Time-tracking ------------- The user captures his working-times and project-times (usually ex-post) via an online interface. The capturing is for the current day by default but optionally also for any past days. Project-time tracking ^^^^^^^^^^^^^^^^^^^^^ * Select project, phase and task * Assign time * possibly in different time units (quarters of an hour, ...) * via a spinbox (+/-) * Textual description * Set further optional properties Working-time tracking ^^^^^^^^^^^^^^^^^^^^^ * Start- and end-time * Breaks: start- and end-time * Special times Tracking of special times ------------------------- User captures times of absence for longer periods solely for workdays (e.g. vacations or illnesses). * Start- and end-date * Hours per day Time recording -------------- During a workday a user records working-times, breaks and project-times directly. Implementation via an online interface or optionally with an app (desktop or mobile). * Start / stop / break for working-times * Start / stop for project-times * Direct editing / correction of recorded times is possible Attendence monitoring --------------------- Companies / departments can view the current attendance status of employees via an online interface. * Static overview of all employees * where applicable with additional information: name, initials, phone, room * where applicable with optional information of the user * Monitoring * not yet attendant * working * on break * closing time * absent (including optional message) * Batch capturing of absence-messages Reporting ========= **Use-cases:** * Working-time controlling * evaluation of employees' working-times for arbitrary periods * use by employees and administrators * Working-time settlement * goal is the evaluation and settlement of employees' working-times for one month for the payroll accounting * ideally working-time entries for an already evaluated period cannot be edited anymore * use by administrators * Project-time controlling * evaluation of project-times for single projects for arbitrary periods and arbitrary employees * use by employees and administrators * Project-time controlling overview * aggregation of captured project-times for all active projects (possibly grouped by phases) * use by administrators * Project-time settlement * goal is the evaluation and settlement of project-times for arbitrary periods * ideally project-time entries for an already evaluated period cannot be edited anymore * it should be obvious which periods have already been evaluated * use by administrators Questions & Considerations ========================== * Do we need a possibility to save certain queries / reports? * Do we need a possibility to set evaluation-points for certain queries / reports (reminder)? **Possible interfaces:** * Project-accounting, invoicing * Reminder for project-settlements .. [#f1] * if no phases and tasks are defined, assignment on project level is sufficient. * if phases and tasks are defined, selecting them is mandatory. .. [#f2] depends on project settings .. [#f3] can be managed in a calendar