A web application for filtering and analyzing important messages from chat exports based on customizable criteria. It can generate reports and send email notifications.
- Keyword-based categorization - Create custom categories with relevant keywords
- Pattern recognition - Detect dates, times, links, and locations automatically
- Sender importance - Prioritize messages from specific senders
- Scoring system - Customizable weights and thresholds for message importance
- Download filtered reports - Generate and download categorized message files
- Email notifications - Send processed reports directly to your inbox (must change env variables)
- Real-time preview - Preview important messages before downloading
- Dark/Light theme - Seamless theme switching with system preference detection
- Responsive design - Optimized for desktop and mobile devices
- Toast notifications - User-friendly feedback for all actions
- Type-safe development - Full TypeScript implementation
- Modern React patterns - Hooks, Context API, and functional components
- Rate limiting - Protected API endpoints against abuse
- Error handling - Comprehensive error handling and user feedback
- Clone or download the project files
- Install dependencies:
npm install- Configure environment variables:
- Copy
.env.exampleto.env.local - Update with your email credentials
- Copy
Edit the .env.local file with your settings:
EMAIL_USER="your_email@gmail.com"
EMAIL_PASS="your_app_specific_password"For Gmail, you'll need to:
- Enable 2-factor authentication
- Generate an app-specific password
The default parameters in src/app/page.tsx can be modified:
keywords: {
'important': ['urgent', 'important', ...],
'academic': ['homework', 'assignment', ...],
},
patterns: {
date: true,
time: true,
link: true,
place: true
},
// ... more confsrc/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ │ ├── process/ # Message processing endpoint
│ │ └── email/ # Email sending endpoint
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # React components
│ ├── FileUpload.tsx # File upload component
│ ├── MessageFilter.ts # Main filter logic
│ ├── ParameterPanel.tsx # Filter configuration
│ ├── OutputOptions.tsx # Output settings
│ ├── Toast.tsx # Notification component
│ └── ThemeToggle.tsx # Theme switcher
├── contexts/ # React contexts
│ └── ThemeContext.tsx # Theme management
types/ # TypeScript definitions
└── index.ts # Main type definitions
- Click the upload area to select your chat export file (txt format)
- Supported format: WhatsApp-style chat exports with timestamps
-
Pattern Detection: Toggle detection of dates, times, links, and places
-
Important Senders: Specify senders whose messages get priority
-
Keyword Categories: Create custom categories with relevant keywords
-
Scoring System: Adjust weights and thresholds for message importance
- Choose to download the filtered report
- Optionally send email notifications with the report
- Enter email address for notifications
- Click "Process Chat" to analyze your messages
- View results summary with message counts
MIT License - see LICENSE file for details