Files
binect-chrome/README.md
tegwick b09290cb83 Release 0.1: Complete BinectChrome implementation
Implements all requirements from ProductRequirementsDocument.md:
- PDF detection via Chrome Downloads API
- Secure credential storage with AES-GCM encryption
- Binect API integration for PDF uploads
- Popup UI with Binect branding
- Local transfer tracking (500 entry cap)
- Help page with tracking view and CSV export
- 60-day credential retention with auto-expiry
- Accessibility compliance (WCAG 2.1 AA)

Technical implementation:
- Chrome Extension Manifest V3
- TypeScript with strict mode
- Webpack build system
- Jest test suite (22/22 passing)
- ESLint configured (0 errors)

Build output: 13 KB total (production minified)
Test coverage: crypto, pdf-detector, tracker, binect-api

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13 00:30:39 +01:00

144 lines
4.0 KiB
Markdown

# BinectChrome
A Chrome extension that enables users to send PDF documents from cloud applications directly to Binect for physical printing and postal delivery.
## Overview
BinectChrome detects PDF downloads in your browser and allows you to send them directly to Binect for physical mail delivery, eliminating the manual download-upload workflow.
## Features
- **PDF Detection**: Automatically detects PDF downloads using Chrome Downloads API
- **Secure Transfer**: Sends PDFs directly to Binect via encrypted connection
- **Credential Encryption**: User credentials stored encrypted with automatic 60-day expiry
- **Local Tracking**: Transfer history stored locally for transparency
- **Privacy-First**: No PDF storage, explicit user consent required
- **Accessible Design**: Follows WCAG 2.1 AA standards with Binect branding
## Development
### Prerequisites
- Node.js 18+ and npm
- Chrome browser for testing
### Setup
```bash
# Install dependencies
npm install
# Run development build with watch mode
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Type checking
npm run type-check
```
### Project Structure
```
binect-chrome/
├── src/
│ ├── background/ # Service worker (background script)
│ ├── popup/ # Extension popup UI
│ ├── tracking/ # Tracking/help page
│ └── utils/ # Shared utilities
│ ├── crypto.ts # Encryption utilities
│ ├── storage.ts # Storage management
│ ├── pdf-detector.ts # PDF detection
│ └── binect-api.ts # Binect API client
├── public/
│ ├── manifest.json # Extension manifest
│ ├── icons/ # Extension icons
│ └── _locales/ # Localization
├── tests/ # Jest tests
├── architecture/ # ADRs (Architecture Decision Records)
├── research/ # Research documentation
└── specs/ # API specifications
```
### Loading Extension in Chrome
1. Build the extension: `npm run build`
2. Open Chrome and navigate to `chrome://extensions/`
3. Enable "Developer mode" (toggle in top right)
4. Click "Load unpacked"
5. Select the `dist` directory
### Architecture
See [CLAUDE.md](./CLAUDE.md) for detailed architecture documentation.
Key architectural decisions are documented as ADRs in the [architecture/](./architecture/) directory.
## Testing
```bash
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
```
Tests cover:
- Credential encryption/decryption
- PDF detection
- Binect API integration
- Tracking system
## Privacy & Security
- **No PDF Storage**: PDFs are never stored by the extension
- **Encrypted Credentials**: User credentials encrypted at rest using AES-GCM
- **60-Day Expiry**: Credentials automatically expire after 60 days of inactivity
- **Local-Only Tracking**: All tracking data stored locally, never transmitted
- **Explicit Consent**: All transfers require user click
## Requirements
Implements all requirements from [ProductRequirementsDocument.md](./specs/ProductRequirementsDocument.md):
- ✅ PDF detection via Chrome Downloads API
- ✅ Secure credential storage with encryption
- ✅ Binect API integration for PDF upload
- ✅ Popup UI with Binect branding
- ✅ Local transfer tracking (capped at 500 entries)
- ✅ Help page with tracking view
- ✅ CSV export and email feedback mechanism
- ✅ 60-day credential retention policy
- ✅ Manual credential wipe option
- ✅ Accessibility compliance (WCAG 2.1 AA)
## Browser Compatibility
- Chrome 88+ (Manifest V3 support)
- Chromium-based browsers may work but are not officially supported in v1
## Support
For issues, feature requests, or questions:
Email: [bernd.worsch@binect.de](mailto:bernd.worsch@binect.de)
## License
MIT License - see [LICENSE](./LICENSE) file for details
## Version
Current version: 1.0.0