Portfolio
Artsopolis - CMS, Search, Menu System, and iGoogle-like FeaturesArtsopolis is a premier civic events promotional site written in PHP. The main page has several tie-ins from various sections of the site: the category listings of upcoming events, featured videos, and featured sections. The search and menu system allow visitors to quickly get to where they want to go. The administrators have a live edit content management system built right into the website, a feature really popular with those team members that maintain the 10+ sites this logic supports.Portage Health - Intranet and Permissions-based Driven iGoogle WidgetsThe myPortage home page is a centralized location where customizable widgets that contain common functions and access to internal operations can be added, removed, and arranged to the users' preferences in a real-time interface that operates more like computer-based software than a webpage. Access to the software is controlled via a single sign-on system using Windows Server Active Directory accounts; the IT department really likes this as it reduces their maintenance expenses for this system and increases security as authorization and access are being driven by a single location.Voices.com - Job Cart E-commerce for Professional Voice ServicesFor Voices.com, we created an entire shopping cart system to integrate with the jobs process, the chief revenue-generating process of the website. The cart uses modern technologies such as RIA, advanced JavaScript, and OOP PHP to provide a seamless cart-to-job process, track statistics, and provide featured, newly-listed, and just-purchased items for each visitor’s viewing.Atomic Learning - Website UpgradesWe led an Atomic Learning site update, and they couldn't be happier with the results. We worked with Alison and her team to improve several portions of the site. On the displayed page above, we used JavaScript to enable these features: saving user preferences, login workflow, text size controls, tab reworking on the home page, database-driven Featured Tutorials with rotating and custom animation effects, and text and link updates.Portage Health - Home Page Rotator - A User-driven, Elegant SolutionThrough a simple management interface where a user uploads four images with associated links, a user can manage the front-page news rotator. This fades through the images, and allows the users to click on the main image or any of the smaller tabs to go to the associated article immediately. This was well received by both Portage’s team and the user community. We were pleased with the results of this solution because it met the users’ needs in a simple, usable manner.Voices.com - Job Details Workflow - Payments, Emails, Amazon S3, and MoreThe jobs process for Voices.com is complex as multiple members are able to participate in a single job, each having individual milestones and separate actions to complete based on roles. The job is managed each step of the way by the system, allowing for custom processing, alerts, and interaction from many users at each step. The payments are tracked by milestone and member. The page is packed with functionality: from AJAX notifications and JavaScript menu systems to email notifications, payment systems, Amazon S3 file uploads, and messaging system functionality.Artsopolis - Community Features: Members, Promoting Interaction, & MoreDrilling down to a specific event on Artsopolis shows the interaction it invites site visitors to have. It allows for member reviews, for users to tell friends about the event, and for even more features in the Community section.Atomic Learning - Content ManagementFor Atomic Learning, we provided a means to control their content display, converting a collapsing section to an accordion section and back again depending on the state of the list and what the visitor had selected last. It was a solution that both Atomic Learning and their customers really liked because it allowed them to display and review a lot of information in an easy way on a single page.Voices.com - Administrative Features for Managing Business and Support OperationsFor Voices.com, the admin section allows complete control over almost everything on the site. It supports the ability to accept phone payments, move a job to the next stage, make a correction for a customer, add new members, export data lists, and track sales. It was designed to reduce the need for technical support for the site and from the IT department. The admin section utilizes AJAX, JavaScript, and PHP technologies to give the administrator everything needed to make the site run smoothly, all easily accessible from a single dashboard.Artsopolis - WYSIWYG Editor and Easy Site Content ManagementThis screen is used to enter content into the site. The Artsopolis system has many other features to enable non-technical, simple content management for content that is ultimately displayed in elegant, technically-advanced ways; here are some examples: preview, WYSIWYG editors, lookup fields, and calendar date selectors. With the breadth of functionality in the Artsopolis site, administrators are able to manage the entire site without having to touch any code.Artsopolis - Reports and Data-driven Decision MakingThe admin pages include graphics for data reports; a simple one is displayed above. We can track outbound link clicks, keyword searches, profile views, and many more important data points. This allows for accurate data collection of activities that occur within Artsopolis' implementations, which in turn allows Artsopolis to know, based on accurate, hard data, what tweaks and additions will benefit their users the most. Coupled with industry-standard third-party data collection methods and tools, the resulting data sets are invaluable for management's use in directing future site developments and improvements.Voices.com - Adding a Member using Administrative FeaturesThe above form was designed for an advanced set of users that want pure functionality for simple entry of data that's required and desired for a new Voices.com user. The form has the proper error validation one expects in all forms. In summary and simply, it's a good example of doing what's needed by specific users to do a specific job.Dirt Bag - E-commerce, Custom Workflows, and Code that will Work with Future VersionsDisplayed above is a customization of the Magento checkout process where certain items will cause a second prompt to ask the user to enter an alternate shipping location in case a different address for postal service shipments is needed. The seamless addition of the step was done by working with Magento's customization definitions so that updates to the software could be performed without breaking any of the custom functionality.Dirt Bag - E-commerce, Custom Workflows, and Credit ReferencesAs an addition to the Magento account management features, we developed a flow so that users can upload credit reference information and files. While checking out, they can choose to pay with a standard credit card or place the order as a purchase order. If the latter option is selected and the credit references on the account are of a certain quality, the shipment will be sent out immediately and a purchase order will be processed at a later date, allowing reliable companies with solid credit to place large orders without extra overhead and delays.Portage Health - Custom Workflow for a Cafe MenuDisplayed above is an interface for managing the menu listing for the Portage Health Cafe. Its goals were speed, usability, and management from a single screen, and all goals were accomplished. We measured the speed by observing the users using the system throughout several iterations of the design. In a similar fashion, through observation, we learned if the system was usable as well; we also learned this by simply asking the users what they thought of the system. Here’s how the system works: clicking on any day displays a window where the user can type item names to find saved items or create new items by entering a new name. Price and item type can be changed for existing items by changing the parameters that exist on the interface screen. Changes to an existing item create pricing rules that affect the item's price only for that day. New items will have their default values set upon creation; this approach allows the user to do all of the normal operations quickly, without having to work in other interfaces. Advanced options for items such as pricing rules for date ranges can be changed through similar seamless interfaces.Portage Health - Administrative Features, Custom Workflow, Menu ManagerThe menu manager is a powerful administrative tool that enables users to manage all of the menus on the website. It uses a link manager to, by design, reduce the opportunities for dead links, and, by design, ensure that links are named in a structured manner according to Portage Health's preferred taxonomy.Portage Health - Active Directory Integration, SSO, Widget Browsing ManagementThe widget library page allows users to browse and search through the library of widgets they have access to. Access and visibility are set by Active Directory groups, and each user's access is decided by which Active Directory groups they belong to. Portage Health wanted integration with Microsoft Server's security and permissions management system so they would only have to manage this information in one location. This reduces complexity in maintenance, and ensures security in an environment where security is of the utmost importance.Portage Health - Human Resources Operations Improvement, Job Finder, RSSWith our work, Human Resources can manage all available job postings and requirements through a management console, which updates the public website’s job listings. Once signed up, a candidate can upload resumes, apply for positions, get updates for positions applied for via e-mail and be kept up-to-date on new job additions through job posting RSS feeds. There is also a candidate management portion of the workflow that allows Human Resources to track the candidates’ progression through their customized hiring workflow. The states or process steps available in the workflow are customizable, and different states can drive different actions and alerts.A Crucial Design Step - Interface MockupsIt's a trite truism, but the saying "a picture is worth a thousand words" is undoubtedly accurate when applied to the software development process. These user interface (UI) designs are to us what blueprints are to contractors; without them, the client's mental representation of what will happen and ours will probably not be aligned. We included this screen shot to demonstrate the types of mock-ups we like to make during the design process. As is demonstrated, we present simple, low-fidelity mock-ups of the interfaces and add notes that allow the customer liaison to easily see what the interface can do without having to reference multiple pages of complex design specifications. This rapid prototyping technique helps ensure that we, the developers and our customer, understand how things will look and how they will operate. We find it prevents a lot of problems, leading to a better development result and higher levels of customer happiness.Portage Health - Troubleshooting ProcessGiven the level of complexity in developing software due to many technologies and many people being involved, troubleshooting is a process that every developer needs to go through and therefore know how to do effectively and efficiently. The process is simple at the abstract level: gather data, determine options, proceed with options in a prioritized manner, solve, test, and update the concerned stakeholders. What follows is a simple example of how we approach troubleshooting.
During the testing phases of integrating a new jQuery grid system, issues arose where the sections (widgets) weren't getting their default locations for new users. This feature worked properly on developer copies, but not on the project manager's copy, which used a copy of the live site data for more accurate testing. To help troubleshoot this, we compared the developers' settings against the live settings by exporting the data from both, and performing a 'diff' operation to accurately and immediately determine all differences between the lengthy sets of data. We found the issue, fixed the issue, tested to ensure resolution, and updated the relevant stakeholders. As demonstrated, we gathered data, assessed it, and quickly determined where our efforts should be focused to solve the problem in the most efficient manner possible.