PaperTrail is a highly optimized client-side document formatter. It allows you to convert messy raw spreadsheets (Excel, CSV, TSV) into elegant, print-ready PDF documents instantly. All file parsing, styling, and PDF exports are handled 100% locally in your web browser. Your private corporate financials never leave your machine.
- Backend Framework: Laravel 13 (PHP 8.4)
- Frontend Utilities: Alpine.js, Vanilla CSS, Tailwind CSS v4
- Database Engine: SQLite (local telemetry logging)
- Local Dev Bundling: Vite
- Auto Type-Detection: Financial fields auto-align right, text headers stay left, and date inputs format cleanly.
- Interactive Workspace: Drag column headers to reorder, rename headers, toggle column visibilities, and resize fonts.
- Diverse Letterhead Layouts: Cycle through 10+ professional editorial letterhead templates instantly.
- Top Accent Color Bar: Optional color accent horizontal strip matching your company branding.
- Dynamic File Naming: Printed PDF suggests clean standard formats:
CompanyAcronym_DocTitle_Date(e.g.VT_Statement_13 Jul 2026). - Telemetry Counter: Direct SQLite logging pipeline counts pages printed and rows loaded without collecting any file content or user details.
Follow these steps to set up and run PaperTrail locally on your machine.
Make sure you have the following installed:
- PHP 8.4
- Composer
- Node.js & npm
- SQLite (or Laravel Herd / Valet)
Navigate to your projects directory and install all requirements.
# Clone the repository
git clone https://github.com/mxTuhin/PaperTrail.git
cd PaperTrailPaperTrail includes a custom setup script that installs dependencies, prepares the database, generates keys, and builds assets automatically.
composer run setupIf you prefer manual steps, run:
composer install
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate --force
npm install
npm run buildTo launch the server, Vite compiler, and background workers simultaneously, execute:
composer run devThe application will be served at http://127.0.0.1:8000 (or your local domain setup).
PaperTrail includes a minimal admin panel at /admin to monitor telemetry stats (total uploads, prints, and parsed data counts).
- Go to
http://127.0.0.1:8000/adminin your browser. - Enter the Basic Authentication credentials:
- Username / Email:
admin@papertrail.test - Password:
admin123
- Username / Email:
To reset or update the admin credentials via Tinker, run:
php artisan tinker --execute '$user = App\Models\User::where("email", "admin@papertrail.test")->first(); if ($user) { $user->password = Illuminate\Support\Facades\Hash::make("YOUR_NEW_PASSWORD"); $user->save(); }'- Offline Processing: Spreadsheets are read and parsed completely inside the client browser. No sheets or financial row details are uploaded or stored.
- Anonymized Metadata Telemetry: The only data logged is an anonymous usage counter (total row count, columns count, and event action types) saved to the local SQLite database.
This project is licensed under a proprietary End User License Agreement (EULA) — Personal Use Only.
- Personal Use: Free to install and run on your own personal devices for private, non-commercial, and educational purposes.
- No Distribution: Sharing, copying, publishing, or distributing this software to any third party is strictly prohibited.
- No Commercial Use: Using this software for business operations, revenue generation, or professional services is strictly prohibited.