Project Summary

Client: Carley Foundry

Project Description: To rebuild an existing piece of software known as QA Display for Carley Foundry.  The system tracks build instructions for tens of thousands of parts that Carley Foundry builds on behalf of their clients.  Our task is to develop a completely new piece of software that will replace their existing software, add some functionality, and give it an improved design/interface.  The Carley staff would also like to re-categorize the organization of their processes and departments as we build this new software.  Thus, after redeveloping the software, the client will set up additional processes and departments as they see fit and we’ll then import data from the existing system that they want to keep, per their specific instructions.

Introduction:
Carley Foundry is a traditional foundry company that makes metal items, generally ones that are parts of machinery for their clients. They have engineers, sales staff, and production people. There are roughly 70 employees and their customers are mostly businesses that are manufacturers.  They help their clients produce custom items made of different metals. To make these metal items, they develop, create and store instructions for each individual part they make.  Instructions for each part have several different stages and each stage requires its own set of instructions.  Each stage of the part creating is considered a department within their facility.  Right now, all those instructions are stored in a piece of software called QA Display.

The major problem with their current software called QA display is that they have run out of user licenses and cannot purchase more because the software is no longer supported. In addition to being able to add additional users, they’d love to have a bit more functionality in their system and also reorganize their existing departments and processes during the development of the new software (as it’s very hard to change this organization in QA Display).

Since QA Display stores part information and instructions for how to make that part for each department at Carley Foundry, Carley engineers need to be able to create new parts, new processes and new instructions for each part in each department.   Please note that while all processes are organized by department, not all parts require all processes or all departments.

There are a few levels of system users: Production people need to be able to view and print out the instructions when they are needed.  However, administrators and engineers need to be able to edit and manage that part information, the revisions made in the system, system users, departments, process instructions for each part, basic customer information, revisions of part instructions, and more.

Besides rebuilding the software, Carley Foundry would like us to help them reorganize their categories (also known as departments) of their existing processes.  To accomplish that, we should plan to build and release a Beta system to them that has only the name of each new department, sub department and process they want  (most recent organization is in http://www.test.frontierwebdev.com/carleymenu/CarleyFoundry_NewCategories_2011-07-04_v01_A.xlsx) without any data collection fields set up for each process. Once the new system is up, Carley staff will provide us instructions to import the old data in the QA Display system into the new system.  This last step will be be estimated separately after the new system is built.

Goals for the project:
1) Build a usable piece of software that tracks instructions for all parts that Carley Foundry produces
2) Be sure that that software is not limited the use of that software by current licensing restrictions
3) Improve the user interface and experience so the software is easy-to-use and works well on touch screen monitors.
4) Facilitate the reorganization of the categories of departments and processes that are currently set up in QA Display
5) Add new features that make the software easy to work with.
6) Facilitate the approval process for revisions to parts

Budget approach:
150+ hours

The client is open to idea of seeing multiple proposals as it seems the most difficult part of this build will be the method which will allow data layouts to be modified for each process by the client. They may be open to using a third party software tool in combination with our solution if it is cost effective for them. 

Notes:
The program we develop for them will be hosted by them internally. The software will be built for client-owned hosting on a Linux environment. Task 14053 has information about the hosting environment.

By default, the system will be in view only mode and this mode is meant for the production people at Carley who are accessing the system to view instructions for how to make any part in the system.  The system will have different options that will only show to users who are logged in and have permissions to see those features.

Mockups are schematic and can be changed if the development team has an improved or more efficient way for implementing something.

Planned sitemap

·         System Dashboard (mockup 1000) – This mockup represents the dashboard of a logged-in administrator with all site privileges.  Note that if no user was logged in, the dashboard would only show a list of recent items and clients that were accessed. There would be no Approval/Notifications section and the main menu links for “Manage”, “Reports”, “Approvals”, “Admin Options”, “Modify Profile” and “Log Out” would not be options. Also, where “Log Out” currently shows, there would be a button for “Log In”.

o   The section for Recent Items Parts and Processes would always show the three most recent processes for a part which have been accessed. These are just quick links so the user can return easily to whatever they were working on recently. Clicking on the item would bring the user to the specific process that was accessed last for that specific part such as the page represented at 22c-Part1-EngSpecs.jpg.

o   The section for Recent Items Customers would always show the three most recent customers that have been accessed. These are just quick links so the user can return easily to whatever they were working on recently. Clicking on a customer name here would bring the user to a page like 50-ManageCustomers.jpg where there would be the option to edit customer information or view a link to all the parts for that customer.  (For users without the ability to edit, clicking a customer name would show just the list of parts for that customer.)

·         Dashboard/Recent Items (mockup 02) – This mockup represents the dropdown menu that should show on mouseover of this button.  The first link to system Dashboard would go to the page like mockup 1000. The other items in the menu would be the three most recent processes accessed and the three most recent customers accessed and clicking on those items would work the same as described above in the system dashboard section.

·         Search Tool (mockup 1100) – The search tool is the most important and most often used part of the system.  The search should be an auto-fill and each search would show all matching part numbers, matching departments or processes and matching customers. 

o   If the clicks “enter” on the keyboard for a specific part number, the system would take the user to whatever the most recent department and process was visited on that machine.  The most recent department and process for a part is visually represented by the grey box with white writing for each part.  In case it is the first time the system gets used, it can be assumed that the user be taken to the general specs page for that part.  (The reason for this is because users of one computer usually work on parts within their specific department or process.  E.g., employee Joe spends his entire working day green sand blasting different parts, so his recent history will always be of the “green sand blasting” page of those parts and this will help him navigate back to what he was looking at earlier in the day.) Clicking a process would take the user to that specific process page for that part, e.g. if “routing” was selected for part 82231-170-front end cover it’d show the information in 22b-Part1-EngRoutingInfo.jpg.

o   Note that all products will have general specs, but will only have information for some of the possible processes. For each part, one the processes used by that part would be listed as sub options for that part number, clicking on any of those processes would take the user directly to those instructions for that part. (Shown in 22b-Part1-EngRoutingInfo.jpg)

o   Clicking on a department or sub department name would list all the processes or sub departments within whatever is clicked on.  Clicking on a process would show a list of all parts that require the use of that process. (Shown in 20-BrowseProcessLandingPage.jpg)

o   Clicking on a customer would go to a page like 50-ManageCustomers.jpg where if they were an admin they could chose to edit customer information or see a list of all parts in the system for that customer.

·         Search Results Page (mockup 10) – This is a search results page if the user clicks enter without selecting an item from whatever they searched.

·         Process Results Page (mockup 20) – This would show to a user who clicks on a certain process so the user could see all parts that use that process. The page should use pagination.

·         Department Landing Page (mockup 23) – This page would show to a user who clicks on a department name when searching for parts, it would list all the sub departments and processes.

·         Departments & Processes Button (mockup 04) – The Departments & Processes button would show a list of all the departments and processes that are set up by the admin.  This mockup shows an outdated list of departments and processes and the newest list is at http://www.test.frontierwebdev.com/carleymenu/CarleyFoundry_NewCategories_2011-07-04_v01_A.xlsx -- Note that in case processes belong to a sub-department, they would be shown as tertiary menu options on mouseover.  Clicking any process will take to the user to a page that would show all parts in the system that have instructions for that process as shown in mockup 20-BrowseProcessLandingPage.jpg

·         General Specs For A Part (mockup 2000) – This is the page that shows the basic information about a part.  Note that the spec drawing link would use the operating system of the computer to open that folder.  Also, the left column would show all departments and then for each department clicked, the accordion would show the specific processes that apply to that part..  If a department or process is not required for that part, that department or process would not shown in the left column.

·         Print Button For A Part (mockup 2010) – This would allow the user to print out all processes related to the selected part, all processes within the active department for the selected part, or just the active process for the selected part.

·         Manage Parts (mockup 40) – This page should use pagination and list all parts. Often, users will get to this page as a part search result.

·         Editing general specs for a part (mockup 41) - All parts must have a part#, a description, and they must be assigned to a client. Administrators can also add a main image, weight information, and alloy-temper information. Administrators can assign a path to a local directory.  The status of the product can be fixed process, tracked, or untracked.  When a new part is set up, the status will be automatically set to Untracked, and the engineers will choose what processes will be used for that part by checking the checkbox for each process they think will be needed.  (Note, that the needed processes for a part can be changed at anytime by a user with the appropriate permission.) 

o   The product status cannot be changed to fixed process until data has been entered for that part in each of the processes that are checked on this page.  It would be great to have some visual notification which tells an administrator which of the checked departments has been saved with data and which ones have not.

o   If the status of a part is untracked, all additions and changes will be saved by the system under a revision titled PP1.  In case the user changes the status to Tracked, then each new revision will be saved as PP[#] where the # ascends by one for each revision. 

o   If the status of the part gets changed to fixed status, the revision will be titled v1 and each revision made will move the version up by one.  Also, any changes made to any part that has a status of “fixed process”, the following message should be shown to the user and the user must click yes to continue:
“ The process you are editing is a Fixed Process – customer approval may be necessary. Have the correct procedures been followed to allow a change to this Fixed Process? See the Quality Department for any questions.”

o   Notice the “Add New Duplicate Part” button, this button would make a copy of all the part information and ask the client to enter a new part number.  That new part would have a status of untracked and a version of PP1 until the user changes the status to tracked or fixed process for that new part.

o   The revision history would save all product information in the state it was when any revision became outdated.  Thus, administrators could easily go back and see the outdated processes of this part. Only administrators with the option to add and edit parts would be allowed to viewing old process instructions for parts. Also, when viewing old instructions, it will be good to have a large visual indicator of some kind which says the part information they are looking at is outdated.

·         View Mode for All Processes of a part (all mockup 22’s) – these mockups represent examples of the “view mode” for processes for an example part.  These mockups are all outdated because the list of departments and processes has changed since this project started and because Carley Foundry has decided to redesign the layout for each process.  These mockups should only be used for general understanding about the system.

·         Administrative Option for part data entry (mockup 22b) - Once a part has be created, administrators will perform all the data entry for each product.  When a product has a status of untracked, administrators can save changes without approval.  If the status of the product is tracked or fixed process, then they must be shown different administrative options if they would like to submit changes for a particular part:

o   Version numbers go up 1 whole number at a time, so it is very often that revisions are submitted in groups. Thus 4 or 5 of the processes would change for a part when it goes from version 2 to version 3.  For that reason, there is an option for “Save these changes for my view only and do not yet submit them for revision approval”. If a user does this and is still making more changes for that part, no other system administrator can propose or save any other changes for that part until the changes are submitted and approved as a new version or discarded permanently by the person saving changes in their own view.

o   If the part is locked for revisions because another user is making the revisions, the system should be able to show what user has the part locked as only that user or the super administrator would be able to discard the pending changes so that other new revisions could be initiated.

·         Image Only Processes (mockups 3000 and 3010) – some processes can be set up as “Image Only Processes” and these processes would allow users to add images and captions which will be viewable as demonstrated in these mockups. Image only processes are set up and edited differently than all other types of processes. There will be more information about this topic in the edit processes section below.

·          Manage Button (mockup 05) – The manage button would only show to logged in users with the appropriate permissions.  Each option in this menu has its own mockup which gives more details about the envisioned functionality.

·         Edit Departments and Processes (mockup 30) – This page is the hierarchy view of all processes as they are divided up into categories and sub categories.  Note that users with the appropriate permissions can reorder the departments, sub departments and processes as well as edit or delete existing items and reordering existing items as well. It should be noted that no process can be deleted unless no part in the system is using that process.  (A deletion will be extremely rare, but it is needed in case of any major reorganization of the processes in the future).

·         Edit Department (mockup 31) – departments are simple text fields.

·         Edit Sub Department (mockup 32) – sub departments are text only fields that are assigned to a main department.

·         Reorder Sub-departments/processes (mockup 33) – this shows how processes and sub departments can be reordered within a top level department.

·         Edit Process (mockups 34, 34b & 34c)) – This area of the system is the most complex and we are relying on your feedback as developers to devise the most reasonable way to allow processes to be edited.  Andrew Wilk gave consultation on this layout and the end goal of this area is to allow administrators to set up the fields should be available for each process.  Administrators would be able to design a page layout for each process and assign different fields and label types.  Note that the client would set up a special kind of process for image/videos so that those process pages can show as many images as possible for that part (see mockup 3000).  Also, we should have an image field option where the administrator setting up the process can specify where and how that image/video field should show in the layout of the process. 

·         Reorder Departments (mockup 35) –this shows how the top level departments would be reorderd.

·         Manage Customers (mockup 50) – manage customers would list all customers with pagination. Users can click on the number of parts that the customer has in the system to see all those parts or they can edit basic customer information.

·         Edit Customer Information (mockup 51) – Detailed customer information is tracked in a different system, so the only information that this system will store about a customer is their name and customer number.

·         Reports Button (mockup 06) – This area would only show to logged in users with the appropriate permissions.  Each option in this menu has its own mockup which gives more details about the envisioned functionality.

·         Recent Reports (mockup 60) – This page would use pagination to show all reports that were run by the system so that they can be easily re-run by the system.

·         Create New Report (mockup 61) – This section would allow the user to customize whatever report they want about whatever data in the system that they want. We are open to implementation ideas from the UA developers as this has the potential to be a very complex portion of the system.  Right now, the vision is as follows:

o   The first step is to ask the user to select the desired criteria for the report, they would be able to choose customer information or part information and then an operator and then 1 or more values to their criteria. They would be allowed to enter as many pieces of criteria that they wanted. These would be the rows of the report.

o   The next step would be to choose what columns they would like to have shown in their report. They could select entire processes or each process field individually.  The first two columns in the report would always be customer name and customer number and the next columns in the report would always be whatever the columns the user specifies for the report.  All reports would be downloaded as .csv files.

·         Administrative Options Button (mockup 07) – The manage button would only show to logged in users with the appropriate permissions.  Each option in this menu has its own mockup which gives more details about the envisioned functionality.

·         System Settings (mockup 70) – This is a blank page and the UA staff should use their discretion to put in any needed variables for the site into this section.

·         Manage System Users & Permissions (mockup 71) – This page would list all administrative users of the system. 

·         Edit User Profile & Permissions (mockup 72) – This section would allow users to be set up with different permissions in the system to do more than just access the system in “view only” mode. In case any of these permissions should be labeled or grouped differently to make system development easier, please be sure to share that recommendation with the AT.

o   Add new parts and mark part revisions to existing parts would allow the user to make proposals for edits to information about any part in the system.  Thus, they can lock a part to make edits and they would be allowed to discard part data information that proposed. In mockup 22b, they would have the abilities to make edits, but not to make and approve them in one step.

o   Add new departments would allow the user to reorder sub departments and process and add new departments and sub departments as well.

o   Add new processes would allow the user to add new processes and edit the data layout of any existing process.

o   Add new clients would allow the user to add new clients or change information about any existing clients.

o   View Reports would allow the user to see and run the reports shown in mockup 60.

o   Add new reports would allow the user to add new reports or change existing reports.

o   Approve Revisions would allow that user to approve revision requests submitted by other users and release new versions of any product.

o   Edit system users would allow that user to edit or set up new system users with administrative privileges

o   Edit system settings would allow the user access to the system settings page.

·         Modify Profile Page (mockup 73) – For users without the ability to manage other users, they would be allowed to change their basic information and site log in on this page.

·         Approval Notices (mockup 80) – For users with the permission to approve changes, they would see a list with pagination of all changes that have been submitted for approval or the history of what’s been approved. 

·         Approval Notice Detail (mockup 81) – The approval detail page would show all the information about the part that had information changed in one or more of its processes.  The user reviewing the changes would be able to see any notes written in by the user who made the changes. Each process change needs to be approved indivudally by clicking the corresponding checkmark before the “approve” button would be available to click. Clicking on the comparison link would allow the user to see the previous version of the changed information, next to the new information, before making an approval.

o   The other option in the approval decision dropdown besides approve should be: “denied”.  When a denial is submitted, the system will send an automatic email to the user who made the change stating that it was denied, along with the note about why it was denied. The bottom of that email should say: “If changes still need to be made, please resubmit them for approval according to the notes above.”

·         Compare View of changes (mockup 81b) – this would allow users to easily compare and old version of information next to the proposed changes to the information, along with the notes about the revision.