Project advice?

Soldato
Joined
18 Oct 2002
Posts
10,951
Location
Bristol
I want to build a website for a specific task and don't really know where to start. Here's what I want to do:

  • Allow users to upload a large image, typically 10MP+ (ie larger than screen resolution).
  • Users then need to be able to pan around and zoom in and out of the image with the mouse in a reasonable sized box.
  • Users need to be able to click on points on the image a dozen times with the pixel coordinates saved.
  • A simple calculation needs to be done with these coordinates and the result saved.
  • This clicking on points followed by calculation needs to be repeated a few times.
  • Finally the results of the calculations are plotted on a graph which can be saved/downloaded as an image.

This all seems doable with HTML5 and Javascript - but I've never used either before. Can anyone point me in the right direction or maybe there's already code written that can do all of this I can reuse?
 
Soldato
Joined
18 Oct 2002
Posts
15,411
Location
The land of milk & beans
Everything sounds pretty straightforward. The potential problems I see are the bandwidth/storage for those images and the generation of the graph images.

10Mb+ images will mean a lot of bandwidth and storage will be required for your server, which will not be cheap. Likewise creating an image from data is not a cheap operation in terms of processing power, so you will probably need one server to host the site and another to create the images for you, depending on estimated user load, obviously.

Regards to how to do it, you would need to use a server side language to take care of the uploading and image creation for you (something like Python, PHP or ASP.Net). A database for storage, either MySQL or MSSQL. And then Javascript for the zooming, adding of points, and possibly the calculation. Depending on its complexity you may want to farm that off to the server, although this will mean more processing power required. Any cheap host will be capable of hosting this for you, although I'd err towards a cloud host, such as EC2 or Azure for their better scalability.

I highly doubt there is any off the shelf package which will do this for you, due to your specific requirements. However there is nothing software wise which is particularly difficult, so would be a good project to learn to code with if you've got the time.
 
Last edited:
Back
Top Bottom