JsViews and JsRender Use Case... August 23, 2012
The technological philosophy behind the creation of this application is this: Users can log in, add clients, environments, credentials at will. The updates are seen almost immediately to other users logged in, through ajax polling. And an extensive history is kept so we can keep track of who updated what, and what it was before. Passwords are encrypted and viewable upon request.
Some definitions... environments are like, production, staging, dev. Credentials can be username / password for remote desktop access, database, the CMS admin, FTP, etc.
Also listed for each client is their subversion URL if they have one, the version of the development environment to use, which database and version, and what CMS and version they are using, if any.\
Here is a picture of it:
So here, the client is Delphic Sage (for our website, etc), none of these pieces of data are real. There are four environments.
Data structure is as follows:
Client: Active, Name, Host (Rackspace, Self hosted, etc), Software list, comments, Environment list, History list
Software: version, DB reference to software (type (cms, devenv, database), name, versions list)
Environment: type (free text, usually production, staging, dev), url, credentials list
Credential: username, password, server or url (could be localhost, server name, url to admin login etc), comment
The whole thing is really cool. Maybe I'll put up a sample of it somewhere, but our app will be run internally of course. I'll post another screenshot when the styles have been updated! The data structure I created in MongoDB is pretty much literally what you see on screen, and it taught me a lot about MongoDB. I also wrote a lot of helper methods to shorten the code a lot when dealing with MongoDB. The back end is my Node.js web server (what is running this website). I can't think of anything else to add at the moment, so that means it might go into production very soon.
I'll make follow up posts with some code.