A web-based application for parsing, viewing, and managing SMS backup files (in XML format) from the "SMS Backup & Restore" app (not affiliated with its developer). This version enhances the original application with added features such as a lightweight server setup using Node.js for automatic feeding of XML file and Docker for seamless deployment.
-
Phone Number Normalization
- Automatically removes international and local prefixes for consistent formatting.
- Prevents duplicate contacts caused by inconsistent phone number formats (e.g., +49, 0049, 0176).
-
SMS Parsing
- Processes XML files containing SMS backup data.
- Groups messages by normalized phone numbers for consolidated conversations.
- Extracts key details like timestamps, message content, and type (sent/received).
-
Contact Management
- Displays a searchable, scrollable list of unique contacts.
- Dynamic filters to show all contacts, named contacts, or unknown numbers.
-
Chat View
- Clean and organized chat window for viewing conversations.
- Differentiates between sent and received messages.
-
Export Options
- Export conversations in multiple formats:
- CSV: For spreadsheets.
- JSON: Machine-readable structured data.
- PDF: Printable format for archiving.
- Export conversations in multiple formats:
-
User-Friendly Design
- Drag-and-drop support for XML uploads.
- Dynamic search and filter functionality for contacts and messages.
- Light and dark mode options for better accessibility.
- Introduced a Node.js-based server to:
- Automatically load the latest SMS XML file from the
/sms
directory at startup. - Serve the XML data to the web-based application.
- Provide APIs for exporting conversations in supported formats.
- Automatically load the latest SMS XML file from the
- Added Docker support for containerized deployment:
- Dockerfile: Builds the application and server into a single container.
- docker-compose.yml: Manages containerized services, ensuring portability and ease of setup.
- The application now loads the most recent XML file on startup if available, in addition to drag-and-drop support.
- Configurable
/sms
directory for storing backup files.
- HTML5: For the application's structure.
- CSS3 (Bootstrap): For responsive and modern UI design.
- JavaScript: For dynamic XML processing and client-side interactivity.
- Node.js: Lightweight server for file management and API support.
- jsPDF: To generate PDF exports.
- Bootstrap v5.x: For styling and layout.
- Font Awesome: For optional icons in the UI.
- A modern web browser (e.g., Chrome, Firefox, Edge).
- Docker and Docker Compose installed on your machine.
- Clone the repository:
git clone https://github.com/tanadelgigante/smsviewer-enhanced cd smsviewer-enhanced
- Build and run with Docker:
docker-compose up -d --build
- Access the application: Open your browser and go to http://localhost:4001.
Drag and drop your SMS backup XML file into the upload area. Alternatively, place SMS backup files in the /sms directory (the latest file will be auto-loaded). Browse contacts and select a conversation to view messages. Use filters or search to find specific contacts or messages. Export conversations in your desired format (CSV, JSON, or PDF).
- jsPDF: For generating PDF exports.
- Bootstrap: For responsive and modern UI.
- Font Awesome: For optional icons in the UI.
Dependencies are automatically included in the project via CDNs in index.html.
This project is licensed under the MIT License. See the LICENSE file for details.