-
Notifications
You must be signed in to change notification settings - Fork 2
Challenge IWF
At IWF Web Solutions, we are building enterprise grade administrative software with PHP/Symfony. Customers are expecting some document management functionality: E.g. attach word files to business cases, and update them under certain conditions. Our current solution for this recurring requirement is a document entity that we store in the database, which allows to track different versions of a file and also have a "current" version, pointing to the actual files on the filesystem. This functionality is showcased in isolation in a simple demo repository: https://github.com/iwf-web/webdavdemo/ The drawback is that you have to download, edit and reupload, if you want to change a file. A better solution would enable editing the file directly. For MS Office, this is supported over WebDAV. Mission: Build a service that can be run in isolation, which can serve office documents via WebDAV, and showcase the usage from front end within the demo app (or something equivalent).
- Free choice of platform and components, but the proposed solution should work within our docker stack for the demo repository.
- Files should not be generally exposed, but access should be authorized via the demo app, which still "owns" all files.
- The filesystem contents should not be accessible through WebDAV links in general, but only the specific file requested over API
- Shared storage is possible, but it should not imply general access (which WebDAV servers provide out of the box)
- Versioning of demo app should be updated after a successful edit.
- Provide an example Edit functionality in frontend of the demo app.
- Don't build WebDAV INTO the demo app, but build a separate service that communicates with the demo app via REST API
- During edit, file should be locked
- Should run for MS Office documents on major browsers on win and mac without plugins.
- Server app as a container, which is called from the demo app e.g. to expose a certain file
- Modification of the demo app for API calls and frontend code for edit functionality
- showcase how the containers interact
Online Demo of IT Hit WebDAV AJAX Library (https://www.webdavsystem.com/ajax/) // this could be used as part of the solution too