Pulse is a modern, AI-powered web application that revolutionizes team progress tracking and feedback collection through weekly check-ins and daily task management. Built with Next.js 15, React 19, and powered by AWS Bedrock, Pulse provides a seamless experience to maintain consistent communication, track project hours, and gather valuable insights.
- AI-Powered Task Parsing: Natural language input that automatically extracts task details
- Task Extraction: Parses project names, hours, categories, and descriptions from free text
- Flexible Input Formats: Support for manual entry, bulk import, and AI parsing
- Project & Bucket Categorization: Organize tasks by project and work type
- Multi-Step Submission Forms: Streamlined weekly check-in process
- Project Hours Tracking: Comprehensive time allocation across multiple projects
- Dashboard Visualizations: Charts showing effort distribution across projects and categories
- Time-based Filtering: Weekly and monthly views with detailed breakdowns
- Export Capabilities: PDF and CSV export for reporting and analysis
- Next.js 15: App Router with Turbopack for fast development
- React 19: Latest React features with concurrent rendering
- TypeScript: Full type safety and developer experience
- Tailwind CSS 4: Modern utility-first CSS framework
- shadcn/ui: Accessible component primitives
- AWS Bedrock: Claude and other advanced language models
- CopilotKit: AI assistant framework for seamless integration
- Supabase: Local PostgreSQL database with real-time capabilities
- Vitest: Fast unit testing framework
- Playwright: End-to-end testing with multiple browser support
pulse/
βββ src/
β βββ app/ # Next.js 15 App Router
β β βββ (authenticated)/ # Protected routes
β β β βββ daily-tasks/ # Daily task management
β β β βββ submissions/ # Weekly submissions
β β β βββ ... # Other authenticated features
β β βββ api/ # API routes
β β β βββ copilotkit/ # AI chatbot endpoint
β β β βββ parse-daily-tasks/ # Task parsing API
β β β βββ ai-weekly-insight/ # AI insights generation
β β βββ admin/ # Administrative interfaces
β βββ components/ # Reusable React components
β β βββ CopilotProvider.tsx # AI assistant provider
β β βββ DailyPulseAIAssistant.tsx # Daily task AI interface
β β βββ WeeklyPulseForm.tsx # Weekly form with AI integration
β βββ lib/ # Utility libraries
β βββ types/ # TypeScript type definitions
βββ supabase/ # Database migrations & config
βββ e2e/ # End-to-end tests
βββ docs/ # Project documentation
- Node.js: 18.x or later
- PostgreSQL: 15.x (via Supabase)
- pnpm: Package manager
- Supabase CLI: For local development
- Clone the repository:
git clone <repository-url>
cd pulse
- Install dependencies:
pnpm install
-
Environment Setup
# Copy environment templates cp .env.example .env cp supabase/.env.example supabase/.env
-
Start Local Supabase
supabase start
-
Initialize Database
# β οΈ WARNING: This resets your local database supabase db reset
-
Start Development Server
pnpm dev
-
Access the application
Frontend: http://localhost:3000 Admin Dashboard: http://localhost:3000/admin
Pulse uses CopilotKit to provide an intelligent AI assistant that helps users complete forms and manage tasks:
- Context Awareness: The AI remembers user preferences and previous submissions
- Natural Language Processing: Users can describe tasks in plain English
- Smart Form Filling: AI automatically populates form fields based on conversation
- Multi-step Guidance: Breaks down complex forms into manageable conversations
The AI-powered daily task system allows users to:
// Example: Natural language task input
"Fixed login bug @project-alpha #bugfix 1.5h
Code review for new feature @project-beta #feature 2 hours"
AI automatically extracts:
- Date: Task completion date
- Project: Associated project name
- Category: Work type (bugfix, feature, etc.)
- Hours: Time spent
- Description: Task details
The weekly form AI assistant provides:
- Previous Submission Recall: Shows last week's data for reference
- Smart Pre-filling: Automatically populates form fields
- Conversational Guidance: Walks users through form completion
- Context Preservation: Maintains conversation state throughout the session
- AI-Powered Parsing: Natural language input processing
- Calendar View: Visual submission tracking with color-coded status
- Dashboard Analytics: Hours distribution, project breakdowns, and trends
- Flexible Input Methods: Multiple ways to add and edit tasks
- Input: Users enter tasks via AI assistant or manual forms
- Parsing: AI extracts structured data from natural language
- Review: Tasks are grouped by date with editing capabilities
- Submission: Tasks are saved to the database
- Analytics: Dashboard provides insights and reporting
This project uses Vitest for unit testing and Playwright for end-to-end (E2E) testing.
- Run all unit tests:
pnpm test:run
- Run unit tests in watch mode:
pnpm test
- Run unit tests with UI:
pnpm test:ui
- Generate coverage report:
pnpm test:coverage
- Run all E2E tests:
pnpm test:e2e
- Run E2E tests with UI mode:
pnpm test:e2e:ui
- Run E2E tests in debug mode:
pnpm test:e2e:debug
- Run E2E tests specifically for Chromium:
pnpm test:e2e:chromium
- Generate code for E2E tests:
pnpm test:e2e:codegen