0% found this document useful (0 votes)
6 views

Time Tracker Application

Uploaded by

bardia.hszd
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Time Tracker Application

Uploaded by

bardia.hszd
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Product Requirements Document

(PRD): Time Tracker Application

Prepared by:
Bardia Hassanzadeh

Client:
EEFA VFX Inc.

Spring 2024
Introduction:
The purpose of this Time Tracker application is to monitor and record the amount of
time spent on each application's various projects to assist in project management
and billing. This application will include a client-side and server-side component to
facilitate tracking, reporting, and project management.

Client-Side Requirements:

1. User Authentication:
● Login System: Users must be able to log in via a secure login system or
through remote access.
● User Accounts: Each user will have a unique account with a username and
password.

2. Project Selection:
● Project List: Users should see a list of available projects.
● Current Project: Users can select and switch between different projects they
are working on.

3. Activity Tracking:
● Active vs Idle Time: The application must be able to distinguish between
active and idle times by monitoring the use of various software (e.g., Maya,
Blender, etc.).
● Automatic Tracking: Automatically track the time when a user is active in a
project-related application.
● Manual Pause/Stop: Users should have the ability to manually pause or stop
the time tracking.

4. Reporting:
● Time Logs: Log the time spent on each project and generate a summary.
● Send Reports to Server: Automatically send project time logs to the server at
regular intervals or upon user request.

1
Server-Side Requirements:

1. Project Management:
● Add Projects: Admins must be able to add new projects to the system.
● Project Details: Store details of each project, including project name and
associated users.

2. User Management:
● User Accounts: Manage user accounts, including adding, updating, and
deleting users.

3. Reporting:
● Receive Reports: Receive time logs from client-side applications.
● Aggregate Data: Aggregate and store time logs by project and user.
● Generate Reports: Provide functionality to generate reports based on project
names and user activity.

Functional Requirements:

1. Client-Side:
● Login Authentication: Implement a secure login mechanism.
● Project Selection: Interface for users to select and switch projects.
● Activity Monitoring: Background service to monitor active applications.
● Manual Controls: Interface for users to pause and stop time tracking.
● Data Synchronization: Mechanism to send time logs to the server.

2. Server-Side:
● Project and User Management: Interfaces and APIs for managing projects and
users.
● Report Generation: Tools for generating detailed reports based on project and
user data.

2
● Data Storage: Secure storage for time logs and user data.

Non-Functional Requirements:

1. Security:
● Data Encryption: Encrypt data in transit and at rest.
● Access Control: Role-based access control for different user types (e.g.,
admin, user).

2. Performance:
● Scalability: The system should handle multiple users and projects without
degradation in performance.
● Efficiency: Efficient tracking and reporting mechanisms to minimize
performance impact on client devices.

3. Usability:
● User Interface: Intuitive and user-friendly interfaces on both client and server
sides.
● Accessibility: Ensure accessibility for users with disabilities.

This PRD outlines the necessary features and functionalities for a Time Tracker
application that aids in tracking and managing time spent on various projects,
thereby improving project management and billing accuracy.

3
Deliverables
Here is a detailed breakdown that includes both the features for the front-end and back-end,
as well as DevOps tasks starting from Month 3. This plan ensures that a minimum viable
product (MVP) is ready by the end of Month 2, and DevOps tasks are incorporated from
Month 3 onwards.

Month 1: Initial Setup and Core Functionality

Front-End Features (Standalone Python Application)

1. User Identification
○ Automatically identify the user based on the Windows login
2. Basic UI Setup
○ Basic layout and navigation using a Python GUI framework (e.g., Tkinter,
PyQt)

Back-End Features

1. Environment Setup
○ Set up PostgreSQL database
○ Initialize server environment (Node.js/Express or similar)
○ Set up version control repository (Git)
2. User Management API
○ Endpoint to receive user information from the Windows login (if necessary for
the backend)
3. Database Schema Design
○ Users table (id, username, windows_username, role, etc.)

Month 2: Core Project Management and Basic Activity Tracking

Front-End Features (Standalone Python Application)

1. Project Selection Interface


○ List of available projects
○ Project selection and switching
2. Basic Activity Tracking UI
○ Initial display for active vs. idle time
3. Manual Controls
○ Manual pause and stop controls for time tracking

Back-End Features

1. Project Management API


○ Add project endpoint
○ Update project endpoint
○ Delete project endpoint
2. Activity Tracking API

4
○ Endpoint to receive basic activity logs
3. Database Schema Extension
○ Projects table (id, name, description, created_at, updated_at)
○ User-project relationship table (user_id, project_id, role)
○ Activity logs table (id, user_id, project_id, activity_type, start_time, end_time,
duration)
4. Basic Reporting and Data Synchronization
○ Endpoint to send and receive basic time logs
○ Initial implementation for aggregating and storing activity data

End of Month 2: MVP Deliverables

By the end of Month 2, the MVP should include the following core features:

Front-End MVP Features (Standalone Python Application)

1. User Identification
○ Automatically identify the user based on the Windows login
2. Project Selection
○ Display and selection of projects
3. Basic Activity Tracking
○ Track active vs. idle time
○ Manual pause and stop controls
4. Basic UI
○ Basic layout, navigation, and initial user interface setup using a Python GUI
framework

Back-End MVP Features

1. User Management and Identification


○ Endpoint to receive user information based on Windows login
2. Project Management
○ API endpoints to add, update, and delete projects
○ Basic project and user relationship management
3. Activity Tracking
○ Basic API to receive and store activity logs
4. Basic Reporting and Data Synchronization
○ Basic endpoints to send and receive time logs
○ Aggregation and storage of activity data

Month 3: Advanced Activity Tracking and Reporting + DevOps Setup

Front-End Features (Standalone Python Application)

1. Advanced Activity Tracking Interface


○ Detailed activity tracking (types of activity, idle detection)
2. Reporting Interface
○ View time logs and generate summaries and reports

5
Back-End Features

1. Activity Tracking API Enhancements


○ More detailed tracking and logging mechanisms
2. Reporting API Enhancements
○ Generate detailed reports based on project and user data

DevOps Setup

1. Jenkins Installation and Configuration


○ Set up Jenkins server
○ Configure Jenkins with the Git repository
○ Create a basic CI pipeline for build and test automation
2. Extend CI Pipeline
○ Integrate automated tests into the Jenkins pipeline
○ Ensure continuous integration with every commit to the repository
3. Basic CD Pipeline Setup
○ Create a basic continuous deployment pipeline to deploy to a staging
environment

Month 4: Data Synchronization and Performance Optimization

Front-End Features (Standalone Python Application)

1. Data Synchronization Mechanism


○ Automatic and manual synchronization of time logs with the server

Back-End Features

1. Performance Optimization
○ Optimize server-side performance for handling multiple users and projects

DevOps Setup

1. Enhance CI/CD Pipeline


○ Add more advanced testing (integration, end-to-end tests)
○ Automate deployment to production upon successful staging tests
2. Monitor and Optimize Pipelines
○ Implement monitoring for Jenkins jobs
○ Optimize pipeline performance and resource usage

Month 5: Security and Scalability Enhancements

Front-End Features (Standalone Python Application)

1. Security Enhancements
○ Ensure secure data transmission and storage

Back-End Features

6
1. Security Enhancements
○ Data encryption and role-based access control
2. Scalability Planning
○ Plan and implement scalability strategies

DevOps Setup

1. Security in CI/CD
○ Integrate security checks in the pipeline
○ Implement vulnerability scanning

Month 6: Usability and Final Preparations

Front-End Features (Standalone Python Application)

1. Usability Enhancements
○ User-friendly interface and accessibility compliance

Back-End Features

1. API Refinements and Final Testing


○ Comprehensive testing and final adjustments

DevOps Setup

1. Final CI/CD Adjustments


○ Finalize and stabilize CI/CD pipelines
○ Ensure smooth operation and maintenance procedures

Ongoing Maintenance and Support (Post-Launch)

Front-End Features (Standalone Python Application)

1. Bug Fixes and Updates


○ Address bugs and issues reported by users
○ Implement regular updates and improvements

Back-End Features

1. Bug Fixes and Updates


○ Address backend bugs and performance issues
○ Implement regular updates and improvements

DevOps Setup

1. Continuous Improvement
○ Continuously improve CI/CD processes
○ Implement new tools and techniques as needed

You might also like