CS577b Spring 2016 Team 2 TRR ARB Presentation -Sultan Alsarra -Aref Shafaeibejestan -Adil Cem Albayrak -Mohammad Almunea -Charles Reitz -Julapat Julnual -Andrea Brown -Travis Weaver - Dennis Evans
Outline :: Progress Report :: Operational Concept Description :: Demo :: Quality Assurance :: Support Plan :: Transition Plan Team 2@CS577b Spring 2016
Progress Report https://stocksnap.io/photo/69TMH4ITIE
Changes from CCD ::Received valuable feedback from CCD CCD helped us to identify 15 tweaks to add to our software to improve our product. Since CCD, the team has implemented 14/15 of the changes. ::CCD exposed three bugs to be fixed Three bugs have been identified and two have already been fixed. ::Continued implementation of schedule items Finished application functions, finished admin console, began beta testing, and setup Amazon Web Services for Rigo. Team 2@CS577b Spring 2016
Tweaks from CCD Implemented TODO Search history in search event arranged by time left for event instead of abc order Load event history automatically Show event name input errors in real-time Decrease complexity of private event password Change “Share” label to “Downloaded” when user downloads a picture Change back button text to back arrow Transition to event page after creating public event Added graphic to empty event page which explains how much time is left and how to add pictures Event names case insensitive When searching for or adding pictures to an event, sort by events the user has viewed recently In list of events, appended “Left” to number of days. e.g. “3d” vs “3d Left” Added “...” button with dropdown menu options Filter page for events Touch to focus camera Page handling
Bug Fixes from CCD Bugs Fixed TODO In some cases, the report/unreport feature shows the wrong label. Facebook signup did not work with Rigo’s account and returned an error. Unwanted moving of event label. Team 2@CS577b Spring 2016
Operational Concept Description http://www.lgi-consulting.com/wp-content/uploads/2013/09/innovation-849x539.jpg
System Purpose The primary purpose: Make sharing pictures easier! Introduce new methods: Location Based Event Based Team 2@CS577b Spring 2016
System Boundary & Environment Team 2@CS577b Spring 2016
Goals and Constraints Organizational Goals: OG-1: Simplify sharing pictures from smart phones OG-2: Share location based pictures OG-3: Share public and private hashtags with friends and families OG-4: Increase efficiency of sharing pictures OG-5: Improve user experience by allowing users to create/post different types of events (public, private, location) Constraints: CO-1: iOS as an Operating Systems: The new system should work on iOS CO-2: Facebook Login: The user should be able to use the application using his Facebook credentials CO-3: Zero Monetary Cost: The Chosen NDI/NCS must be free CO-4: Linux as an Operating System: the available back-end server is linux CO-5: Free Database System Team 2@CS577b Spring 2016
Demo https://stocksnap.io/photo/UM62EOZSRC
iOS Progress - All Win Win Features Done Register Login Browse Nearby Pictures Sort Nearby Pictures Create Public Event Post a Picture Delete Picture Create Private Event Search Events 9. Browse Event’s Picture 10. View Specific Picture 11. Save a Picture to Device 12. Report a Picture 13. Un-report a Picture 14. like a Picture. 15. Unlike a Picture. 16. Delete Events 17. Logout 18. Lost Password 19. Moderate Event 20. Control Method of Posting 21. Filter Picture in Events Team 2@CS577b Spring 2016
Demo : User Interface (iOS) Live Demo Team 2@CS577b Spring 2016
Features Rundown Sign up in the app Team 2@CS577b Spring 2016
Browse Nearby Pictures. Features Rundown Browse Nearby Pictures. (look at map) Team 2@CS577b Spring 2016
Change Filter for Nearby pictures. Features Rundown Change Filter for Nearby pictures. Team 2@CS577b Spring 2016
Post a Picture to Nearby! Features Rundown Post a Picture to Nearby! Team 2@CS577b Spring 2016
Features Rundown Create a Public Event. Team 2@CS577b Spring 2016
Post a Picture to your event from Camera Features Rundown Post a Picture to your event from Camera Team 2@CS577b Spring 2016
The Picture You took is terrible! Delete it... Features Rundown The Picture You took is terrible! Delete it... Team 2@CS577b Spring 2016
Features Rundown Create a Private Event. Team 2@CS577b Spring 2016
Post a Picture in your Private Event from Gallery. Features Rundown Post a Picture in your Private Event from Gallery. Team 2@CS577b Spring 2016
Make users only post live pictures Features Rundown Make users only post live pictures Team 2@CS577b Spring 2016
Someone else posted a picture in your event Features Rundown Someone else posted a picture in your event Team 2@CS577b Spring 2016
You don’t like their picture Features Rundown You don’t like their picture in your private event. Delete it. Team 2@CS577b Spring 2016
Delete your Private Event! Features Rundown Delete your Private Event! Team 2@CS577b Spring 2016
Features Rundown Search for Event: #TRRFun Team 2@CS577b Spring 2016
Browse #TRRFun Event Pictures. Features Rundown Browse #TRRFun Event Pictures. Team 2@CS577b Spring 2016
Filter #TRRFun Event Pictures. Features Rundown Filter #TRRFun Event Pictures. Team 2@CS577b Spring 2016
Features Rundown Like a Picture <3 Team 2@CS577b Spring 2016
Unlike the picture </3 Features Rundown Unlike the picture </3 Team 2@CS577b Spring 2016
Features Rundown Report the picture! Team 2@CS577b Spring 2016
Features Rundown You feel bad about what you did, so you decide to un-report the picture Team 2@CS577b Spring 2016
You found a picture you like, so you decide to save it to your device Features Rundown You found a picture you like, so you decide to save it to your device Team 2@CS577b Spring 2016
Features Rundown You can’t remember all the pictures you’ve posted, so you go to My Photos Team 2@CS577b Spring 2016
Features Rundown You can’t remember all the events you’ve created, so you go to My Events Team 2@CS577b Spring 2016
You decide to logout of the app! Features Rundown You decide to logout of the app! Team 2@CS577b Spring 2016
You decide to login into the app, but now using Facebook! Features Rundown You decide to login into the app, but now using Facebook! Team 2@CS577b Spring 2016
You decide to logout of the app again! Features Rundown You decide to logout of the app again! Team 2@CS577b Spring 2016
You decide to login into your account, but you forgot the password! Features Rundown You decide to login into your account, but you forgot the password! Team 2@CS577b Spring 2016
Login in with your new password Features Rundown Login in with your new password Team 2@CS577b Spring 2016
Admin Console Progress - Done Login View Statistics Browse Users Filter List of Users Delete User Suspend User Browse Events Filter List of Events Hide Event 9. Un-hide Event 10. Modify Event 11. Browse Pictures 12. Filter List of Pictures 13. Hide Picture 14. Un-hide Picture 15. Restore Picture 16. Modify Picture 17. Change Configuration Team 2@CS577b Spring 2016
https://theshareappwebsite.com Username: admin Password: ShareTeam2 Demo: Admin Console https://theshareappwebsite.com Username: admin Password: ShareTeam2
Quality Assurance http://writtent.com/blog/wp-content/uploads/2014/05/quality-approved.jpg
Test Cases and Results
Testing Strategy :: Approach :: Strategies Test the most critical requirements in win-win conditions and Mitigate any risks. :: Strategies Automated test : functional test (UI Automation) Performance test: load testing (Apache JMeter) Integration test: Manual integration test between Admin Console & iOS Team 2@CS577b Spring 2016
Test Cases for Event Management Creating Events TC-01-01 Create Public Event TC-01-02 Create Private Event TC-02 Search Events TC-03 Delete Events TC-22 Browse Events Team 2@CS577b Spring 2016
Test Cases for Picture Management Posting Pictures TC-04-01 Take a Picture and Post It in an Event TC-04-02 Take a Picture and Post It in Nearby Location TC-04-03 Choose a Picture From Gallery and Post It in an Event TC-05 Sorting Pictures TC-05-01 Sort Pictures by Date TC-05-02 Sort Pictures by Popularity TC-05-03 Sort pictures by Distance TC-06 Browsing Pictures TC-06-01 Browse Pictures in Public Event TC-06-02 Browse Pictures in Private Events TC-06-03 Browse Pictures in Nearby Location TC-07 Delete Pictures TC-08 Reporting Pictures TC-09 Save Picture to Device TC-10 Like/Unlike Picture Team 2@CS577b Spring 2016
Test Cases for Profile Management Register TC-11-01 Register with Email TC-11-02 Register with Facebook TC-12 Login TC-12-01 Login with Email TC-12-02 Login with Facebook TC-13 Logout TC-23 Lost Password Team 2@CS577b Spring 2016
Test Cases for Admin Management Browse Users TC-15 Suspend a User TC-16 Update an Event TC-17 Restore Reported Picture TC-18 Change app Settings TC-19 Generate Statistics Report TC-20 Search Pictures TC-21 Delete Events Team 2@CS577b Spring 2016
Xcode UI Automation Difficult to handle the code Editor is not useful Lack of documentation Cannot capture every action Sometimes causes trouble with coordinates Automatically created scripts Built in Xcode, no need to install Works for both simulator and device Team 2@CS577b Spring 2016
32 Test Cases Testing Results 32 Passed 0 Failed :: All test cases were also tested manually, to make sure that all functions working correctly. :: Acceptance testing is being conducted by our owner, and feedbacks are being noted and implemented as soon as possible. 32 Passed 0 Failed 32 Test Cases Team 2@CS577b Spring 2016
Performance Testing – Apache Jmeter :: Load testing for theshareappwebsite.com/api/pictures/nearby :: Number of users: 1000 :: Ramp-up period: 60 sec :: Loop count: 1 Number of request: 1000 Average response time: 650ms Throughput: 976.451/minute Team 2@CS577b Spring 2016
Test Flight - Beta Testing Easy to distribute the app by inviting users with their email Gives notifications if there is a new build Internal testing – up to 25 team members – up to 10 device External testing – up to 2000 users Beta testing period for 60 days The app is being tested by both team members and users Issues are being reported over bitbucket repository, google drive and whatsapp group Team 2@CS577b Spring 2016
Quality Control and Metrics http://thenextweb.com/wp-content/blogs.dir/1/files/2015/04/usertesting.jpg
Traceability Matrix OCD Requirement Use Case Test Cases OC-1: Use Hashtag WC_3579 UC-7 TC-04 TC-01 TC-02 WC_3763 UC-17 OC-2: Login with Facebook WC_3583 UC-3 TC-12 WC_3584 UC-1 OC-3: Use Location WC_3580 TC-05 OC-4: Search Events WC_3627 UC-6 OC-5: Browse Event’s Pictures WC_3637 UC-14 TC-06 OC-6: Administrator WC_3764 TC-14 TC-15 TC-16 TC-17 TC-18 TC-19 TC-20 TC-21 WC_3765 UC-18 WC_3766 UC-19 WC_3767 UC-21 WC_3768 UC-8 WC_3769 WC_3770 UC-20 WC_3771 UC-5 WC_3772 UC-23 WC_3773 UC-24 WC_3774 UC-22 Team 2@CS577b Spring 2016
Traceability Matrix OCD Requirement Use Case Test Case OC-7: Delete Picture WC_3591 UC-8 TC-07 OC-8: Create/Delete Private Event WC_3585 UC-12 TC-01 TC-03 WC_3603 UC-5 WC_3621 UC-4 WC_3763 OC-9: Like/Unlike Picture WC_3751 UC-13 TC-10 OC-10: Report Picture WC_3599 UC-10 TC-08 UC-11 OC-11: Choose Add Picture Type WC_3634 UC-7 TC-04 OC-12: Take Picture or Choose From Gallery WC_3619 OC-13: Save Picture to Device WC_3623 TC-09 Team 2@CS577b Spring 2016
Technical Debt Resolved: Active: Technical Debt Item Resolution New GUI Design - Requires redo of old designs Got clear information from owner about the new features. performed incremental development, tested and got feedback. Excellent Owner/team requirements flexibility Server prototype Weakness - User defined filenames not consistent Decided on file naming convention. Found Algorithm, implemented, and tested in prototype, and worked perfectly iOS/Backend Inexperience in code led to some code mistakes Less experienced team members worked together with more experienced team members. Less experienced team members took tutorials on iOS/backend development. We Also refactored regularly Technical Debt Item Planned Mitigation Weeks Active Updates in features requested post-CCD Requires modification of previously written code. Get clear information from Owner the new updates for features. Do incremental development, test and feedback. Owner/ tech requirements flexibility 3
JIRA - Cumulative Issues Report Data pulled 04/14/2016 Team 2@CS577b Spring 2016
Metrics - Mean Time per Task Data pulled 04/14/2016 Team 2@CS577b Spring 2016
Metrics - Time Spent by Task Type Time [Hours] Task Type Data pulled 04/14/2016 Team 2@CS577b Spring 2016
Definition of Done Design review Internal design review with the team. External design review with TA. Code completed. Code refactored Server code Client code Code commented Code is peer reviewed Team 2@CS577b Spring 2016
Definition of Done (cont.) Tested Successfully with no defects Unit tested Integration tested Regression tested Interoperability tested GUI tested End-user documentation completed and reviewed. Acceptance tested with owner Product is deployed Team 2@CS577b Spring 2016
Support Plan https://www.mindflash.com/wp-content/uploads/2014/09/Learning-Plans.jpg
Support Objectives Objectives The owner/maintainers understand how to update and maintain Share code. Provides correct and clear instructions via thorough documentation. Ensure the owner remains satisfied with the Share product. Assumptions: The team support via 577 will end after Spring 2016 semester The future maintainers are knowledgeable of database maintenance, iOS development, and web development. Team 2@CS577b Spring 2016
Support Strategy Support Lifetime Support via 577 course will be ending Spring 2016 Release Strategy Continuous testing releases with small fixes as-needed Initial deployment of the app After deployment, the team will not support Share after Spring 2016 Release Requirement Determination Used win-win negotiations priority to develop each system. Followed ICSM principle for development. Requirements and win-win conditions were added or changed based on owner feedback. Team 2@CS577b Spring 2016
Support Environment Hardware Computer running Mac iPhone or iPod Touch running iOS 9.0 and later Software PostgreSQL Apache Laravel Eloquent Slim3 Amazon web services access Xcode 7.0 and later Team 2@CS577b Spring 2016
Support Responsibilities Owner responsibilities: Business Support Knowledge of the system requirements and domain Administrative maintenance through admin page Maintainers: Technical Support Software development and maintenance Database maintenance Testing Team 2@CS577b Spring 2016
Transition Plan http://muslimlifehackers.com/wp-content/uploads/2014/07/8226451812_88007f08df_b.jpg http://m.c.lnkd.licdn.com/mpr/mpr/p/6/005/083/203/1cd1e0a.jpg
Objectives/Strategy of Transitions Plan Preparation ✓ Test and evaluate app in environment using Beta Testing. ✓ Move app to owner run server on AWS & configure ✓ Deliver source code and documentation. Verify App for submission on Apple store. Submit app on apple store Team 2@CS577b Spring 2016
Hardware, Software & Site Preparation iPhone or iPod Touch. Computer running Mac Software Requires iOS 9.0 or later. Xcode 7.0 or later Preparation Configure owner AWS Verify app to submit to apple app store Team 2@CS577b Spring 2016
Operational Testing, Training & Evaluation After CCD, we started beta testing the software with the owner (Test Flight) , in his desired environment and circle. So far, results has been positive. Training Training is not required. App is intuitive and easy to use. The owner is very familiar with the app. Users had no misunderstanding issues that require training. Evaluation We have been receiving beta testing feedback from owner and working hard to accommodate his inputs. Evaluation is documented on drive. Team 2@CS577b Spring 2016
Stakeholder Roles & Responsibilities Date Role Responsibility 05/1/16 Owner Finish gaining approval for app to be on apple store DONE Development Team Deploy the app on owner’s AWS and provide support during the transition 04/25/16 Development Team, Owner Implement, as much as possible, owner feedback from beta testing, and agree on support plan for afterwards 04/26/16 Team Have all support documents and manuals ready 04/27/16 Deliver the system (source code and documents are included) Team 2@CS577b Spring 2016
Required Resources Technical Manual Guide on Setting up AWS DB Schema Software Product Elements such as class diagram Guide on how to manage DB. User Manual Simple guide on how to use main features of app. Source Code Team 2@CS577b Spring 2016
Transition Risks for Owner Not getting approved/verified for apple app store. Researching with owner to make sure this doesn’t happen Currently owner has no maintainers. Ambiguous artifacts or code. We commented the code as much as possible and refactored. We’ll create release description and elements are listed in technical manual. AWS scalability problems in the future. Created a pre-configured image for AWS, that will ease deployment of new instances in the future, along with AWS guide in manual. Team 2@CS577b Spring 2016
“Q & A” Do you have any questions? Ask us.