TCU Senior Design Project,

Slides:



Advertisements
Similar presentations
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Advertisements

Web Server Hardware and Software
B.Sc. Multimedia ComputingMedia Technologies Database Technologies.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
Dynamic Web site With PHP and MySQL. MySQL The combination of MySQL database and PHP scripting language is optimum for building dynamic websites. MySQL.
INTRO TO MAKING A WEBSITE Mark Zhang.  HTML  CSS  Javascript  PHP  MySQL  …That’s a lot of stuff!
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
WEB DESIGN SOME FOUNDATIONS. SO WHAT IS THIS INTERNET.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Computer for Health Sciences
This presentation will guide you though the initial stages of installation, through to producing your first report Click your mouse to advance the presentation.
Chapter-4 Windows 2000 Professional Win2K Professional provides a very usable interface and was designed for use in the desktop PC. Microsoft server system.
1 A web enabled compact flash card reader eeble. 2 Weeble Team Chris Foster Nicole DiGrazia Mike Kacirek Website
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
Wanna know how to get from “Y” to“K” ? Farisai Mabvudza Uma Rudraraju & George Wells Greg Foster & Presented By…Supervised By…
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
NMED 3850 A Advanced Online Design January 12, 2010 V. Mahadevan.
1 Welcome to CSC 301 Web Programming Charles Frank.
Plant Accession Application Maintenance Manual. Accession Application Website Environment Overview WinHost.com ASP Pages VBScript Procs Constants Style.
NETWORK HARDWARE AND SOFTWARE MR ROSS UNIT 3 IT APPLICATIONS.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
WHAT IS SERVER SIDE SCRIPTING? Server-side scripting is a web server technology in which a user's request is verified by running a script directly on the.
Introduction and Principles Web Server Scripting.
WEB SERVER SOFTWARE FEATURE SETS
Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
G046 Lecture 04 Task C Briefing Notes Mr C Johnston ICT Teacher
Understanding Web-Based Digital Media Production Methods, Software, and Hardware Objective
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
E-Business Infrastructure PRESENTED BY IKA NOVITA DEWI, MCS.
CS299: Web Programming and Design Instructor: Dr. Fang (Daisy) Tang
Web Programming Language
Scripting - Client-side vs. Server-side Scripting
Distributed Control and Measurement via the Internet
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Objective % Select and utilize tools to design and develop websites.
Create setup scripts simply and easily.
10/09/2018 The eFolio Arrives John Sewell.
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
Netscape Application Server
World Wide Web policy.
What is WWW? The term WWW refers to the World Wide Web or simply the Web. The World Wide Web consists of all the public Web sites connected to the Internet.
Introduction and Principles
Capstone Project, Computer Science Department
Evolution of Internet.
Content Management Systems
Client / Server Application Presentation
Chapter 18 MobileApp Design
Computer Concept What is a computer?
Objective % Select and utilize tools to design and develop websites.
PHP / MySQL Introduction
Database Driven Websites
Dynamic Web Pages Jin Wu INF 385E Information Architecture
Lecture 1: Multi-tier Architecture Overview
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Manuscript Transcription Assistant Initiative
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
IntroductionToPHP Static vs. Dynamic websites
Architecture of the web
Web Application Development Using PHP
Presentation transcript:

TCU Senior Design Project, 2015-16 Elemental Kinection TCU Senior Design Project, 2015-16

Project Team Samuel Kent Nathan Johnson Jack Kempner Aakash Tyagi

Project Overview Elemental Kinection looks to improve on tele-rehabilitation by introducing the ability for therapist to dynamically add exercises to the application without the need for programmer assistance This is achieved through two distinct applications: User Therapist

Functional Requirements General Requirements Therapists shall be able to create new exercises for the application Therapists shall be able to prescribe therapy sessions remotely Therapists shall be able to view results of therapy sessions remotely Patients shall be able to obtain therapy sessions remotely Patients shall be guided through exercises by the Kinect application Patients shall receive real-time and historical assessments of their therapy

Functional Requirements Kinect Application Requirements The patient shall be able to navigate the menus of the application with simple gestures as well as with mouse and keyboard The application shall be able to receive an exercise from either a web or local source The patient shall be guided through their therapy session by the application via avatar The patient shall receive real-time feedback on accuracy of exercise and number of repetitions The application shall be able to store the results of the exercise and either upload them to the server or save them to a file that can be transferred via physical storage medium Exercises must be either sitting or standing for the Kinect application to register them

Functional Requirements Database Requirements Each patient and therapist shall be assigned a unique ID. One-to-many connection between therapist and their patients Database shall store therapy session results of each user Interactions with database shall be through the web application and the desktop application Database shall store and accept new exercises

Functional Requirements Web Application Requirements Each therapist and user shall have a unique login ID and password Therapist shall have a page that allows them to upload therapy sessions Therapist shall have a page that allows them to upload new exercises Therapist shall have a page that allows them to view past result of patients Therapist shall have functionality to add new patients to the system Patients shall be able to log in to see their results Patients shall be prohibited from altering the database

Non-functional Requirements Product Requirements Kinect application shall be able to track exercises based on a confidence interval of 0.75 to 1.0 Results shall be displayed in a graphical representation of completed reps and exercises The web application and database shall have a response time of less than 2 seconds The Kinect application shall have a response time of less than a second Patients shall be able to use Kinect application with our provided instructions manual

Non-functional Requirements Organizational Requirements The Kinect v2 is the compatible hardware version of the Kinect used in this application A therapist is required to set up an account for the user and prescribe sessions

Non-functional Requirements External Requirements The database shall remove, when possible, personally identifying information Therapists shall be able to effectively learn gesture builder through online manuals and walkthrough videos

System Architecture

Web development for Elemental Kinection Web Application Web development for Elemental Kinection

System Architecture

Web Application - General Web is a highly programmable environment that allows mass customization through a large and diverse range of applications Web applications are computer programs allowing website visitors to submit and retrieve data to/from a database over the Internet using their preferred web browser The data is then presented to the user within their browser as information is generated dynamically (in a specific format, e.g. in HTML using CSS) by the web application through a web server

Advantages of web apps They perform their function irrespective of the operating system and browsers running client side Web applications are quickly deployed anywhere at no cost and without any installation requirements (almost) at the user’s end

How do web apps work? Three-layered web application model The first layer is normally a web browser or the user interface The second layer is the dynamic content generation technology tool such as Java servlets (JSP) or Active Server Pages (ASP) The third layer is the database containing content (e.g., news) and customer data (e.g., usernames and passwords, social security numbers and credit card details)

A general web app architecture

Meet Django Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design It’s free and open source Ridiculously fast – concept to completion as quickly as possible Fully loaded - includes dozens of extras you can use to handle common Web development tasks Reassuringly secure, exceedingly scalable and incredibly versatile

Security in Django Cross site scripting (XSS) protection Cross site request forgery (CSRF) protection SQL injection protection Clickjacking protection SSL/HTTPS Host header validation

Popular sites built with Django Pinterest Instagram Bitbucket Spotify NASA Prezi Eventbrite Firefox

How to get Django https://www.djangoproject.com/download/

Database – MySQL SQL stands for Structured Query Language SQL lets you access and manipulate databases MySQL is the world’s most popular open source database Enables the cost-effective delivery of reliable, high-performance and scalable Web-based and embedded database applications

Database – ER model

Database – User types Admin Therapist Patient Responsible for maintaining the database, website, and accounts Therapist Can act as an admin account Patient No personal data stored

Database – ER model

Database - Exercises Data on exercises is stored in .gba format Number of reps per session is stored in the relationship between exercises and sessions

Web App - Development XAMPP for MySQL server XAMPP is an integrated server package of Apache, MySQL, PHP and Perl (the AMPP in XAMPP) that all run from a removable drive. Python 2.7.5 Django 1.7.9 That’s it – start developing!

How much have we done? Setting up local development server Setting up database A running Django application Ability to create accounts – Admin, Therapist and Patient

Sneak peak – project directory

Sneak peak – models.py

Sneak peak – views.py

Sneak peak – settings.py

Sneak peak – urls.py

Prototypes Admin Homepage Login Screen

Prototypes Admin – Create a Therapist Admin – Create an Admin

Prototypes Therapist Home Page Exercise List

Prototypes New Exercise Patient List

Prototypes Add New Patient View Patient

Prototypes Assign Session Patient Home Page

Hardware, Software and how it applies to Elemental Kinection The Kinect Hardware, Software and how it applies to Elemental Kinection

What is a Kinect? A package of sensing equipment designed for the purpose of motion and audio tracking in a 3 dimensional environment The Kinect Sensor contains the following components: 1080x1920 color video camera 512x424 Infrared Camera 4 directional microphones 3 Infrared Transmitters for depth sensing The Kinect for Windows also comes with a converter block for Windows based applications

Kinect - Capabilities Has an effective range of depth sensing from .5 to 4.5 meters with a field of view 70x60 degrees Color imaging is captured at 30 fps in good light and 15 fps in low light The directional microphones can track the origin of sound and focus on specific regions in the Kinect space The Kinect can track 25 distinct joints, both location and orientation arranged in a skeleton

Kinect - Requirements The user of the Kinect, in our case the patient or therapist, must have a PC with the following specifications: An i7 Processor is recommended but the application was developed on i5’s 4GB of RAM (recommended) DirectX 11 (required) USB 3.0 Intel or Renesas chipsets (required w/ spotty success on other chipsets) Windows 8/8.1 (required) haven’t tested Windows 10

Kinect - Limitations As mentioned previously performance is degraded in poor lighting The Kinect is unreliable in detecting quick and jerky movements The Kinect operates most reliably when it has a front on view of the user A cluttered space can result in the Kinect having difficulty detecting joints

Kinect – Architecture (v2) The Kinect provides API’s for development of native(C++), .NET, WinRT and Unity (not pictured) applications on the Kinect

Kinect – Data sources Sensor Source Reader Frame Ref Frame

Visual gesture builder

Visual gesture builder - continued

Visual gesture builder - finally

Unity

Unity - continued

Kinect - Prototypes Login Screen Error Screen

Kinect - Prototypes Kinect Main Screen Kinect Exercise Screen

Kinect - Prototypes View Statistics View Settings

Machine learning vs Heuristic How Kinect learns

Milestones and Deliverables Milestone/Deliverable Date Project Plan V1.0 October 13, 2015 Skeleton Website Project Support Environment October 15, 2015 Requirements Documentation V1.0 October 29, 2015 Design Documentation V1.0 December 3, 2015 Iteration I December 10, 2015 Iteration II January 22, 2015 Iteration III February 26, 2015 Iteration IV March 25, 2015 NTASC April 22, 2016 SRS Final Presentation May 28, 2016 Documents and DVD

Iterations Iteration 1: Core functionality of application for guiding and measuring exercises is complete  Extent of Unity contribution is decided and environment is created. Beginning stages of integration with Kinect are established Web-based technologies for the database and website are researched and selected at this point. Core schema of the database is determined. Basic integration of website and database is complete.

Iterations Iterations 2: Application for guiding and measuring exercises is in the stage of being combined with Unity for a complete package for users Method for how therapist will store sessions in the database is finalized. Interface for therapist to upload and store sessions and new exercises is finalized.  Work begins on linking local applications into the web-based database

Iterations Iteration 3: Therapist is able to load new exercises and sessions to web-based site/database Application is able to update with these sessions and exercises to serve the user Application is able to transmit results

Iterations Iteration 4: A customer ready product is produced If a client has emerged at this point extensive cooperative testing is conducted General testing and tweaking is done at this point

Thank you Questions / Feedback / Suggestion?