Custom digital asset management tool - where to start - html

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).

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.

Related

How do I set up the architecture for a "big data" analysis project?

A friend of mine and I are in our senior year and will be starting a senior project soon. We had the idea to do a data analysis and data visualization project for it. Our project involves reading a CSV file that is updated every 2 minutes, parsing that data, then storing it in a database. Once that data is stored we want to run some analysis on it and provide an API through which we could access that data to visualize in some way. Our end goal would be to build an Android app that displays some of the raw data from the CSV and the analysis in a user friendly format. I talked to another CS Major and he explained that I would need a few different servers to accomplish this: One for the storage, another for analysis, and another for some type of queue that would make sure things don't get screwy while we are doing scraping and analysis. The problem is, I don't really know where to start with this. I've done some work with a SQL database before and a PHP front end, but nothing with multiple servers. I've heard of tools to use with big data projects like Hadoop but i'm not exactly sure where it fits in. If someone could point me to a resource of some kind to explain, or explain themselves, how I would start to structure this kind of project, that would be awesome!
Since you don't have much experience with these things you'll probably want to look at projects like Cloudera. Specifically their resources page has a nice set of videos and articles.
Another source of solid information (that I personally use) is by clicking on an Stack Overflow tag and selecting the votes option. Many good questions on a plethora of big data topics already exists.

ASP.NET MVC with MySQL as a framework choice for a website

I want to learn ASP.NET MVC, at the same time creating a website project that I have in mind.
The website I'm thinking of would be like displaying a list of pictures based on user's selection, by category, etc. So there will be drill-down on the links. Obviously, the list will come from the database.
Would MVC + MySQL be a good framework for this?
I am a C# programmer with web forms. Just want to learn a new technology.
It's not the gear, it's the programmer. It doesn't really matter which DB or approach you choose, as long as it suits your needs.
Good luck on making the foray into MVC. Once you get over the initial learning curve of understanding routing, controllers, actions and viewmodels you'll see the benefits.
MySQL, and most modern database platforms (relational or otherwise) for that matter, can handle your straightforward requirements of storing simple text data and associated blob objects.
While you're in a learning mode, though, I'd also take the opportunity to learn about interacting with a cloud-based blob data store which are more appropriate for unstructured binary data. My preference is Amazon's S3, but Azure and others exist, to store the binary image data. I would still store the transactional data in the relational database and MySQL would do a fine job there. (Amazon's RDS is MySQL 5.1 in the cloud for this too if scaleability is a requirement...)

I have a website with CMS. Can I use Drupal to build a secondary CMS without changing the primary one?

I like taxonomies in Drupal and thinking about building a CMS on it for a website that has been online for years. I'd like to leave the database AS IS (it's mySQL) to make sure the old CMS works as well - some people who use it aren't willing to learn new stuff. The website in question is a products catalog and I'd like to extend it to also manage orders, inventory, samples and QA documentation.
It seems that using two databases - one for drupal itself and the other for data - has other pros as well. It's like separating model from view.
I'm not a frameworks kind of guy - I rather like to do things from scratch employing only minimal number of dependencies and intermediary layers. I like the Drupal's approach and appearances though.
Is Drupal the right tool for the job? How easy is it to use it with existing database without importing all the data into drupal's db? Am I going right direction? Thanks a lot!
I think it is nearly impossible to reuse the existing database as is with Drupal.
If you still want to use Drupal, there is a rather sophisticated module to help moving the data to a database Drupal will like: http://drupal.org/project/migrate

How to integrate Visual FoxPro w/ MySQL for eCommerce website?

I'm working on an eCommerce website for a small merchant. This merchant uses Opera (which is based on Visual FoxPro) to manage his in-store inventory, and would like the online store inventory to reflect the in-store inventory.
I'm guessing that my first step is to set up a way to regularly transfer the information from the VFP database to a MySQL database on the website's server. Is there an established process for this? Am I even approaching this problem from the right angle? I've heard a lot about ODBC, but am unsure as to how to implement it or if it's what I'm looking for in this situation.
If it wasn't obvious by this point, I'm in over my head here, and would appreciate any and all advice you may have, including links to articles or tutorials that can help improve my general understanding of all the moving parts here.
Thanks much.
Co-worker developed synchronization process between VFP and MSSQL2008. WCF service which took input directly from VFP.
On other project - as far as i remember, when we tried ODBC .NET data adapter, it had problems with encodings and foreign languages. That's why we used COM+, serialization for communication with .NET.
But it seems to me you are using PHP (eCommerce=>Drupal=>PHP) so you are in completely different situation.
In your case, i would start with checking out if Opera (i guess it's this Opera) provides built-in export and eCommerce provides built-in import. Mostly because it might be tedious work to sync data manually from 2 apps coded by someone else. Then i would research if i/o can be joined and automated (something like scheduled task on win environment). Unfortunately, can't help much more because i'm unfamiliar with those tools, products and technologies.
Anyway - it seems to me like quite hard and dirty task and i wish you good luck. :)
Depend on what is that you are using to implement the website.. in general it is pretty easy with ODBC (In Java , I did it using the jdbc-odbc bridge)

Porting MS Access application

I have been asked by a friend to help him assess a number of quotes for porting a desktop application based on MS access and VBA to a web based app. The application seems to have a relatively large amount of business logic coded into the VBA.
My question is very specific - are there any good tools or resources out there which could assist the porting from access, rather than doing a complete re-write?
The end technology used for the web app does not matter hugely, but would ideally be as mainstream as possible.
You may explore the possibilities offered by Sharepoint. It may help you get the data accessible online but how well will that work depends also on how much VBA code was used in the Access application.
There are some tools around that pretend they can convert MS Access to PHP/ASP websites like DB Forms, but I haven't tried them and they usually only convert the visible part of the app and not the queries and VBA.
They can be helpful to get started though.
Random thoughts
The VBA tends to be the biggest issue.
Moving to ASP.Net will take time and for that you are faced with difficult choices:
transfer all code to the ASP.NET to just get it working
rethink the structure and do a proper ASP.Net implementation from scratch.
I'd prefer the first one: just try has hard as possible to get results fast.
Use SSMA to move the data to SQL Server (unless you want to keep Access as the backend).
Make the forms look the same as on your existing application (or at least have the same function), port the VBA to VB.Net (or C# if you feel like it) form by form, module by module and test that they work as you go along.
Don't try to refactor or make things better at this stage, the point is to 'slap' the old code on the new 'system' and make it bark as it used to, not better, not worse.
Only then can you start refactoring and improving using the new tools at your disposal.
I'm saying all this assuming that there was nothing terribly wrong with the old app and that it just needed to be ported for online consumption.
If the old app was defective and wasn't fulfilling its role, then more emphasis should be placed on re-thinking which parts should be translated and which one should be reworked.
At any rate, you need to have a detailed action plan and a review of the current code and functionalities and try to limit as much as possible your expectations for the first version of the new system: avoid letting everyone input their wishes or your project will become horrendously difficult.
Concentrate on the minimum needed to achieve a certain level of functionality that will satisfy your users, then build on that.
There may be some tools to some of the basic stuff, like to upsize to a different database or maybe the look and text boxes of the forms, but converting what sounds like a lot of VBA code, not so sure.
Is this an intranet/local network type of web app or are you putting it out on the internet? Security will become a major difference between this and your Access app.
Make sure they understand Access/VBA so you can maintain the business logic that has been over the life of the Access app.
Convince your friend to stop/slow any development on the Access app to prevent the company from aiming at a moving target. This may not be realistic, but really needs to be considered.
Is there a reason why hosting the app on Windows Terminal Server would not suffice? This means zero changes to the app, no reprogramming cost and no danger of losing crucial business logic. If you use the Citrix extensions, you can run it in a web browser (though I guess that only works with IE -- I've never used them). But the RDP client comes in versions for Mac and Linux as well as Windows, so you can basically support anybody as long as they install the RDP client for their OS.
Yes, it's more installation on the client end, but it's a helluva lot cheaper and easier on the development and avoids the problem of losing important things coded into the Access app.
Of course, supporting large user populations on WTS/Citrix can get expensive and if the Access app is in need of re-engineering, anyway, it can change the balance. But it's something that you should consider. It's really easy to set up WTS, in fact, and provisioning a server for it basically a matter of adding RAM and Internet bandwidth (though RDP is really efficient to begin with).
One key mistake many people make when trying to run an Access app on WTS:
YOU MUST SPLIT THE DATABASE (front with forms/reports/etc., back end with data tables only), and each user must have their own copy of the front end (stored in user profile on the WTS, or in a folder on your WTS server's data partition with appropriate permissions assigned to the user groups authorized to use the app). Tony Toews's front-end updater is very useful in this context, and explicitly engineered to work in a Terminal Server environment.