Reputation: 2400
I've been given a project which involves building a photo library for our company intranet and I'm not sure how best to approach this. I'd be very keen to hear your opinions about how I should tackle this. I also apologise up front if my question is inappropriate for these boards since I realise it may be subjective but I don't know where else to put it?
THE PROBLEM:
To start off, we'll be looking to host in the region of several hundred thousand images of various sizes and it has to be a web-based solution. I'll also be developing in .Net / MS Sql Server. Ideally I'd like to incorporate this into Umbraco CMS since most of our administrators are familiar with this interface. The data doesn't necessarily have to be stored within the CMS - it merely needs to be editable and allow users to add/delete items from within it.
My biggest concern here is performance. We don't want users waiting minutes for results. Ideally we want them returned in a matter of seconds.
Basically I want to emulate something like alamy/istockphoto. I want each image to have an associated title, job number, project name, category, tags etc with a thumbnail and then of course a link to the raw, full image.
Just to clarify, some of these images are very large (1gb+ TIFFs). We also already have all the files on a separate file server. The role of this photo library should merely be to map the records in the database with the physical files, not to change the structure of the existing file system or anything like that.
MY PROPOSED SOLUTION:
I'm thinking the first task should be to create a database which will store all the default properties such as id, job number, alias, image file path etc. I'll then create separate tags/categories tables with a many-to-many relationship.
Once I've created the tables, I'll write some custom controls for the CMS that allow an admin to log in and add/edit/remove records from the database.
I'm then thinking of implementing Lucene.net to search through my records. From what I can gather it seems like a good API for getting fast results.
Is this a decent solution? I've never really dealt with many projects of this scale so I'm a bit confused about my options. If someone could just set me off in the right direction I'd greatly appreciate it. I'd also like to keep the solution as simple as possible.
Many thanks!
Upvotes: 0
Views: 124
Reputation: 6152
I would say you're on the right lines.
Upvotes: 1