CRITICAL DESIGN REVIEW Gregory LaFlash Patrick O’Loughlin Zachary Snell Joshua Howell Hao Sun Kira Jones THAT ONE SPECIAL SHOT TOSS
CONTENTS TOSS ∎ Problem and Requirements ∎ Design Alternatives ∎ System Description ∎ Design Outline ∎ Project Scheduling ∎ Test Plan and Demonstration ∎ Team Management ∎ Project Concerns
PROBLEM BACKGROUND TOSS ∎ At any large gathering - whether it be a wedding, convention, or sporting event, attendees will want to take and share photos. ∎ With the proliferation of smartphones, taking photos has never been easier. However sharing photos remains cumbersome. The task of sharing photos is cumbersome because one must gather contact information individually in order to retrieve photos. ∎ We propose a way to easily share photos via a crowd- sourced photo database.
NEEDS STATEMENT TOSS ∎ There is a need for a system to allow for the convenient sharing of photos among attendees of an event. ∎ Conveniency is provided in the form of options for: ■Storage ■Privacy ■Security ■Price
GOAL TOSS ∎ We intend to create a system which will support a crowd-sourced photo database. This system will provide various means of storage, privacy, and security for no cost to the user. ∎ Our system will allow users, with a provided code and password for that event, to be able to upload a photo taken in real time during an event to one of the numerous databases our application will support and be able to retrieve all photos taken at that event.
REQUIREMENTS TOSS ∎ Our system must be able to function in real time, and support reasonable upload and download times of photos even during times of high usage. ∎ Our system must provide basic free service to users. The only cost of our system is the cost of the Virtual Server from NFOServers which is $52.45 for 6 months. This cost can be mitigated either through donations or advertisements. ∎ Our system must be convenient to use, and be a better alternative than collecting photos manually.
DESIGN ALTERNATIVES TOSS ∎ Stand-alone web application ■Lack of mobility and convenience for uploading photos. ∎ Stand-alone mobile application ■Lack of storage space and convenience for downloading photos. ∎ System with both web and mobile applications ∎ Mobile Devices: ■Android ■iPhone
SYSTEM LEVEL DESCRIPTION TOSS
ANDROID APPLICATION TOSS ∎ Android Application allows users to enter an event code and take a photo, the application then sends the photo to the Photo Service for processing. ∎ Implementation details: ■Android version 4.0 and above ■Spring API for performing REST calls ■SimpleXML for serializing app data ■ZXing Barcode scanner to read QR codes
PHOTO SERVICE TOSS ∎ Photo Service processes photos sent to it from Andorid application. Processing includes validating event codes, and stripping meta data. Sends photo information to API Abstraction Layer. ∎ Implementation details: ■Java, Jersey (REST), and Grizzly (Server)
API ABSTRACTION LAYER TOSS ∎ API Abstraction Layer responsible for any interaction with storage APIs (Dropbox, FTP, Photobucket, Facebook). Gets photo data from Photo Service to store photos into various storages. Also responsible for retrieving photos for Web Service. ∎ Implementation details: ■Java ■Sockets
WEB SERVICE TOSS ∎ Web Service is responsible for the Web Application, including user accounts, event generation, and photo viewing / downloading. ∎ Implementation details: ■Python ■Django Web Framework ■Nginx for content management ■Gunicorn for web engine ■Bootstrap, HTML, CSS
WEB SERVICE: ACCOUNTS
WEB SERVICE: EVENTS
DATABASE TOSS ∎ Database is responsible for storing all information concerning user accounts, user API access information, event information as well as photo information. ∎ Implementation details: ■Mysql
PROJECT SCHEDULING TOSS
PROJECT SCHEDULING TOSS
PROJECT SCHEDULING TOSS
PROJECT DEADLINES TOSS ∎ March 10th ■Basic Android Application Completion ■Basic Photo Service Completion ■Basic API Abstraction Layer Completion ■Basic Web Service Completion ■Basic Branding Completion ∎ April 14th ■Extended Module Completion ∎ April 25 ■Testing Completion and Bug Fixes
DESIGN VALIDATION PLAN TOSS ∎ Stress test connections between modules: ■Android application and Photo Service (REST) ■Photo Service and API Abstraction Layer (Sockets) ■Photo Service and Database ■API Abstraction Layer and various APIs ■Web Service and Database ∎ Testing involves loading each connection with dummy data to see how much data each connection can handle without losing the integrity of the data.
DESIGN DEMONSTRATION PLAN TOSS ∎ Demonstration using a Local Event ■Our application can be tested and demonstrated during the AggieCon Convention (Josh is on the planning committee) to test how well our system handles itself under stress. ∎ Live Demonstration ■We will provide the class with an event code which they will use to capture photos, during the class we will have a slideshow running showing all incoming photos.
TEAM MANAGEMENT TOSS ∎ Gregory ■Project Lead ■Android Application ∎ Patrick ■Photo Service ∎ Joshua ■API Abstraction Layer ∎ Zachary ■Web Service: Events, Photos ■Database ∎ Kira ■Web Service: Accounts, Photos ∎ Hao ■Website Branding
HEALTH AND SAFETY CONCERNS TOSS ∎ Safety Concerns: ■Privacy concerns for event attendees. ■Allow for meta-data stripping of photos to conceal sensitive information. ■Possible safety impact on the event hosts storage service account. ■Allow for the banning of malicious users based on device ID, require password protected photo viewing.
SOCIAL, POLITICAL AND ETHICAL CONCERNS TOSS ∎ Social Concerns: ■Our service is intended to be a beneficial application to allow event attendees the ability to connect and share through photos. ■Event attendees already consent to having their photos taken as part of attending the event.
MANUFACTURABILITY, SUSTAINABILITY AND ECONOMICS TOSS ∎ Manufacturability: None ∎ Sustainability: ■The cost of the server can be sustained by donations or advertisements. ■APIs can change and needs to be kept up to date. ∎ Economics: ■Only cost is the server. ■We could monetize the system with advertisements, or premium accounts.
OVERVIEW TOSS ∎ Problem and Requirements ∎ Design Alternatives ∎ System Description ∎ Design Outline ∎ Project Scheduling ∎ Test Plan and Demonstration ∎ Team Management ∎ Project Concerns
QUESTIONS? THAT ONE SPECIAL SHOT TOSS