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
- 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
- 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¶
- Login → User authenticates
- Dashboard → View tasks (default: assigned to me)
- Toggle Filter → Switch between "To Me" / "By Me" views
- Add Task → Click (+) → Fill form → Save → Return to dashboard
- Edit Task → Click task row → Modify allowed fields → Update → Return to dashboard
Google Chat Flow¶
- Registration →
/registercommand → Provide details → Confirmation - Create Task →
/newcommand → Provide task details → Confirmation - List Tasks →
/list assigned-to-meor/list assigned-by-me→ View formatted list - 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¶
- User can log in and see dashboard with tasks
- Task filter toggle works correctly
- Add task popup opens with all required fields
- All fields are validated before saving
- Edit task popup pre-fills existing data
- Only description, deadline, and status can be modified in edit mode
- Changes are saved and reflected immediately
Google Chat¶
/registercommand creates new user/newcommand creates task with validation/listcommand returns properly formatted task list/updatecommand modifies only allowed fields- 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