RaptorSync

April 23rd, 2010

RaptorSync (pronounced Raptors Inc) is a fictitious company created for the purposes of a term project for my Project Management class.

We were tasked to form a Request For Proposal (RFP) Response for a hospital file tracking system.  The project insinuated a preference to adopt Radio-Frequency Identification (RFID) and to establish the foundation for implementing a completely digital file system.

Through the term our company–RaptorSync–grew a personality–complete with history of success in bar-coding, a logo, an executive board, and other weird facts.  To cap it off, I created this imitation Wikipedia page for the company: http://en.wikipedia.org/wiki/raptorsync. In under an hour I created this “external” resource that really set the tone introducing our company and presentation.  This was quicker than building a real website and equally effective.
RaptorSync Screen Shot

Asset Management

December 29th, 2008

sabre_logoNobody needs asset management like Sabre Systems, Inc–a hot-shot, technology enabling consulting firm. Sabre Systems is fueled by the  magic of technology in that they have found a market in collaborating with their clients to inject technology to solve business problems and to build and maintain competitive advantages.

Due to the nature of their business, the firm has “assets”–computers, servers, notebooks, etc–scattered across the country which has become a nuisance to manage.  In an effort to phase out the glorified spreadsheet that logs these assets, they’ve asked a group of four rock stars from Temple–including myself–to build a web-based tool to manage each assets’ information.

About the Tool

The information the tool manages include the following:

  • locations,
  • status,
  • contact, and
  • purchase information–

and specifically how each item relates to an asset.

Management is a word our group has been using to describe CRUD operations–Creating, Reading, Updating, and Deleting.  To put it in perspective, some of these functions would include listing assets of a category, assigning an asset to a contact. archiving, and creating an asset, etc.

About the project

All the information about an asset will be stored on a database and a web application will be built to interact with that database.

Each asset will have basic information–an ID, category, description, owner, and status–as well as some additional information including purchase info, pictures, warranty info, and file attachments, etc.  The application will also handle admin levels–restrictions to certain functions–and event logging.

The value of this project is that our group is working through the System Development Life Cycle (SDLC)–analysis, design, development (our current state), implementation, and minor to minimal maintenance–to develop a system.

Pushing the scope of class

This is what this project is all about.

From the very beginning we have found ourselves doing more than just building another web-application–like the ones for class..  Part of our planning phase included creating a development environment that mimics Sabre Systems’ production environment–which they happen to be a Microsoft shop.  To support all the functionality–including category assignments and change logs–our database has become exponentially more complex than any other database any of us have worked with before.

Here’s some more things that I’ve learned about and implemented in practical situation:

Database Recursion

This almost made my head explode, but I understand it now.

For the non-database people, recursion is used to create a “tree” of information; for example, consider categories with subcategories where a subcategory has all the same attributes as its’ parent category–possibly including another subcategory.  This is probably more confusing, so we’ll save this concept for another day.

We are using recursion to manage the categories that an asset can be assigned to–ie Desktop PC > Dell > Optiplex > 745 > Asset # 234.

Microsoft SQL and Microsoft Management Console (MMC)

In class, we learn Oracle at the command line.  For non-database people,  MS SQL, Oracle, and mySQL are all different flavors of databases–they are fundamentally the same with slightly different keywords and syntax.

MMC is a graphical user interface (GUI) that Microsoft created to interact with SQL (Access on steroids)–you can drag and drop different boxes to create relationships and even to create queries.  Think of MS-DOS (the command line) compared to Windows Vista (the GUI); it’s kind of a pain at first, but ultimately it can help.

Nested Queries

A nested querydoes 2 things: (1) it runs a query to find a variable and then (2) runs another query using that variable.

We are using nested queries to update our bridge tables that are logging changes.  We run a SELECT query to find the id of the record that needs updated and then an UPDATE query to update that record.

This is covered in class-briefly; but it’s nice to use this in a practical situation.

Left, Right, and Outer Joins

In class, we are taught implicate inner joins.

When values are called using inner joins, only values that are joined will be returned. Let’s say we wanted to call all assets and their status.  If we used an inner join, only assets that have a status assigned to it will be returned.  Now every asset should have a status–so it should not be an issue.  But, let’s pretend something went wrong and an asset lost its status assignment.  Using a Left or Right join you can populate all the assets-regardless of whether or not they’re assigned a status. Left and Right joins are functionally the same; the difference is in the order that they appear in the query.

If you used an Outer join in this example it would show all assets (regardless of whether or not it has a status assignment) AND it would show all status options (regardless of whether or not the status option is assigned to an asset).  For this project we’re using only Left and Inner joins.

Stored Procedures

A stored procedure, in layman terms is a database query saved with the database; it’s good for separating the business logic from an application’s user interface. Sabre Systems prefers stored procedures over queries to interact with their database for two reasons (two that I’ve been able to identify):

  1. The cascading effect of any updates–so if they decided to add any fields or alter the outputs they only need to adjust the stored procedure.  Alternatively without stored procedures, they would be updating every single instance the application calls the database.
    I use the word cascading because a similar and much simpler concept to understand is Cascading Style Sheets (CSS) where you can adjust the style sheet of your website to adjust the output of your entire website.
  2. If they decide to rebuild an application–let’s say Sabre Systems wants to integrate two existing systems–they only need to rebuild the “view level”–the user interface.   Ideally with the stored procedures saved in the database they would not have to rebuild the business logic that is running the application.

Needless to say, I’ve stepped up to be the resident database nerd/expert.

Navigating the System

I like PowerPoint.  Here’s a little presentation Taahir and I put together to show Sabre Systems.  Of course, we explained everything as we walked through this, but you should be able to pick everything up from the text.

Download the PDF: Asset Management – Phase I



What to expect

I’ve been playing with words.

Our group has been calling this an asset tracking system and today I have decided to call it Asset Management.  I’ve seen some astonishing correlations with this project and some other information “management” tools.

Look out for a future article detailing the relationships between Asset Management, my Project Management Tool (Planning My First Plugin), and Content Management.

The theme is [insert object here] Management and the topic is Management Information Systems (MIS)–the goal is to close the gap and explain these less than obvious relations..

More more information on Sabre Systems:  http://sabresystems.com/

Planning My First Plugin

December 24th, 2008

WordPress plugins open the doors for advanced features and functionality.  Some of the plugins on my site now include:

WordPress creates a set of “hooks” that can be used by scripts–”plugins”–to interface with the site.

My plugin is going to be a Project Management Tool that will allow teams to use the wordpress admin console as a center for their project task lists. With no further ado I created a dossier reviewing the planning phase of the plugin:

See the PDF: Project Management



The History of Web Design

December 15th, 2008

Here is an archive of my first 5 websites. As you look through them, you will notice serious progress from one version to the next–I think so at least. My goals are always to build a fun and interesting website and I think that’s representative of what you see.

Version 1

This site was built for the CIS Computers and Applications course. It looks bad, but I got full credit for it. Check out the awesome rollover buttons–that was extra credit…

version-1

Version 2

This site was innovative in how the site navigation worked. On top of a few different pages, there were “tours” that users would walk through and be presented with information I wanted them to see–think of it as a glorified PowerPoint. Though, the design is bad, it has a pretty cool photo gallery in one of the tours.

version-2

Version 3

This was the first wordpress implementation that I attempted; it was kind of a disaster. I was trying to do some advanced things that I was not ready for; such as, using posts as news feeds, using a sidebar that picked a random post containing a quote, and using posts to operate the picture of the week. Most of these features actually worked, but I never worked out some of the details–how I wanted the different templates to work.

version-3

Version 4

This was a transitional site. Even before I started building it, I had Version 5 in mind–think of it as a “vista”. I had my heart set on building a wordpress theme, but I needed to put something presentable up on my URL. I was trying out some of those web 2.0 design concepts–I think I did it wrong…

version-4

Version 5

This is what you are looking at now. As mentioned before, I wanted to balance professionalism with personality. Ideally, this is a site can be used for two purposes: (1) I can share it with potential employers via business cards and my resume to add value to my application, and alternatively (2) I can share my knowledge and contribute to the internet.

version-5

What is wordpress?

December 12th, 2008

WordPress is an application that creates an interface that users can access from the internet to manage their website.

wordpress-logoWhy this matters

In the past to update your website, users would use a tool such as dreamweaver to create, edit, add, or delete content and then create a FTP connection to transfer the updated files.  Learning the basics of dreamweaver can take a fair amount of time-thus discouraging the average person from contributing to the internet.

WordPress creates an admin console that is extremely user-friendly to use and is accessible online-available anywhere your website is.  This empowers the average person–having very limited knowledge of html–with the ability to create and manage content on their very own website.  With increased accessibility you can manage your website from anywhere; right now for example, this article is being posted from a public internet connection at the Apple store in King of Prussia.

This technology enables users of all skill levels to share their knowledge with the world–making the internet that much richer!

How wordpress works is another question for another day; we will be revisiting this..

My question is “All things considered, is wordpress an innovation or an enabler?”  Is it means for productivity, does it create a platform that allows innovation, or is it a health mix of both?