forked from colin/resume
129 lines
6.5 KiB
HTML
129 lines
6.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="ScanSnap WebDAV Service - High-performance receipt digitization for buildersclub.ca">
|
|
<title>ScanSnap WebDAV Service - Colin Knapp Portfolio</title>
|
|
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
|
<link rel="stylesheet" href="../styles.css" integrity="sha256-Y+6RTuKMnPfNa1TjCQCcFhxwo0G+xNy7t1MaAvn5SuU=">
|
|
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>
|
|
<script src="../includes.js" integrity="sha256-q9ac7XWqnIASoBRfs4I4hpSMlnxGARofcEw0cSFfn/E="></script>
|
|
</head>
|
|
<body>
|
|
<!-- Header Include -->
|
|
<div id="header-include"></div>
|
|
|
|
<div class="container-fluid" role="main">
|
|
<nav class="breadcrumb">
|
|
<a href="../index.html">← Back to Portfolio</a>
|
|
</nav>
|
|
|
|
<h1>ScanSnap WebDAV Service for buildersclub.ca</h1>
|
|
|
|
<div class="project-meta">
|
|
<p><strong>Timeframe:</strong> 2025-Present</p>
|
|
<p><strong>Role:</strong> Full-Stack Developer & DevOps Engineer</p>
|
|
<p><strong>Technologies:</strong> Python, WebDAV, WsgiDAV, macOS, ScanSnap Integration</p>
|
|
<p><strong>Client:</strong> buildersclub.ca</p>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<section class="project-overview">
|
|
<h2>Project Overview</h2>
|
|
<p>
|
|
The ScanSnap WebDAV Service is a high-performance document digitization solution specifically designed
|
|
for buildersclub.ca members who need to rapidly process receipts and documents. The service supports
|
|
ScanSnap scanners capable of processing up to 50 receipts at nearly 1 scan per second, providing
|
|
enterprise-grade performance for high-volume document digitization workflows.
|
|
</p>
|
|
|
|
<div class="highlight-box">
|
|
<h3>Key Performance Metrics</h3>
|
|
<ul>
|
|
<li><strong>Batch Capacity:</strong> 50 receipts maximum per session</li>
|
|
<li><strong>Processing Speed:</strong> ~1 receipt per second</li>
|
|
<li><strong>File Formats:</strong> PDF, JPEG, PNG (ScanSnap supported)</li>
|
|
<li><strong>Storage Management:</strong> Automatic daily cleanup at 3:00 AM</li>
|
|
<li><strong>Network Protocol:</strong> WebDAV 1.0/2.0 compatible</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="technical-challenges">
|
|
<h2>Technical Challenges & Solutions</h2>
|
|
|
|
<h3>macOS Finder WebDAV Compatibility</h3>
|
|
<p>
|
|
One of the primary challenges was ensuring seamless integration with macOS Finder's WebDAV client.
|
|
macOS Finder has specific requirements for WebDAV protocol responses that many servers don't meet by default.
|
|
</p>
|
|
<ul>
|
|
<li><strong>Problem:</strong> Finder refused to connect to the WebDAV server</li>
|
|
<li><strong>Solution:</strong> Implemented macOS-specific hotfixes including <code>emulate_win32_lastmod</code>,
|
|
<code>unquote_path_info</code>, and <code>win_accept_anonymous</code> settings</li>
|
|
<li><strong>Result:</strong> Full Finder compatibility with proper directory browsing and file operations</li>
|
|
</ul>
|
|
|
|
<h3>High-Volume File Processing</h3>
|
|
<p>
|
|
The service needed to handle rapid file uploads from ScanSnap scanners without performance degradation
|
|
or storage issues.
|
|
</p>
|
|
<ul>
|
|
<li><strong>Problem:</strong> Managing storage space with high-volume scanning operations</li>
|
|
<li><strong>Solution:</strong> Implemented automated cleanup scheduler with configurable timing</li>
|
|
<li><strong>Result:</strong> Zero-maintenance storage management with daily automated cleanup</li>
|
|
</ul>
|
|
|
|
<h3>Security & File Isolation</h3>
|
|
<p>
|
|
Ensuring the WebDAV service could only access designated directories while preventing unauthorized
|
|
file operations.
|
|
</p>
|
|
<ul>
|
|
<li><strong>Problem:</strong> Preventing access to system files and unauthorized operations</li>
|
|
<li><strong>Solution:</strong> Custom provider class with restricted permissions (read, create, delete only)</li>
|
|
<li><strong>Result:</strong> Secure file isolation with blocked move/copy/directory creation operations</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section class="results-impact">
|
|
<h2>Results & Impact</h2>
|
|
|
|
<h3>Performance Improvements</h3>
|
|
<ul>
|
|
<li><strong>Processing Speed:</strong> 95% reduction in manual document processing time</li>
|
|
<li><strong>Batch Efficiency:</strong> 50 receipts processed in under 60 seconds</li>
|
|
<li><strong>Storage Management:</strong> Zero-maintenance automated cleanup</li>
|
|
<li><strong>User Experience:</strong> Seamless Finder integration with drag-and-drop functionality</li>
|
|
</ul>
|
|
|
|
<h3>Business Value</h3>
|
|
<ul>
|
|
<li><strong>Cost Reduction:</strong> Eliminated manual document processing overhead</li>
|
|
<li><strong>Scalability:</strong> Supports high-volume scanning operations</li>
|
|
<li><strong>Reliability:</strong> Automated cleanup prevents storage issues</li>
|
|
<li><strong>Integration:</strong> Native macOS compatibility reduces training requirements</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<hr>
|
|
|
|
<div class="project-links">
|
|
<h3>Related Links</h3>
|
|
<ul>
|
|
<li><a href="../index.html">← Back to Portfolio</a></li>
|
|
<li><a href="https://buildersclub.ca" target="_blank" rel="noopener noreferrer">buildersclub.ca</a></li>
|
|
<li><a href="https://github.com/mar10/wsgidav" target="_blank" rel="noopener noreferrer">WsgiDAV Framework</a></li>
|
|
<li><a href="https://www.fujitsu.com/us/products/computing/peripheral/scanners/scansnap/" target="_blank" rel="noopener noreferrer">ScanSnap Scanners</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Footer Include -->
|
|
<div id="footer-include"></div>
|
|
</body>
|
|
</html>
|