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