--TLDR Version--

I'm a sysadmin, not developer, and was defaulted to as the Intranet admin (basic updates/changes). I'd like to re-write it and will be learning as I go (I know it's going to take a long time but I have the time right now). Currently site is built on XHTML 1.0 Transitional and ColdFusion (SQL 2005 and IIS 6.0 back end). I would be moving to HTML5 and CSS3 to make things more efficient and manageable however I'm not sure what other (is frameworks the right word?) I need to look at to store data on the server (people directory, news articles, etc). Is there something simpler than CF/SQL?

--TLDR Version End--

I'm our companies (about 150 employees) Sysadmin and due to downsizing have been defaulted to for being the Intranet admin (I guess because I learned basic HTML in school and like figuring stuff out). I don't have a problem with this (and actually enjoy doing it) however I think it's in dire need of a re-write. Now I'm not a programmer but I think I have a good understanding of when something is done properly (and elegantly) and when something is kludged together and I believe our Intranet is the latter. Currently it's built on XHTML 1.0 Transitional, ColdFusion, and a bit of CSS.

Why I think it's kludged?

Code is horribly messy (no consistent indentation, comments sparse (and improperly declared), confusing nested functions, etc). Like I said I'm not a programmer so maybe it's supposed to look like this but I really don't think so.

Certain functions could definitely be implemented more efficiently.

  • Our breadcrumb navigation is static on each page. (Eg, Home >> Departments >> Engineering >> Procedures.). One of the groups in our company just changed names and I had to update it on every page. This means every breadcrumb entry which referenced it had to be manually updated.
  • There are files hosted on our intranet for people to download (presentations, forms, spreadsheets, etc). They are just static (no CMS is required). For people to make documents available they need to connect to the web server via Explorer (shared drive), copy files to certain folders (they also need to be named a certain way or else they won't show up), and make sure permissions are properly set. The pages that show these are "dynamically built" (this is what the previous developer has written on them) and they generate a link to the file. Couldn't a simple drag and drop interface be incorporated directly on the page so users who have the permission to upload just drag files from explorer/desktop to the browser? (Don't need a how-to on this, just explaining situation).
  • The actual web server directories are all over the place. Nothing is organized.
  • It uses ColdFusion -- I'm not bashing the platform (and this is one of the places I'm looking for suggestions on) however I think it's overkill for our Intranet. (or prove me wrong). From what I've learned, CF is used to connect to a backend SQL database. Are there simpler ways?
  • The site only plays nice with IE (this can't be a good sign)

Requirements

Like I said before - the primary use of the intranet is to have links to files and to other websites. Other features are as follows: - Needs to authenticate users using pass-through credentials (Only IE seems to do this properly, FF, Chrome need to have users re-enter it) - News - Any user can submit a news item but they are approved by certain users - News archive - search old articles. - People directory with Org Chart (this is searchable) - Various forms to submit to email addresses - Intranet suggestions from users

I know the news and intranet suggestions get dumped to a SQL database so I need some way of storing information and retrieving it.

The Org Chart is manually updated - can this be generated from Active Directory? Users are automatically directed to their applicable site (Canada or US) depending on where they are employed (this is flagged from the People directory - users are tagged either or) (btw, not looking for a how-to on this, just rambling)

Also not looking for a COTS product (we have too many of those which are all poorly implemented). I really don't think this needs to be as confusing as what it is.

Hoping I can get some direction here!

Thanks