My clients have hundreds of CDs for drivers, software, operative systems, etc. The CDs often "get lost" or walk away with somebody. What I'd like is a system to track ISOs that we create of the CDs for backup. I want a web interface where I can keep track of:
* software name (Example: Dynamic Pro 2000)
* software version ( Ex: Service Pack 2)
* License Keycode( Ex: HFHFD-IUYFF-IUEHF-JKHFF-98077 )
* Category (Ex: Accounting software)
* Client (Ex: Henry Parker & Associates)
* Location of ISO (Ex: \\isovault\ISO\accounting\[login to view URL] or ftp:\\username:password(at)[login to view URL] )
* Location of media (Ex: "Upstairs closet, inside black plastic box" )
* Verified ISO (yes/no, or could be set to now() when it is marked as verified )
* A master copy exists in the master vault (yes/now, could also be a timestamp of when it was added)
One client can have many copies of the the same software and I want to be able to keep track of all the individual licenses, although we only need one ISO copy of the CD as long as it's the same version. For example, I'd like the web interface to display all software licenses Henry Parker has of Dynamic Pro 2000 Service Pack 2, and each have a link to the ISO location (somewhere in the network). Additionally, I want to be able to upload the ISOs from the web interface, from my computer (browsing local drive), to that location on their network (either a share like \\isovault\ ISO or through ftp using <server>, <port>, <username>, <password>). Each client has a different location, some a share, some an FTP server, some both. There is a master vault with a copy of every single ISO for every software, for every client. The location of this vault is \\mastervault\iso\ and this can be hardcoded in the script
## Deliverables
I could suggest tables like this:
Customer: (cust_id, cust_name, cust_share, cust_ftp_server, cust_username, cust_password, cust_ftp_or_share )
Software: ( soft_id, soft_title, soft_version, soft_filename, soft_category )
Iso: ( iso_id, soft_id, cust_id, iso_license, iso_location, iso_media_location, iso_verified, iso_master_copy )
However, you may, of course, use your knowledge in creating the best database you can design.
The web interface should be able to add/edit/remove customer, add/edit/remove software, add/edit/remove ISOs, show a list of customers, show a list of all software, licenses and ISOs for a client (with links to edit those or download the ISO file). Basically, the focus of this little script is organization of media and backup of media. I welcome suggestions as to how to make this better.
The web interface should allow to upload not only to the client's iso vault, for also to the master vault. Always the uploads are from Local Harddrive to some kind of share/ftp. You should also be able to see a global view of all ISO stored in the master vault, and open a page from it that displays which clients have copies of which ISOs
The web interface does NOT need to include login/security features to access the script itself as this will be integrated to a website that already has that.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must include installation scripts to create databases.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
PHP 4.3.8+, MySQL 4.0+, Linux. All web interface code compatible with Firefox 1.5 and Internet Explorer 6 SP1.