Internship2Career:System Design Document (SDD)

We need to fill this out based on the class notes: http://foss.unh.edu/opencomputing/index.php/CIS605_Class_Notes#System_Design_Document_.28SDD.29

Aaron and Brice are responsible for 3.3. No clue what the rest of you are responsible for.

=3.1: Subsystem Decomposition= This is a UML component diagram, where each component corresponds to a source code file or package of source code files. The relationships between subsystem components are dependency relationships, shown with dashed arrows. A dashed arrow connects the source component (which makes calls) to the target component (which has functions that are called).

UML Component Diagram
.

=3.3: Persistent data management= Aaron: Database design diagram obtained from MySQL Workbench (or from a UML editor) should be exported to a png file and included here (with a caption and brief narrative). (can you grab an updated one please with the new columns)

Dependency Graph of "Child-of" Relationships
This dependency graph shows the relationship of parent and child classes. A child class cannot exist without a parent class which makes them dependent on the parent. Up-down shows the "Child-of" dependency (shown in example). Down-up shows the "Parent-of" dependency.

Database Design
The database is called "i2c" which stands for internship2career. This database has all of the information for the University of New Hampshire internship program. There are eight tables: organization, opportunity, internship, contact, user, student, category, and major. The organization table is responsible for holding all of the information of organizations that are offering internships. It's attributes are: organizationID, name, description, address, address1, city, state, zip. It's primary key is organizationID. It has a one to many relationship with both contact and opportunity. The opportunity table is responsible for holding all available internship opportunities. It's attributes are: opporunityID (primary key), organizationID (foreign key), contactID (foreign key), title, numPositionsAvailable, semester, payRate, duration, responsibilities, qualifications, instructions, comments, categories, and dateAdded. It has a one to many relationship with internship, many to one relationship with category, and many to one relationship with organization.The internship table is responsible for holding all internship inquiries and information about the internship. It has attributes of: internshipID (primary key), opportunityID (foreign key), studentID (foreign key), gotHired, hours, special, and semester. It has a many to one relationship with both opportunity and student. The contact table is responsible for any contact information that the organization wishes to provide. It has attributes of: contactID (primary key), organizationID (foreign key), fname, lname, email, phone, ext, and fax. The user table has all of the information about the admin or anyone that uses the internship program. It's attributes are: username (primary key), password, fname, lname, and permissionLevel. It does not have any relationship with any other tables at this point in time. The student table keeps the records of all the students in the program. It's attributes are: studentID (primary key), fname, lname, username, currentGPA, major, yearStatus, and dateModified. The student table has a one to many relationship with both the internship and major tables. The category table has a list of different categories to break up the majors. It's attributes are: categoryID, and name. It has a one to many relationship with opportunity. Finally, the major table lists all of the majors at the University. It has one attribute and that is name. It has a many to one relationship with student.