Skip to content

Product Requirements Document - Version 1

Overview

Ritvik V1 is a task management system that provides users with the ability to create, view, and update tasks through both a web-based user interface and Google Chat integration. This version focuses on core task management functionality with a clean, intuitive user experience.

Target Users

  • Primary Users: Team members and managers who need to assign, track, and update tasks
  • Use Cases:
  • Individual task management
  • Team task assignment and tracking
  • Quick task updates via chat interface

Core Features

1. Web UI Features

1.1 User Authentication

  • Login System: Users must authenticate to access the application
  • Session Management: Maintain user sessions for seamless experience

1.2 Dashboard/Main Page

  • Task Overview: Display all tasks in a main table/list format
  • Task Filtering:
  • Toggle between "Tasks Assigned To Me" and "Tasks Assigned By Me"
  • Default view shows tasks assigned to the logged-in user
  • Task Actions:
  • Click on any task row to edit that task
  • Plus button (+) to create new tasks

1.3 Add New Task Feature

  • Trigger: Plus button (+) on main page
  • UI Component: Modal/popup overlay
  • Required Fields:
  • Title: Task title (required)
  • Description: Detailed task description (required)
  • Assigned To: Select user from dropdown (required)
  • Deadline: Date/time picker for task deadline (required)
  • Actions:
  • Save Button: Creates task and returns to main page
  • Cancel/Close: Dismiss popup without saving
  • Validation: All fields must be filled before saving

1.4 Edit Existing Task Feature

  • Trigger: Click on any task in the main table
  • UI Component: Same modal/popup as add task, pre-filled with existing data
  • Editable Fields (Limited scope for V1):
  • Description: Can be modified
  • Deadline: Can be updated
  • Status: Dropdown with options (Pending, In Progress, Completed, Cancelled)
  • Read-Only Fields:
  • Title (display only)
  • Assigned To (display only)
  • Created Date (display only)
  • Actions:
  • Update Button: Saves changes and returns to main page
  • Cancel/Close: Dismiss popup without saving changes

2. Google Chat Integration

2.1 User Registration Endpoint

  • Command: /register
  • Purpose: Register new users in the system via Google Chat
  • Parameters:
  • Name
  • Email
  • Department
  • Manager ID (optional)
  • Response: Confirmation message with user ID

2.2 Create New Task Endpoint

  • Command: /new
  • Purpose: Create a new task through chat interface
  • Parameters:
  • Title
  • Description
  • Assigned To (user email or ID)
  • Deadline
  • Response: Task created confirmation with task ID
  • Validation: Same validation rules as UI

2.3 List Tasks Endpoint

  • Command: /list
  • Purpose: Retrieve and display tasks
  • Parameters:
  • Filter option: "assigned-to-me" or "assigned-by-me"
  • Response: Formatted list of tasks with basic details
  • Format:
    📋 Your Tasks:
    1. [ID] Task Title - Due: [Date] - Status: [Status]
    2. [ID] Task Title - Due: [Date] - Status: [Status]
    

2.4 Update Task Endpoint

  • Command: /update
  • Purpose: Update existing task details
  • Parameters:
  • Task ID
  • Field to update (description, deadline, or status)
  • New value
  • Scope: Same limitations as UI (description, deadline, status only)
  • Response: Task updated confirmation

Data Model (V1 Scope)

User Fields

  • ID (auto-generated)
  • Name
  • Email
  • Department (v2 feature)
  • Manager ID (v2 feature)

Task Fields

  • ID (auto-generated)
  • Title
  • Description
  • Assigned To (User ID - Foreign Key)
  • Assigned By (User ID - Foreign Key)
  • Status (Pending, In Progress, Completed, Cancelled)
  • Created Date (auto-generated)
  • Updated Date (auto-updated)
  • Deadline (On the UI there will be predefined list of options - +1h +2h +4h +1d +2d +1w - along with date-time picker)

User Experience Flow

Web UI Flow

  1. Login → User authenticates
  2. Dashboard → View tasks (default: assigned to me)
  3. Toggle Filter → Switch between "To Me" / "By Me" views
  4. Add Task → Click (+) → Fill form → Save → Return to dashboard
  5. Edit Task → Click task row → Modify allowed fields → Update → Return to dashboard

Google Chat Flow

  1. Registration → /register command → Provide details → Confirmation
  2. Create Task → /new command → Provide task details → Confirmation
  3. List Tasks → /list assigned-to-me or /list assigned-by-me → View formatted list
  4. Update Task → /update [task-id] [field] [new-value] → Confirmation

Success Criteria

Functional Requirements

  • ✅ Users can successfully log in to the web interface
  • ✅ Users can view their assigned tasks and tasks they've assigned
  • ✅ Users can create new tasks with all required fields
  • ✅ Users can update task description, deadline, and status
  • ✅ Google Chat integration works for all 4 endpoints
  • ✅ Data persistence in database

User Experience Requirements

  • ✅ Intuitive navigation between task views
  • ✅ Clear visual distinction between add/edit modes
  • ✅ Responsive popup/modal design
  • ✅ Quick task status updates
  • ✅ Consistent experience between UI and Chat

Technical Requirements

  • ✅ Backend API supports all required endpoints
  • ✅ Database schema supports all required fields
  • ✅ Google Chat bot responds within 3 seconds
  • ✅ Web UI loads within 2 seconds

Out of Scope (Future Versions)

  • Task dependencies
  • File attachments
  • Task hierarchies (parent/child tasks)
  • Advanced filtering and search
  • Task assignment to multiple users
  • Email notifications
  • Task templates
  • Bulk task operations
  • Advanced reporting and analytics

Acceptance Criteria

Web UI

  1. User can log in and see dashboard with tasks
  2. Task filter toggle works correctly
  3. Add task popup opens with all required fields
  4. All fields are validated before saving
  5. Edit task popup pre-fills existing data
  6. Only description, deadline, and status can be modified in edit mode
  7. Changes are saved and reflected immediately

Google Chat

  1. /register command creates new user
  2. /new command creates task with validation
  3. /list command returns properly formatted task list
  4. /update command modifies only allowed fields
  5. All commands provide appropriate success/error messages

Timeline

  • Day 1-2: Backend API development and database setup
  • Day 3-4: Web UI development (authentication, dashboard, modals)
  • Day 5: Google Chat bot integration
  • Day 6: Testing, bug fixes, and deployment

Dependencies

  • FastAPI backend framework
  • React frontend framework
  • PostgreSQL database
  • Google Chat API access
  • Google Apps Script for chat integration