Tag Archives: LAMP

Deploying files to our field technicians

One of the initial challenges my company faced early on was getting files to technicians. Our work involved creating large binary files that were not always friendly with email attachments.

The original solution for this problem was Afian File Manager, which worked rather well for our small company. The Afian solution had the following drawbacks, however:

  • Only one file could be uploaded at a time
  • Files made two long-distance trips; one to the hosted server, then one to the tech
  • Technicians would have to manually refresh the page to see new files
  • The file upload process involved invoking a file upload dialog in a web browser
  • The hosted server had storage & upload size limitations, and we had big files
  • Manually removing older files for older jobs was painful and slow

(Note that this was 2008, and Afian has improved quite a lot in the interim.)

As we continued to grow and business continued to hasten, these drawbacks grew more and more troublesome. While working on my own jobs, I used some of my downtime to work on a new solution I dubbed “Staffian”. Staffian solved the problems above in a few ways:

  • Locally hosted on our Linux machine, so files only make a single long-distance trip
  • Folders served internally via Samba to integrate well with a workflow in Windows
  • Fully Ajax-powered, so technicians would see file updates near-instantly
  • Leveraged a huge amount of storage that we already had
  • Automated archival and deletion of older jobs

As the tool grew over time, we added additional features:

  • Automatic access to a shared folder of common resources (e.g. software)
  • Automatic user management with password generation in one click
  • Logging user logins and downloads with a live-updating internal viewer

That tool served us very well over 6 years. Just before my departure, I was working on a full-rewrite of Staffian to modernize it further. I’ll write about that in a future post.

Technologies: Linux, Apache, MySQL, PHP (ie LAMP); Samba; Ajax