0

I work at a production studio that has hundreds of assets (2D images, videos, 3D models, etc) that we use over and over again in our library. Right now it is just a folder on our server, but because I am a particularly adventurous person I am looking to create a database/application that allows users (approximately 20) to search for and "grab" items from our internal network. I would also need a way for them to upload items to the database - every project we work on we're creating new assets for the library and it grows daily.

I'm a very amateur programmer - mostly working in Javascript and HTML, so what I'm looking for is advice anyone can give me on where to start. From the research I've done I imagine that I would build a MySQL database to store all of the information, and then create an HTML site that all of the users can access via their web browser as the GUI. I know a little bit of Python and really like it so I'm thinking I'll use Python as the back-end and to run MySQL.

I'd love to hear any advice the community can give me! I plan to do this on zero budget, so open-source all the way. The closest tool I can think of to what I want is Adobe Bridge - which I love but which isn't quite what I'm looking for and doesn't have robust enough searching and tagging (and doesn't support anything but images and video).

Spencer
  • 1,931
  • 1
  • 21
  • 44
  • What you are describing is a fairly complex system requiring significant experience and skills in lots of areas: database, user-interface, data management, web programming, HTML, CSS, Javascript... I hate to be negative but this is too much for a very amateur developer to tackle all at once. I applaud your enthusiasm but would suggest you work on this in very small pieces, and be prepared to continually rewrite sections as you learn new skills. Good luck. – Jim Garrison Oct 23 '13 at 03:37

1 Answers1

0

As a database MySQL isn't particularly suited to this task. The challenge you'll run into is that users will want to access the files in a folder like structure, but for performance reasons you probably will not want a parent-child schema (at least not using InnoDB - I can't speak to the other storage engines). It is certainly possible to create a performant pc schema on InnoDB, but it is not a challenge to be undertaken casually.

If you have access to MSSQL 2012 it makes a tremendous effort at solving this exact problem http://technet.microsoft.com/en-us/library/ff929144.aspx

I love recommending MySQL, but in this case I'd recommend a different database choice.

  • Good to know, what would you suggest then? – Spencer Oct 23 '13 at 06:16
  • @Spencer - I think that JimGarrison's advice is quite solid. You mention that you will be handling hundreds of assets - and if the number is truly less than a few thousand then you could make a good effort with some casual development. I'd probably suggest starting with a user experience that doesn't replicate a file tree structure and is instead flat, or at most one level deep by category or asset type. Then once you have the first version working you could go back and explore some options for attacking the folder tree part of the problem. – Courtland Caldwell Oct 23 '13 at 14:20
  • Hey Courtland, sounds like a good way to go. All I want this program to really do is allow users to meta-tag the assets and then brows/search them. I could use Python to then copy the asset out of that folder and into our project folder when they actually want to use it (we make duplicates for each project anyway). What would I use to index adn search those folders then, XML? – Spencer Oct 23 '13 at 21:52
  • I don't have a particularly good answer. One option is to use Sphinx, which is incredibly powerful but rather advanced to configure. ISAM tables support full text indexing but have their own drawbacks. I think at least one of the python frameworks has integrated searching of model attributes, but I'm not familiar enough with the language to offer advice on Python. – Courtland Caldwell Nov 05 '13 at 00:17