A powerful Chrome extension for monitoring web page content changes and notifying users in real-time.
- π Support for full-page and partial content monitoring
- π§ Email notifications for content changes
- π₯ User account system
- π Membership tiers (Normal/Pro)
- π Multi-language support (English/Chinese)
- π Task labels and notes
- π Real-time task status display
web-content-monitor/
βββ extension/
β βββ popup/
β β βββ popup.html
β β βββ popup.css
β β βββ popup.js
β βββ icons/
β β βββ icon.png
β β βββ icon16.png
β β βββ icon48.png
β β βββ icon128.png
β βββ manifest.json
βββ server/
β βββ app.js
β βββ webpages.db
βββ package.json
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express
- Database: SQLite3
- Dependencies:
- nodemailer (email delivery)
- puppeteer (web content scraping)
- cheerio (HTML parsing)
- stripe (payment processing)
- diff (content comparison)
# Clone the repository
git clone [[repository-url]](https://github.com/Scodive/ChangeDetection.git)
cd ChangeDetection
# Install dependencies
npm install
# Install PM2
npm install -g pm2
# Start the service
pm2 start server/app.js --name "web-monitor"
# Configure startup
pm2 startup
pm2 saveThe database will be created automatically on first run, including tables for:
- users (user information) id, email, password, created_date, membership_level
- monitoring_tasks (monitoring tasks) id, email, url, monitering_type, content, start_time, status, last_check_time, last_change_time, change_content, label, read_status
- Copy
.env.exampleto.env:
cp .env.example .env- Update the
.envfile with your actual values:
- SMTP credentials for email notifications
- Stripe API key for payment processing
- Server host and port
- Database path
- API base URL
- Open Chrome extensions page (
chrome://extensions/) - Enable Developer mode
- Click "Load unpacked"
- Select the
extensiondirectory from the project
- Full-page monitoring
- Monitor up to 2 web pages simultaneously
- Basic email notifications
- Full-page and partial content monitoring
- Unlimited monitored pages
- Custom monitoring intervals
- Priority email notifications
Main API endpoints:
POST /register // User registration
POST /login // User login
POST /start-monitoring // Start monitoring task
POST /stop-monitoring // Stop monitoring task
GET /tasks // Get monitoring tasks
POST /upgrade // Upgrade membership- Ensure server firewall allows access to port 3000
- Configure SMTP service correctly for email notifications
- Regularly backup the database file
- Monitor PM2 logs for potential issues
- Node.js 14.x or higher
- Chrome browser version 88 or higher
- SQLite3
- PM2 (for production deployment)
# Install dependencies
npm install
# Start development server
npm run dev
# Run tests
npm test
# Build extension
npm run buildThe application includes comprehensive error handling for:
- Network connectivity issues
- Database operations
- Email delivery failures
- Content scraping errors
- Password encryption
- Rate limiting
- CORS protection
- Input validation
- XSS prevention
MIT License
Contributions are welcome! Before submitting a Pull Request:
- Ensure code follows project standards
- Add necessary tests
- Update relevant documentation
For support, please:
- Check the documentation
- Search existing issues
- Create a new issue if needed
Future planned features:
- Mobile app support
- Advanced notification options
- API integration capabilities
- Enhanced analytics
Special thanks to all contributors and the open-source community.
For more information or support, please open an issue or contact the maintainers (hjiangbg@connect.ust.hk).



