Project Description

Title: Image Uploading Tool


  1. Purpose

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 FTP server.  

This document states the requirements for the tool and the expected deliveries in regards to the project.  

  1. Requirements

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.

    1. Technology

Language: C# 2.0

Framework: .NET 3.0

    1. Design
    1. Test

The solution should come with an adequate level of unit tests.

    1. Error handling.

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.

    1. Formats

The tool should be able to read from : jpg, png, gif or bmp and output to png. 

    1. Configuration

The following elements should be configurable in the app.config file:

    1. Documentation

All code should be adequate documented.  

  1. Deliveries

The delivery should consist of three elements:  

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.