Inventory Tracking

Status: ✅

RATS, or Return Authorization Tracking System, is a way for us to handle RMAs.

The site uses modified TOES code (although cleaned up significantly) to track returns and warranty claims (and depending on which type of claim it, this determines which part of the U.S. the warehouse will be shipped). It categorizes where they order is going, the status of the order, which company the return belongs to and customer information. Nothing too complicated, although I’m contemplating integrating it with our website so customers can check the status of their returns online.

Welcome screen

Initiating a new return

Viewing the list of returns

Viewing the overall history of returns AND warranties

The detailed look of an item in history

The detailed look of a return item

An Overseas Update

Status: ✅

Kuala Lumpur represents a new adventure for me, and a new project. The goals were simple: update/clean the systems, upgrade the internet connection, give pseudo-voip capability and try to get them on the VPN.

Before leaving the states I had to make sure several things were in order. First, I needed to order the rotuer I was going to bring out with me. Next, I needed to make sure KL had arranged the appropriate DSL upgrades, and last: pretest the connection. Before leaving L.A. I had the opportunity to test the new router and have it connect to the VPN. All is good to go.

After arriving I solicited the help of a co-worker and we started updating the computers (making sure all service packs and updates were installed), and installing Firefox, Thunderbird and Skype. In the I.T. market we acquired several headset and webcams, hooked them up to appropriate managers’ computers, and linked managers in several offices together. Next I set forth trying to get the router setup. Part of my planning included making sure all voltages were accounted for, so when I arrived in KL an adapter was awaiting me. Unfortunately, either the adapter failed or the router was damaged in transit. We went into the I.T. markets and ordered a new, albeit lower grade, router. A few days later it arrived and I quickly got it installed. Several things needed to be changed with the ISP for the router to get on the VPN, so I had to connect it to the VPN remotely several weeks later. Alas, doing I.T. overseas is indeed a learning experience!

ERP Time

Status: ✅

Currently our ERP setup is a nightmare, both in stability, features and especially administration. A new solution is in order. After collecting goals/requirements we have begun researching, and even started testing some platforms. The “other half” of the IT department and I installed and tested Compiere today on a spare (albeit low performance) rackmount. For those of you (most) who don’t know, Compiere is an ERP solution that ties together all the faucets of a company under one hood. We are impressed with Compiere, but installation is a bit on the complicated side.

In the end, we opted for Compiere to be managed and hosted externally, yet we would still administer many aspects (regarding user interaction).

TOES

Status: ✅

Toes, aka the Temporary Order Entry System, is a, get this, a temporary ordering system to buy some more time while the full ERP is designed and implemented. Because we grew so quickly, orders needed to be put in a temporary zone, then moved somewhere else (apologies for being vague, you can understand why). Myself and a co-worker hacked up a temporary holding zone for the orders. It allows New Invoices, to View Invoices, whatever is In Queue, Voided and Search. The order entry page is auto-loads prices and things from the database, so totals are pulled out of the database and added up automatically. We ultimately entered well over 1500 invoices into TOES before the ERP was implemented, and besides a few odd hiccups, it was pretty stable. The UI doesn’t look all web2.0-like, but for an intranet project, it didn’t need to.

Adding a new invoice

Auto-fill out feature

Order in-queue, ready to be transferred

Viewing an invoice

Orders Taken (already moved)

Must have search

Track My Hours Please

Status: ✅

Initially all CSRs were hired as temps, which means they had their own timesheets. Some new people have been hired as full/part-time employees, so we need to handle their timesheets – plus, several people (including myself) are paid on an hourly basis. Perfect time to setup a Timesheet.

Since we are still small, with no ERP, and I don’t have time or desire to write a timesheet app, I decided to do some research. I found a few on SourceForge, but I wanted something uber-simple to use and uber-simple to install. I settled upon TimesheetPHP. Luckily it even allowed LDAP support, which would be useful eventually for SSO. Installation was a breeze, and now everybody logs hours onto the an intraweb server.

A simple, simple solution to a simple, simple problem.

Faxing, Hurrah!

Status: ✅

Another line needing to be ported over: fax. Since time is very constrained, I quickly setup an extra server (OS X, actually) to act as a fax server. The fax line inserts immediately into the server, then from there any new faxes are printed on a normal printer and dropped into a central shared repository for the CSRs to access. Surely we will replace this setup sometime in the future, but for now it gets the job done.

A Division in 30 Days

Status: ✅

On a Friday I was told we might purchase a division from another company. Monday I heard that we purchased the division, and that we needed to have a website taking orders and a call center, capable of handling 500+/day (and not short calls); by the end of the month. Not to mention that the products wouldn’t even ship out of the same warehouse that held the call center, but a warehouse half-way across the country. And that a recall was occurring, which had additional requirements. On Tuesday the CEO, and my boss, left for Asia.

There are basically two of us that handle IT at this company, yet the “other half” of the IT department is in China working remotely and studying. So, the goal: take a small company handling almost solely distribute orders to a company that can handle 500+ lengthy calls a day, with an e-commerce website. And the recall, so we have to process, replace and ship these additional products.

With our timeline, requirements and goals laid out, we began putting this in motion.

The project required working all but one day for basically a month (including weekends, of course). Luckily another colleague at work (not in IT, but gets an IT award anyways) and I were able to team up and tackle the PBX. We immediately researched and brought in several PBX resellers, and eventually decided on an Avaya system. Naturally we dragged in a T1 (all voice, well, 23 b-channels and one d-channel). The installation is supposed to take up to a month, but our business partner stepped up and pushed Verizon to hurry up (in the end, we still had to wait for Verizon to finish their end of the connection, plus a delay to port the 800# over).

Next on the list was the physical wiring. Hiring somebody to come in and lay the network/telephone cables would have likely cost quite a bit, plus we were rushing to get things done. Having crimped way too much cat5 in my life, and my colleague having done some telephone wiring historically, we joined and spent a full Saturday laying 24 (really 48+, if so desired) drops from the POP to where the call center is to be arranged. The call center is to have 10 reps, so we terminated appropriately, tested, and tested again. The cable was pulled through the ceiling, enclosed in a 3" or so pipe, and terminated into a patch panel behind the call center, and again into a patch panel in the wiring rack (which lives in the “server room”).

Since everybody has owned laptops before, and not needed a domain, we haven’t used one (read: small company). But, with an immediate additional 15 or so people, here comes a DC. Since time is a a huge issue (we needed to do training well before the month switch over), I slapped together a PDC (a few gigs of RAM, RAID1, you get the point) – and dropped in Windows 2003. About the same time I had 10 IBM systems from my contact at CDW rushed over to the call center. We went shopping for cubicles, and had 10 sets brought over. There goes Sunday. I configured the appropriate policies, setup logins, and training of the CSRs started without any major hitches. Since we had already put together their desks and chairs, their first task was to put together the actual cubicles (I was too busy working on the website to take part in this pleasure).

Next was the website. Since I wanted the change to be as transparent to the user as possible, I took the very unmaintained website, changed the backend to PHP (since that is what I know best, and it works just fine), setup e-commerce, and made sure to get SSL working (cert from NS/VS).

Last is the recall. Two issues surrounded this: first, to get shipped the replacement products that had already been requested, just not shipped (and the previous company had stopped shipping these products at least two months prior to our purchase, sometimes even up to five months). I setup a quick wizard for people to select the right product, and that wizard dumped into a database. Half-way across the country I set them up to connect via ODBC to the database, batch import and then batch print the orders. Everything went into the correct field, automatically calculated shipping, sent the customer and email, and printed off the shipping labels – all with just a few clicks from the shipping people’s standpoint. I must say, Worldship’s ODBC support is very handy. A similar setup was done for any orders online, and any orders taken through the call center. Finally, for the recall I created a quick interfact “admin” page for the previous company to pull the status of orders, how many orders are pending, their tracking numbers, and the ability to export any of this (since they needed to be able to generate these reports).

All transfers done between the two sites are over a VPN, but just running off mediocre DSL lines. Upgrades to come shortly.

As a bonus, I setup Worldship to export all data back into the database. Then I created a quick page on the website that searched through all the exported data, and showed the status of your order (including tracking number). Problem is, the data is coming from several different sources (website, recall, call center), so the only way to search is by First/Last Name + Zip. Not ideal, but that is how it has to be.

Britney Spear's Toxic, Remixed

Status: ✅

I started University as a CS major trying to get a business degree as well. The first two terms I was overloaded with classes (taking 19 and 22 credits, respectively). At one point I was in my C++ class and chatting to my mom, mentioning how I wasn’t really meeting that many people, especially females – which when you are an 18 year old male, is something typically on your mind. She replied that most of the students in her communication class were female, and taking a few communication classes would make me a better husband one day blah blah blah; I dropped the CS degree and picked up a minor in Communication.

So, what does this have to do with Britney Spears? In one of the possibly best classes I took in University, Media Literacy, we were asked to form groups and create several projects. Sitting in the back near me was a girl from Japan and a guy from South America, and some other white dude. We agreed to form a group, and our first project was analyzing a Pepsi commercial with Britney Spears and Beyonce Knowles. The presentation was quite successful. Our second presentation was about how production effects are important for conveying a message, a pretty boring topic, but we tried to make it interesting. The teacher, Jill Freeman (who just won another Teacher of the Year award), congratulated us on two great presentations. We wanted to blow the class away for our final presentation.

The assignment was to transform some media artifact from its original meaning, into what the true meaning is. For two weeks we studied and analyzed the Britney Spears video, Toxic. We looked at every frame, and the more we examined the video, the more odd stuff we found. Basically, subliminal stuff. We decided to change the Toxic video into a Pop-Up-esque style video (reminiscent of VH1). Ian and I both had I.T. backgrounds, but didn’t know anything about video editing. For one week Ian hacked away at Final Cut Pro cutting up the video, adding stops and pauses. During this time I played with Adobe After Effects for inserting and animating the pop-ups. With only a day or so before the presentation he gave me the finalized video, and I started hacking away. At 3AM I started the rendering process, and for five hours on my Dual 1ghz G4 our eight minute video rendered.

The video finished rendering just before I had to take the bus to campus, and I made it just in time for our presentation. Almost everything was perfect, yet a few weeks later we redid some of the transitions to allow time to read the text. After we presented the bell rang, and the only question asked was: “can you play that again.” Not a single person left the room.

Note: This is the converted online streaming version. Contact me if you need the full quality version, it is roughly 500 MB. Lastly, the “intro screen” lasts for about 10 seconds, so just be patient. The text pop-ups will fly by pretty quick, so be prepared.