EPICS Semester-End Report - EPICS - Engineering Projects in by dandanhuanghuang


									EPICS Semester-End Report
November 28, 2006

Project Partner A: Tippecanoe County Probation Department
Project Partner B: Home with Hope Community Center

EPICS Program            Project Partner A Contact          Project Partner B
Coordinator                                                 Contact
                         Kipp Scott, Chief Probation
Pam Brown                Officer - Tippecanoe               Mr. Darren Dunham
49-40639 (phone)         301 Main Street                    Ms. Stephanie Chambers
49-40052 (fax)           Lafayette, IN 47901                Home With Hope
epics@ecn.purdue.edu     Kscott@county.tippecanoe.in.us     1001 Ferry Street
                         (765) 423-9290                     Lafayette, IN 47901
                                                            (765) 742-2321
Advisors                 Teaching Assistant

James Early              Luis Avila
Professor:Computer       avilal@purdue.edu
Christina Nita-Rotaru

Fall 2006 Team Members

David Broadlick                              dbroadli@purdue.edu
Andrew Conforti                              aconfort@purdue.edu
Shweta Gupte                                 svaidya@purdue.edu
Tom Karaflos                                 tfkaraflo@purdue.edu
Kyle Kral                                    kkral@purdue.edu
Robert Meikle                                rmeikle@purdue.edu
John Pavlecich                               jmpavlec@purdue.edu
Matt Sandlin                                 msandlin@purdue.edu
Tom Sluis                                    tsluis@purdue.edu
Justin Woo                                   jwoo@purdue.edu
Executive Summary
Project Partner Description
        The Tippecanoe County Probation Department serves their county courts through
the preparation of pre-sentence investigations and the supervision of felony and
misdemeanor offenders. In the completion of these assignments, the Department provides
protection of the community by identifying continued criminal behavior, reinforcing law
abiding behavior, and providing appropriate services and programs for offenders to
support their rehabilitation.
         In addition to the Probation department, the JDS team of fall 2006 also served the
Home with Hope Agency. This agency is a transition facility for people recovering from
substance abuse. Just last year, Home with Hope was still using paper documents to keep
track of their clients. JDS created a MS Access Database for them originally to replace
their paper system with an electronic database. The creation of this Access database and
its front-end became very cumbersome, and Home with Hope in conjunction with the
JDS team decided to scrap this project, and start work on a new C# front-end using a
SQL database. This project’s scheme is very similar to that of JavaJDS. The mission of
both the Probation Department and Home with Hope Agency is to ensure protection of
the community by effectively supervising offenders and providing an opportunity for
their rehabilitation.
        Both departments use a database to track and store information. In order to help
these organizations in their efforts to supervise and rehabilitate their clients, the Judicial
Database Systems team’s goals are to design, build and install a database that aims to
reduce the time spent on working with the computer to retrieve data, or correct errors,
and to increase Probation Officer – Client interaction.
        Over the years, the JDS team has developed various versions of interface
depending on the suitable technology available during that period. The team started with
a basic MS Access front end system and moved into developing a much more advanced
user interface. Starting in the fall of 2003, JDS began developing and testing a VB.Net
database system called JDS2GO, which would eventually replace the old Access database
that is currently in use by Tippecanoe County Probation Office. It was believed that the
JDS2GO database would give Tippecanoe and Jasper Counties more stability and options
in the future. It was envisioned that the team would continue building and improving the
JDS2GO system. During the previous semester, the JDS team decided that it was no
longer feasible to continue bug-fixing the JDS2GO system. Hence, the team chose to re-
write the entire front-end setup using JAVA technology. The main benefits of using the
JAVA technology were that it could make the front end scalable and modular. Integration
of web services would be easier using the Java system setup. A functional web services
system would allow the probation county officers to access the database from home
through a secure connection, a feature requested by the project partner. This semester the
JDS team has added significant improvements to the existing JavaJDS architecture
including: multiple tabs, parsing through multiple records, inserting new records, editing
existing records, improved web service design, and read/write capability. Last but not
least, JDS has planned on starting a sub project (once JavaJDS is complete) to integrate
two more judicial agencies—Community Correction and Court Services—into the
existing system. Development will continue on these in the semesters to come.
GUI Project Summary
        The main objectives of the GUI Project were to finish the remaining tabs which
were not implemented last semester (Picture, Receipts/Fees, Reports), add the ability to
insert/edit/delete records from the JavaJDS interface, modify the way parameters are
passed to the new web service, and add a login box to allow secure access to the JavaJDS
system. The main objectives were divided amongst the GUI project members. John was
given the Reports tab, Shweta was given the Receipts/Fees tab, Tom was given the
Pictures tab, Kyle was given insert/edit/delete and new parameter passing functionality,
and Robert and David worked on the Login box. By dividing the tasks so that each one is
focused on by a specific team member, JDS was able to effectively accomplish a lot of
work this semester.
        The Reports tab has been implemented in the main JavaJDS interface and has
basic functionality. The layout of the fields resembles the old JDS Access system for the
Reports tab. The basic creation of a report has been completed, by using HTML to create
a document from the information that is returned from a query. One report has been
completely finished, populating itself from the main profile tab. Future plans for the
Reports tab include the completion of all the different report templates and the expansion
to mail merge.
        The Receipts/Fees tab has been implemented in the main JavaJDS interface as
well and also has basic functionality. The fields were created and laid out in comparison
to the old JDS Access system. The ability to navigate through multiple receipts has been
completed, and all of the fees have been integrated on this tab for easy access. Future
plans for this tab include adding the ability to print receipts, locking out all fees from
being edited, and giving addition/subtraction functionality to the tab.
        The Picture tab has been implemented in the main JavaJDS interface. We were
able to display a picture that is read from a shared network drive. Research is still being
done on the technique to transfer an image from a SQL database to the Java interface.
Future plans for this tab include finishing the capability to read the image from the SQL
database and giving the user the ability to not transfer the image if they do not want to.
        Each tab that consists of multiple records (Drug Screens, Court Case Info,
Reassessments, etc) has been given the ability to insert new records and edit existing
records. Also, the ability to insert new overall clients or edit an existing client’s personal
information has been fully implemented. Deletion has also been added, to delete clients
from the database by setting a deletion flag in the database. The new web service was
completed by the web services team, and JavaJDS now functions properly with this using
the new parameter passing technique for searching, inserting, editing, and deleting.
        The login box has been completed that appears at the start of the JavaJDS system.
It allows a user to enter a user name and password, and then authenticate this information
with the web service in order to allow proper access to JavaJDS.
        Future plans of the GUI project include: complete the tabs that were started this
semester, add some sort of administrator control panel to JavaJDS, implement a “roll
back” (undo) function, notify users of missed appointments/changes in information, data
validation, and an auto-saving/updating function.
        In order to ease transition into next semester, the GUI project plans on making
sure all of their code has been well commented and will update the wiki with useful
Web Services Project Summary
        The basic function of the web service end of the project is to take the parameter
list passed to it by the JavaJDS GUI, break it up, build a query, and pass it on to the SQL
Server. The web service then takes the results from the SQL Server and passes them
back to the JavaJDS GUI in the form of a concatenated string.
        This semester the web service went an overhaul in how it handled requests from
the JavaJDS GUI. The overhaul’s main objective was to have the web service take in a
list of parameters and build the requested query as opposed to taking an already built
query and passing it to the database. The reason for the change was both do to security
issues and design issues. Having the web service operate this way increases the level of
the systems abstraction. This way the application can be applied to many different
scenarios and increases the level of data independence. Security also played a factor in
the change. This new method allows us to better mask how our data is stored as well as
decreases the chances someone can attack the system with a malicious query.
        Along with the change in query building functionality was added for user
authentication. The JavaJDS GUI sends the web service a username and password. The
web service then checks against Active Directory on the domain. A test domain was
established with one domain controller. Test users were added into AD with test groups
and different privileges. First the web service checks to see if the user is a valid user in
the domain. If the user is valid it then checks to see if the user is in the correct group.
Not all computer users on the county network should have access to this system. Only
those in the correct Probation Department group should have access to the system.
        If the user successfully logs into the JavaJDS GUI the web service stores that
username and uses it in the connection string, along with a generic password hard coded
into the web service, to connect to the database on the same network. This done for two
reasons; the first is that the state department requires allow database connections to be by
authenticated users. The reason is to keep track of who changes what in the database.
This is all done behind the scenes and the user is unaware of this login process.
Home with Hope Project Summary
       The Home with Hope Project this semester gathered a new list of user
requirements for the Home with Hope Software. These are the user requirements
gathered as a result of meetings with Stephanie and Darren:

   1. Tabs that HWH has requested
         a. Discharge Summary (In which we should be able to provide the client to
             enter in on his own)
         b. Initial Screening
         c. Client Consent to Release of Confidential Information
   2. Tabs that need to be edited
         a. Receipts tab
         b. Legal tab
   3. Addition of functions
         a. Search feature
         b. Fax from Windows

         The transition to the next semester for the Home with Hope Project will be
facilitated through addition of an abundant amount of information on the wiki. Next
semester the Home with Hope Team plans on adding more members in order to get
sufficient work done on the project.
Overall Team Summary
        The JDS team accomplished a lot of work this semester. The GUI Team has
nearly completed the entire basic functionality of the interface. Some minor tweaks to
the Reports, Receipts/Fees, and Picture tabs will complete the basic GUI interface.
Additional features still need to be added to improve its ease of use and extensive testing
needs to be done to ensure clean operation, but the basic GUI setup has almost been
completed. The Web Services team finished their new web service, experimented with
domains and user logins, and started to work on SSL encryption. The Web Services team
still has some work to do concerning SSL and they also plan on restructuring the
Probation Department Database to a more normalized database.
        The GUI Team also worked well with the Web Services Team at integrating the
new web service and parameter passing technique. The web service was completed, and
then the GUI added functionality with the new web service one function at a time starting
with searching and ending with deleting. The new web service has been fully integrated
with the JavaJDS GUI client.
        Future plans of the JDS team consist of implementing a better security system for
information being passed from the web service to the client software. SSL needs to be
added for sending information back and forth with the web service and client. Once the
interface has been completed, the JDS team also plans on doing an extensive amount of
testing to ensure proper operation of the system, in hopes that a major version delivery
will occur during the Fall 2007 semester.
David Broadlick (Lab Key Keeper/Web Services Project -

      I believe that EPICS has been a very valuable experience for me because it has
      given me a wide range of work related skills. It has shown me how to better work
      on a team, how to work under more of a real schedule and I have learned more
      about things like web services. I believe that working of this specific team has
      also given me a lot of good knowledge and habits. Employers like the fact that I
      have real work experience and I can tell them it encompasses things such as
      security and networking. I think that our CS advisors are great and this team has
      been great to work on.

Andrew Conforti (Manger of Intellectual Property/Web Services Project) –

      The technical content, and skills gained from the task coordination and team
      development were the reasons I joined my EPICS team. I received that experience
      and more, but I also did a lot of work for the part of EPICS I was least interested
      in, the one credit hour. My team members were all motivated by learning and
      experience, but most of the scheduled time in EPICS was spent proving ourselves
      accountable for the work we volunteered to do. The design notebook, its purpose
      to prove team contribution and leave notes for future stages of our project, is a
      terrible example of documents mean for use as a description, map, or review of
      the project. It is handwritten, organized by date of work not by type, and very
      broad in descriptions and added fluff. It would only be useful to a future member
      if they have the exact same task, on the exact project, on the exact schedule. Our
      team has replaced the notebooks only functionality to the team in the form of a
      Wiki, an online accessible, typed, searchable, editable, organized and non-
      redundant version of the notebook. Requiring accountability per member of an
      EPICS team is fine if the format is allowed to change to suit the group, rather than
      TA's handing out grades from a rubric that does not match the team's content,
      only the broad definition of an EPICS team and some analysis of team
      cohesiveness. Another issue, who is going to read this? I have yet to see any form
      of 360 feedback where the communication goes beyond our teaching assistant.

Shweta Gupte (GUI Project) -

      EPICS was an excellent experience. It helped me meet new people in computer
      science and interact with them. I also learned how to give effective presentations
      and how to start/handle a project in the industry. I learned how to be apart of the
      team. The advisors are very knowledgeable and I learned many things and
      different CS concepts after taking the course.

Tom Karaflos (Web Services Project Leader) –
      This semester I feel that as a team we made significant progress and accomplished
      every major goal we set except for the implementation of SSL. This success is
      largely due to the fact that we are good at working as part of a team but can work
      as individuals equally well. In order to tackle every major issue we had to deal
      with this semester, it was necessary to split the work among team members and
      assign each one of us a few specific tasks to work on. I feel that this approach was
      successful and allowed us to work in an effective and efficient manner. All team
      members proved to be responsible, dependable, and willing to work hard to help
      the team move forward.
      Personally, I learned quite a few things this semester. The research and the work
      that I had to perform helped me strengthen my skills in programming and systems
      integration. More importantly however, I gained a better understanding of
      teamwork, team dynamics, and group communication, all of which are skills that
      will certainly prove useful in future jobs.

Kyle Kral (Team Leader/GUI Project Leader) -

      This was my second semester in EPICS, and second semester on the JDS team. I
      learned a lot about the JavaJDS system last semester and this semester decided to
      step up into a leadership position for the team. It has been exciting to take on top
      of my normal EPICS duties of working on code and developing ideas the duties of
      also promoting teamwork and organizing team meetings. I have not only learned
      a lot of technical knowledge of Java/C#/Windows Server 2003, but I have also
      learned what it takes to be an effective leader that not only works hard on his
      objectives but also assists the general team needs. It has been a great learning
      experience this semester, and I will continue my EPICS learning path next
      semester. The good leadership techniques I learned this semester I hope to
      expand on next semester, and the things that didn’t work so well I will remove
      from my repertoire. EPICS is a great opportunity to grow in leadership and
      technical expertise, and I am excited to be able to belong to such a great team.

Robert Meikle (Financial Officer/Web Services Project) -

      There have been parts of EPICS that I have loved and others that I consider a
      waste of my time and of others. The concept of EPICS itself is one that I feel is
      one of the best programs Purdue has implemented. I have been proud to tell
      others that I am part of the program and on the JDS team. I feel that the
      implementation, however, is a bit flawed. Some of the administrative tasks seem
      to exist for no reason other than to give the TA a reason to be around. While I
      understand the necessity of the notebook, the importance placed on it and the
      harshness with which it's graded is extreme. Some of the other, smaller, tasks
      required by the TA seem useless as well. Overall, EPICS has been a great
      experience for me this semester, but I think it could be refined still.

John Pavlecich (Webmaster/GUI Project) -
      I had fun with EPICS this semester. I think that the JDS team provided enough of
      a challenge yet never made me feel like I wasn't going to accomplish what I had
      set out to do. The other team members were friendly and willing to help at all
      times. I think that we got a significant portion of our work done and should be
      proud of what we accomplished. EPICS in general was a good experience because
      it was like a job but without as much pressure to perform. I would suggest to
      anyone doing at least one semester of EPICS before graduating. I'm glad that I
      participated on the JDS team this semester.

Matt Sandlin (Team Leader/Web Services Project) -

      This semester has really helped me develop more of my leadership and project
      management skills. I have a long way to go by far. However, I think that is what
      I have learned most during my time in EPICS this semester. Aside from some
      technical skills here and there what I really will take from this semester is the
      ability to adapt to project changes on the fly with new people. My skills were
      really tested and I think for the most part I was able to succeed. There is still a lot
      I could have done better, but overall I think this semester was a success.

Tom Sluis (ESAC Representative/Project Partner Liaison/GUI Project) –

      It has been an interesting semester working with the JDS team. I worked on
      getting the pictures tab implemented. The main part of my job was researching
      how this could be accomplished.
      Overall, I think that working with the team members has been an easy task. Also,
      the team as a whole functions rather well. I have enjoyed working on the JDS
      project and look forward to working with the team again.

Justin Woo (Home with Hope Project Leader) -

      This semester I have talked a lot to Stephanie and Darren at HWH. One incident
      came to mind when I had a good conversation with Stephanie about HWH and her
      thoughts. She had graduated with a law degree and had gone into social service.
      She talked about why she got into law and also her thoughts on social service and
      what improvements can be made. I realized that the most important part of our
      work in epics is fulfilling the needs of our requirements and this means
      understanding them and where they are coming from. After our talks I have
      discovered ways of building a better client tracking database for them.

To top