Title: Image Uploading Tool
The purpose of this document is to
describe the perceived functionality required for an image uploading tool. This
tool is to be used for scaling and uploading images from a client computer to an
This document states the requirements
for the tool and the expected deliveries in regards to the project.
The image uploading tool is quite
simple, and is to be used by one of our customers to upload an image file from
her computer to an FTP fileserver.
The format of the source image file could be: jpg, png, gif or bmp.
Initially the customer drops one or more files into a directory, the [root folder], which she wants to upload to the server.
The tool will periodically check this folder and detect the presence of the new file(s). The customer can also – by right clicking a tray icon associated with the tool - initiate the image processing manually.
The tool now loads each image from the folder and scales it into three different sizes, based on the tool’s configuration. When the image is scaled the three resized images are saved as png images into a subfolder named “rootfolder/processed/[w x h] images/[origname_no_ext].png” – and the original image is moved into “rootfolder/processed/Scaled/”
When the images have been processed,
the tool connects to an FTP server and uploads the files onto the server
(default dir) in the above described subfolders. The tool writes a log
detailing the progress into “rootfolder/Log/[date].log” and awaits the
next new file.
The tray icon displays a notification on completion - stating success or failure.
Language: C# 2.0
Framework: .NET 3.0
The solution should come with an adequate level of unit tests.
The project should use structured
exception handling. All errors are written to log – And the tray-icon displays
success or failure in a balloon tip.
If one error is detected the process of handling the images is stopped. This error could arise both in scaling but also in uploading. An error could be, if an image with the same name already exists.
The tool should be able to read from : jpg, png, gif or bmp and output to png.
The following elements should be configurable in the app.config file:
All code should be adequate
The delivery should consist of three
1. Initial Project plan – Detailing estimate and plan-of-attack.
2. Design – brief design description detailing the proposed solution.
3. .NET solution (including test
project) and instructions on how to execute the solution.
These three deliveries should be made
separately before starting the next phase.