Presentation
Download
Report
Transcript Presentation
Internship Presentation
by
Gary Esworthy
Overview
About me
About MobilVox
Living Arrangements
Work Environment
Project Summary
Project Details (User Administration Project)
Internship/IUP Relationship
Summary
Acknowledgments
Me
22 years old
Born and Raised outside of Pittsburgh
Applied Computer Science Major
Information Assurance Minor
Graduation – August 2008
Main Interest – Software Engineering
Out of Work Environment
Live on Philadelphia Street with 3 friends from
High School
Have lived in Indiana the past 4 years for school.
MobilVox, Inc.
Founded by Mr. Enrique Lenz, who is President
and CEO
Based in Reston, VA.
Second office in Indiana, PA.
MobilVox, Inc. (cont'd)
Developer Titles
Senior Software Architect
Senior Software Engineer
Lead Software Engineer
Software Engineer
Intern (Software Engineer)
IUP Alumni
Almost all developers in the Indiana office are IUP
Alumni.
MobilVox, Inc. (cont'd)
My Work Environment
My Work Environment (cont'd)
My Work Environment (cont'd)
My Computing Environment
Dell PC running Windows XP Pro SP2
All Java written using latest version of Eclipse
IM used to communicate with coworkers from
both offices, along with e-mail, conference calls,
etc
Linux and Windows servers
Computing Environment (cont'd)
Subversion
Scarab
Used as a server to control all source code. Developers
can check out and commit changes to the source code
and Subversion keeps track of version.
Issue tracking system where developers can submit
bugs and be assigned to fix bugs. Also used to request
changes in software, etc.
Maven
Powerful tool used to build projects and keep code
organized.
How To Work on a Project
First, check the project out of Subversion
Step into that project in your command line
Create a directory for the project on your machine
Open a command line to that directory
Run “svn co https://URL/proj-location proj-name”
Run “mvn eclipse:eclipse” to have Maven build the
project specifically for Eclipse.
Work on project in Eclipse
Working on a Project (cont'd)
Commit your saved changes back to the
Subversion server
Using TortoiseSVN
Can commit to the server straight from Windows Explorer
Using Eclipse
Can commit to the server straight from Eclipse using the
Subclipse plug-in
My Projects
Project
User Administration
Technologies
Java
MySQL
Project Object Models (POM)
Log4j
_______________________
Project
UDDSS (DiverMate)
____________________________
Technologies
Java (Swing)
_______________________
Project
Iris
____________________________
Technologies
HTML
JSP
JavaScript
________________________
Project
Performance Measurement Tool
____________________________
Technologies
Java
HTML
XML
Java (Swing)
Roles
Coding
Design
Documentation
Testing
Research
__________
Roles
Coding
GUI Design
Testing
__________
Roles
Coding
Testing
Documentation
Research
__________
Roles
Design
Coding
Testing
Research
My Projects (cont'd)
Misc 15%
UAdmin 25%
IRIS 15%
DiverMate 25%
PMT 20%
UAdmin
DiverMate
PMT
IRIS
Misc
My Roles
Development
Design
Coding
Bug Fixes
Testing
Documentation
DBA
Research
My Roles (cont'd)
DBA 5%
Coding 21%
Documentation 21%
Coding
Design
Testing
Maintenence
Research
Documentation
DBA
Design 16%
Research 16%
Testing 11%
Maintenence 11%
User Administration Project
One of my first and largest tasks was to upgrade
the User Administration project (UAdmin).
UAdmin
Modular
Easily integrated
Uses
Authentication
Storing user data
UAdmin (cont'd)
UAdmin was only able to deal with user name,
password and email address for users
This information had to be stored in a database
One of my tasks was to make UAdmin contain
more user information, including addresses, phone
numbers, instant message information, and even
themes
For this, a new database had to be designed
UAdmin
To accommodate the new data we decided to design
a new Data Access Object (DAO)
A DAO is the layer that sits in between the client
and the database and acts as the line of
communication
UAdmin Database
UAdmin Data Model
Next, we had to create the Plain Old Java Objects
(POJOs) that would match the database
UAdmin Persistence Method
The persist(user) method needs to control all of the
action on the object by deciding what action to
perform
Add
Change
Delete
When the client application attempts to
add/change/delete an object, only the persist
method needs to be called
How does the persist method
know?
if client object does not exist in database
create(object)
else if client object is exactly equal to database object
return object
else if client base object is equivalent to database object
recursively persist child objects
else if client object has been deleted
delete from database
UAdmin Tasks
Also, I created a new authentication procedure
Java Authentication and Authorization Service (JAAS).
Users can now login using their database user name and
password or using their MobilVox network user name and
password
Using JAAS allows us to create login
configurations
Database login
Network login
UAdmin Tasks
Finally, theme support was added
Ability for client application to allow users to select
themes
Colors
Fonts
Sizes
Etc
Summary
The internship experience in invaluable
Real world experience
Very nice paychecks
Great learning experience
Learn things you simply can't learn in the
classroom
Recommended for all computer science majors
Internship Relation to IUP
Courses that were extremely useful
Courses I wish I could've taken first
COSC 341 (Database)
COSC 210/310 (Concepts using JAVA)
COSC 110 (Basics of programming using C++)
COSC 319
Material I feel should be added to curriculum
More information on development environments like
Eclipse and tools like SubVersion
Information on building projects with tools like Maven
Acknowledgments
Dr. Shubra
Todd Orange
For spending countless hours sitting with me at my
desk teaching me 1 on 1
MobilVox and employees
For his persistence in getting us into the internship
program and his dedication
For being open to having interns and helping them so
much
Computer Science faculty and Staff
For making everything possible
Questions/Comments?