Release Descriptin PicShare Team 02 Team Members Sultan Alsarra Adil cem Albayrak Julapat Julnual Charles Reitz Mhammad Almunea Aref Shafaeibejestan Andrea Brwn Travis Weaver Dennis Evans 4/26/16
Versin Histry Date Authr Versin Changes made Ratinale 04/15/16 Aref 0.9 Initial Draft created Initial draft fr TRR Package 04/26/16 Aref 1.0 Cmplete versin Release Descriptin. RD_ASBUILT_S16b_T02_V1.0.dc ii
Table f Cntents RELEASE DESCRIPTION... I VERSION HISTORY... II TABLE OF CONTENTS... III 1. Abut This Release...4 1.1 Physical Inventry f materials released...4 1.2 Inventry f sftware cntents...4 2. Cmpatibility Ntes...9 2.1 Back-end...9 2.2 Frnt-end...9 3. Upgrading...10 4. New Features and Imprtant Changes...10 4.1 New Features...10 4.2 Changes since previus release...11 4.3 Upcming Changes...11 5. Knwn Bugs and Limitatins...11 RD_ASBUILT_S16b_T02_V1.0.dc iii
1. Abut This Release This is the first release f applicatin. The deliverables are: Deliverable Name Las Mdificatin Date Last Versin Operatinal Cncept Descriptin (OCD) 4/16/16 2.2 System and Sftware Architecture Descriptin (SSAD) 4/25/16 2.4 Feasibility Evidence Descriptin (FED) 4/21/16 3.0 Life Cycle Plan (LCP) 4/15/16 1.6 Win Cnditins (WC) 11/8/15 2.0 System and Sftware Supprt Plan (SP) 4/19/16 1.0 Technical Manual 4/26/16 1.0 User Manual 4/26/16 1.0 Test Prducers and Results (TPR) 4/10/16 1.0 Test Plan and Cases (TPC) 4/10/16 2.0 Release Descriptin (RD) 4/26/16 1.0 1.1 Physical Inventry f materials released There are n physical materials in this release. 1.2 Inventry f sftware cntents 1.2.1 Back-end Cntent Categry Files Descriptin Read me README.md Sme infrmatin abut hw t install, run the applicatin. Git Specific.gitignre Git ignre list. Dependency Management Files cmpser.jsn cmpser.lck List f all the used PHP packages is here. Cmpser generated. Yu need t cmmit this. Cnfiguratin app/database.php Database btstraping app/dependencies.php Defining all the Slim dependencies app/middleware.php Applicatin-wide middlewares app/settings.php Slim settings Variables app/variables.php Define applicatin variables.env Envirnment variables. (it s in gitignre).env-sample Since.env shuld be cnfigured differently fr each envirnment, it s a RD_ASBUILT_S16b_T02_V1.0.dc 4
sample file. Test Files build.xml Ant build file. build/* Build files fr each specific tl. test/* Test files. Database /database/createdb.sql Create table SQL cmmands. /database/db_functins.sql Create SQL functin cmmands. Script recreate_db.sh Shell script fr recreating database. update_server.sh Shell script fr updating server. rig.pem This is the key used in the update_server script. It is in gitignre and shuld nt be in surce cde. Templates app/templates/adminindex.twig Admin lgin page app/templates/cnfiguratin.twig Admin cnfiguratin page app/templates/dashbard.twig Admin dashbard page app/templates/email_base.twig Email base template app/templates/email_reset_passwrd.twig Reset passwrd email template app/templates/events.twig Admin events page app/templates/head.twig HTML includes app/tempaltes/hme.twig Landing page app/tempaltes/index.twig API list page app/templates/pictures.twig Admin pictures page app/tempaltes/sidebar.twig Admin sidebar template app/tempaltes/tpbar.twig Admin tp bar template app/templates/user_reset_passwrd.twig User reset passwrd page app/templates/users.twig Admin users page Actins (Views) app/src/actin/adminactin.php Admin cnsle views. app/src/actin/eventactin.php Event related views. app/src/actin/hmeactin.php Landing page and API list views. app/src/actin/pictureactin.php Picture related views. app/src/actin/useractin.php User related views. Entities (Mdels) app/src/entityappsettings.php Applicatin settings database queries. app/src/entity/event.php Event database queries. app/src/entity/picture.php Picture database queries. app/src/entity/user.php User database queries. Errr Handler app/src/handler/apierrr.php API errr handler. Middlewares app/src/middleware/adminauthrizatin.php app/src/middleware/annymusadminauthrizatin.php app/src/middleware/authrizatin.php app/src/middleware/jsnrespnse.php Validatrs app/src/validatr/event/createprivatevalidatr.php Validatrs that are specific app/src/validatr/event/createpublicvalidatr.php app/src/validatr/event/getaccessvalidatr.php t views. app/src/validatr/event/getallvalidatr.php RD_ASBUILT_S16b_T02_V1.0.dc 5
app/src/validatr/event/haseventid.php app/src/validatr/event/iseventowner.php app/src/validatr/picture/geteventpicturesvalidatr.php app/src/validatr/picture/getnearbyvalidatr.php app/src/validatr/picture/getuservalidatr.php app/src/validatr/picture/haspicidvalidatr.php app/src/validatr/picture/pstteventvalidatr.php app/src/validatr/picture/psttlcatinvalidatr.php app/src/validatr/user/createfbvalidatr.php app/src/validatr/user/createvalidatr.php app/src/validatr/user/frgtpassvalidatr.php app/src/validatr/user/lginfbvalidatr.php app/src/validatr/user/lginvalidatr.php app/src/validatr/validate.php Field validatr functins app/src/validatr/validatefrm.php Frm validatrs. Utility functins app/src/util/emailutil.php Functins fr sending email app/src/util/functins.php General utility functins app/src/util/pictureutil.php Picture related utility functins app/src/util/userutil.php User related utility functins Main File public/index.php Applicatin pint f entry Rutes (Cntrllers) app/rutes.php Rutings are defined in here. Style sheets public/cnfig.rb Cmpass cnfiguratin file. static/css/style.css Cmplied css files that shuld be used. static/sass/style.scss static/sass/afterlgin.scss static/sass/cnfiguratin.scss static/sass/dashbard.scss static/sass/events.scss static/sass/hme.scss static/sass/jquery-tast-plugin.scss static/sass/lgin.scss static/sass/pictures.scss static/sass/prev-pass.scss static/sass/users.scss Scripts static/js/script.js Images static/js/thumbnail.js static/js/jquery.prevue.min.js static/js/jquery.tast.min.js static/js/mment-timezne-with-data.min.js static/images/app_stre.svg static/images/bg.jpg static/images/clrs.png static/images/hr_lg.png static/images/lg.png static/images/lg_400.png static/images/lg_sl.png RD_ASBUILT_S16b_T02_V1.0.dc 6
static/images/p_lg.png static/images/shareapp.png 1.2.2 Frnt-end Cntent Categry Cnfiguratin Mdel ViewCntrllers Files Share/Cnfig.h Share/Cnfig.m Share/Mdel/PictureMdel.h Share/Mdel/PictureMdel.m Share/LginViewCntrller.h Share/LginViewCntrller.m Share/LginTableViewCell.h Share/LginTableViewCell.mz Share/NearbyViewCntrller.h Share/NearbyViewCntrller.m Share/MapViewCntrller.h Share/MapViewCntrller.m Share/NearbyFilterCntrller.h Share/NearbyFilterCntrller.m Share/NearbyTableFilterCntrller.h Share/NearbyTableFilterCntrller.m Share/EventFilterCntrller.h Share/EventFilterCntrller.m Share/EventTableFilterCntrller.h Share/EventTableFilterCntrller.m Share/EventViewCntrller.h Share/EventViewCntrller.m Share/EventSettingsViewCntrller.h Share/EventSettingsViewCntrller.m Share/EventSettingsTableViewCntrller.h Share/EventSettingsTableViewCntrller.m Share/EventPicViewCntrller.h Share/EventPicViewCntrller.m Share/PasswprdPpverViewCntrller.h Share/PasswprdPpverViewCntrller.m Share/CreateEventCntrller.h Share/CreateEventCntrller.m Share/CameraLaderViewCntrller.h Share/CameraLaderViewCntrller.m Share/CameraViewCntrller.h Share/CameraViewCntrller.m Share/LibraryViewCntrller.h Share/LibraryViewCntrller.m Share/LibraryCntrllerDelegate.h Share/PstPhtViewCntrller.h Share/PstPhtViewCntrller.m Share/EventSearchViewCntrller.h Share/EventSearchViewCntrller.m Share/MyEventsViewCntrller.h Share/MyEventsViewCntrller.m RD_ASBUILT_S16b_T02_V1.0.dc 7
Table Cell Cllectin Cell Netwrk Managers Util Share/MyPhtsViewCntrller.h Share/MyPhtsViewCntrller.m Share/SettingsViewCntrller.h Share/SettingsViewCntrller.m Share/SettingsTableViewCntrller.h Share/SettingsTableViewCntrller.m Share/MeViewCntrller.h Share/MeViewCntrller.m Share/PhtViewerViewCntrller.h Share/PhtViewerViewCntrller.m Share/PhtViewerDelegate.h Share/Table Cell/PictureTableViewCell.h Share/Table Cell/PictureTableViewCell.m Share/Table Cell/MyEventsTableViewCell.h Share/Table Cell/MyEventsTableViewCell.m Share/PictureCllectinViewCell.h Share/PictureCllectinViewCell.m Share/LibraryCllectinViewCell.h Share/LibraryCllectinViewCell.m Share/DwnladCntrller.h Share/DwnladCntrller.m Share/UpladCntrller.h Share/UpladCntrller.m Share/Respnse.h Share/Respnse.m Share/NSMutableData+Pst.h Share/NSMutableData+Pst.m Share/GetRequestGeneratr.h Share/GetRequestGeneratr.m Share/NSString+URLEncde.h Share/NSString+URLEncde.m Share/RequestHelper.h Share/RequestHelper.m Share/ScrllManager.h Share/ScrllManager.m Share/UserManger.h Share/UserManager.m Share/LcatinManager.h Share/LcatinManager.m Share/NearbyPreferencesManager.h Share/NearbyPreferencesManager.m Share/EventPreferencesManager.h Share/EventPreferencesManager.m Share/RecentEventsManager.h Share/RecentEventsManager.m Share/Alerter.h Share/Aleter.m Share/SignupValidater.h Share/SignupValidater.m Share/Srter.h Share/Srter.m Share/TimeFrmatter.h Share/TimeFrmatter.m RD_ASBUILT_S16b_T02_V1.0.dc 8
Share/Utilities.h Share/Utilities.m Share/ViewAdjuster.h Share/ViewAdjuster.m 2. Cmpatibility Ntes 2.1 Back-end The back-end f this applicatin is using PHP. All the packages are cmpatible with bth PHP 5.6 and 7.0. We tested it n several machines with different web servers (Nginx and Apache) and it can use either f them. These are the installed cmpnents n the deplyment server. Cmpnent Versin Apache 2.4.7 PstgreSQL 9.3.12 PHP 2.6 Yu can als find the PHP packages in the cmpser.jsn file. This is a list f PHP packages that we installed using cmpser. Package Name Versin Slim Framewrk 3.3 PHP dtenv 2.2 Slim Twig View 2.0 Mnlg 1.13 Swiftmailer 5.4 Ggle Recaptcha 1.1 Illuminate (Elquent Database) 5.2 Mst f the packages are nt cmpatible with PHP 5.4 r belw. 2.2 Frnt-end Fr the frnt-end applicatin, the nly requirement is having ios 9.0 r abve. RD_ASBUILT_S16b_T02_V1.0.dc 9
3. Upgrading We created a separate dcument (Technical Manual) just fr hw t install and cnfigure the server. Please refer t that dcument fr detailed explanatin n this tpic. 4. New Features and Imprtant Changes This is the first fficial release f applicatin and therefre all the files and features are new. In this sectin, we mentin ur applicatin s features and test results. 4.1 New Features PicShare, a mbile applicatin that gives users ability t share pictures easier than it is tday. It als includes a web based admin prtal s admin can cntrl and bserve users behavir. Hence, we have tw types f users, mbile phne users that are using ur system with ur ios applicatin and admins that lgin t the admin prtal. These are main use cases f system frm mbile phne users pint f view: Create Public Event: Every user can create a public event by giving it a name. And after creating that, every user can add picture t that. Create Private Event: These events are creating by using a name and passwrd, s specific users that have the passwrd can access and add pictures. Delete Event r Picture: Users can delete events r pictures they added. Add Picture t Event: Users can add pictures t events they have access t, that is all public events and private events that they knw passwrd f. Add Picture t Nearby: Users can add picture t their nearby lcatin, that is the picture will be assciated with a lcatin. Brwse Events: Users can search fr events by their names, a list will be shwn t them and if the event is private, they are ging t need a passwrd t access it. Brwse Nearby Pictures: Users can brwse nearby pictures; they can change the radius t retrieve a picture. These are main use cases f system frm admin s pint f view: Statistical Reprt: Admin is able t see an verview f system state. User Management: Admin can see a list f users and filter the list based n sme fields (e.g., username). Admin can als delete users. Picture Management: Admin can see a list f pictures and filter the list based n sme fields (e.g., date that picture is added t system). Admin can als delete pictures r restre reprted pictures. Event Management: Admin can see a list f events and filter the list based n sme fields (e.g., name f the event). Admin can als create new public event, delete and mdify events. Cnfiguratin: Admin can change sme attributes f the system. Fr example, admin can change the lifetime f pictures and events in the system. RD_ASBUILT_S16b_T02_V1.0.dc 10
4.2 Changes since previus release This is the first fficial release f applicatin and therefre all the changes are new. These include: Server: We mved ur applicatin t a better AWS instance that can scale. We created an image f back-end installatin in AWS, s we can easily duplicate the installatins with just ne click. We used PHP 5.5 fr the previus server, but since this versin f PHP is nt supprted anymre, we upgraded that t versin 5.6. Testing: Fr the admin page we used manual testing t fix the bugs. We are als ding sme internal testing using Test Flight applicatin. During this testing, we changed sme f the features and UI elements based n Rig s feedbacks. T manage these feedbacks, we used Ggle Drive. We als used JMeter t d sme lad and perfrmance testing. All ur test cases passed. Yu can see a detailed versin f hw ur testing prcess went in the TPC and TPR dcuments. 4.3 Upcming Changes As the next step, we have t submit the applicatin t App Stre, fr external testing. 5. Knwn Bugs and Limitatins This versin is the first cmplete release f the applicatin. During the testing we fixed all f the bugs that we fund. These are sme f the limitatins that still remains: Limitatins Sme functins in the backend are cmplicated and needs t be simplified fr the sake f maintainability. Since we are using PHP and relatinal databases, we may nt be able t scale the server that much. Hwever, the lad testing results shwed that we can easily handle up t thusands f users. RD_ASBUILT_S16b_T02_V1.0.dc 11