SENIOR PROJECT WEBSITE Camilo Sanchez Design/Implementation/Testing Keiser Moya Implementation/Testing Yaneli Fernandez Implementation/Testing
Actual System SPW Google Drive: Share Document with projects Shared Folder with students resumes Drawbacks Short time to choose project/team Short time to promote projects Free edit of these documents: No members limit constraint No control over members joining/leaving teams No control over deadlines for joining/proposing a project User’s technical profile separate from projects and teams SPW
SPW Website SPW Professor in charge of the class: Ease the process of coordination of the class Students Allow to find projects/team members with similar skills More time to assemble projects/teams Projects better developed and students’ grade improved Projects’ Sponsors: Give enough time to promote projects Find students with given skills Invite students to join project SPW
Project Management SPW Week 1 – 4 (January 20 – February 24) Feasability Study Overall Project Plan Requirements Elicitation System Requirements Documentation of use cases Database Design User Interface Design Wireframes Deliverable 1 Deliverable 2 SPW
Project Management SPW Week 5 – 10 ( February 25 – March 25) Implementation of use cases Integration with LinkedIn API Integration with Google and Facebook login Algorithm to find alike projects/users based on skills developed Views implemented Unit Testing Week 11 – 13 ( March 25 – April 11) System Testing Deliverable 3 Deliverable 4 Final presentation, Demo and Poster rehearsal SPW
Use Case Diagram SPW
Use Case Diagram SPW
Update Profile with LinkedIn SPW
System Decomposition Client-Server arquitecture Model View Controller (MVC) pattern SPW
System Deployment SPW Software Hardware PHP 5.1 Processor: x86/x64 2.0 GHz MySql 5 Memory: 1 GB RAM Apache 2 Disk Space: 20 GB Git SPW
Persistent Data Design MySQL database Projects Users Notifications, Skills, Terms Active Record Database Pattern Each model class is responsible for the database mapping SPW
Security and Privacy SQL Injection URI Security Cross-site scripting (XSS) Cross-site request forgery (CSRF) Session Encryption One-Way password encryption SSL Support No unnecessary information is stored Email addresses are only displayed to registered users SPW
Minimal Class Diagram SPW
Suggest Projects SPW
State Machine SPW
Main Algorithm Based on selection algorithm SPW
System Test Cases Sunny Day SPW Purpose: Test Update Profile using LinkedIn Test Setup: 1. User ysosa011@fiu.edu is logged in 2. User Profile Edit page ready Input: User clicks the “Sync with LinkedIn” button User enters ysosa011@fiu.edu and her LinkedIn password in the login page User clicks the “Allow Access” button Expected Output: User profile page updates and displays Languages, Skills and Positions from LinkedIn SPW
System Test Cases Rainy Day SPW Purpose: Test cancel update profile from LinkedIn Test Setup: 1. User ysosa011@fiu.edu is logged in 2. User Profile Edit page ready Input: User clicks the “Sync with LinkedIn” button User clicks the “Cancel” button on LinkedIn Home Page Expected Output: Skills Languages or Positions are not updated User Profile page ready SPW
System Test Cases Sunny Day SPW Purpose: Test Setup: Input: Test Project-Matching Algorithm for a user with skills on his profile Test Setup: User ysosa011@fiu.edu already registered User has PHP skill in her profile. System counts with projects that uses PHP skills for the graduation term of the user ysosa011@fiu.edu Login page ready Input: User enters ysosa011@fiu.edu and password in the login page User clicks the “Login” button Main page is displayed Expected Output: An ordered list of suggested projects that require PHP is displayed for this user on SPW Home Page SPW
System Test Cases Rainy Day SPW Purpose: Test cancel update profile from LinkedIn Test Setup: 1. User ysosa011@fiu.edu is logged in 2. User Profile Edit page ready Input: User clicks the “Sync with LinkedIn” button User clicks the “Cancel” button on LinkedIn Home Page Expected Output: Skills Languages or Positions are not updated User Profile page ready Purpose: Test Project-Matching Algorithm for a user with NO skills on his profile Test Setup: A new user johndoe@example.com is created. User has no skills in his profile. Several projects that require PHP have been previously created by other users. Login page ready Input: User enters johndoe@example.com and password in the login page User clicks the “Login” button Main page is displayed Expected Output: No projects suggestions for this user are displayed SPW
Questions