C++ Final Presentation.

Slides:



Advertisements
Similar presentations
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Advertisements

Session 6 Server-side programming - ASP. An ASP page is an HTML page interspersed with server-side code. The.ASP extension instead of.HTM denotes server-side.
INTRODUCTION The Group WEB BROWSER FOR RELATION Goals.
Multiple Tiers in Action
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
Web Development & Design Foundations with XHTML Chapter 9 Key Concepts.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
Lecture 3 – Data Storage with XML+AJAX and MySQL+socket.io
SYST Web Development 2 SYST Web Development 2 Course Overview and Introduction Client/Server Overview.
Internet Applications Spring Review Last week –MySQL –Questions?
ITIS 1210 Introduction to Web-Based Information Systems Chapter 24 How Websites Work with Databases How Websites Work with Databases.
JavaScript & jQuery the missing manual Chapter 11
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
CSCI 6962: Server-side Design and Programming Introduction to AJAX.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
Robinson_CIS_285_2005 HTML FORMS CIS 285 Winter_2005 Instructor: Mary Robinson.
06/10/2015AJAX 1. 2 Introduction All material from AJAX – what is it? Traditional web pages and operation Examples of AJAX use Creating.
Client side web programming Introduction Jaana Holvikivi, DSc. School of ICT.
Java CGI Lecture notes by Theodoros Anagnostopoulos.
Tutorial 7 Creating Forms. Objectives Session 7.1 – Create an HTML form – Insert fields for text – Add labels for form elements – Create radio buttons.
JavaScript – Quiz #9 Lecture Code:
School of Computing and Information Systems CS 371 Web Application Programming PHP – Forms, Cookies, Sessions and Database.
Website Development with PHP and MySQL Saving Data.
Web Development & Design Foundations with XHTML Chapter 9 Key Concepts.
1 © Netskills Quality Internet Training, University of Newcastle HTML Forms © Netskills, Quality Internet Training, University of Newcastle Netskills is.
Where does PHP code get executed?. Where does JavaScript get executed?
Topics Sending an Multipart message Storing images Getting confirmation Session tracking using PHP Graphics Input Validators Cookies.
GOAL User Interactive Web Interface Update Pages by Club Officers Two Level of Authentication.
Web Design: Basic to Advanced Techniques Fall 2010 Mondays 7-9pm 200 Sutardja-Dai Hall Introduction to PHP.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
PHP Error Handling & Reporting. Error Handling Never allow a default error message or error number returned by the mysql_error() and mysql_errno() functions.
 AJAX – Asynchronous JavaScript and XML  Ajax is used to develop fast dynamic web applications  Allows web pages to be updated asynchronously by transferring.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
The basics of knowing the difference CLIENT VS. SERVER.
Event Handling & AJAX IT210 Web Systems. Question How do we enable users to dynamically interact with a website? Answer: Use mouse and keyboard to trigger.
1/7/2016www.infocampus.co.in1. 1/7/2016www.infocampus.co.in2 Web Development training gives you and all-round training in both the design and the development.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
2440: 141 Web Site Administration Web Forms Instructor: Joseph Nattey.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Chapter 5 Validating Form Data with JavaScript
Web Technologies Computing Science Thompson Rivers University
Running a Forms Developer Application
JavaScript and Ajax (Ajax Tutorial)
Introduction to Dynamic Web Programming
Jim Fawcett CSE686 – Internet Programming Spring 2012
Tutorial 10 Programming with JavaScript
z/Ware 2.0 Technical Overview
PHP / MySQL Introduction
Database Driven Websites
Testing REST IPA using POSTMAN
Unit 27 - Web Server Scripting
IS 360 Course Introduction
Web Systems Development (CSC-215)
Web Browser server client 3-Tier Architecture Apache web server PHP
© 2015, Mike Murach & Associates, Inc.
Web Development & Design Foundations with H T M L 5
Tutorial 10 Programming with JavaScript
Lecture 5: Functions and Parameters
Intro to PHP.
Web-Applications & AJAX
Architecture of the web
How to debug a website using IE F12 tools
Web Technologies Computing Science Thompson Rivers University
Client-Server Model: Requesting a Web Page
Web Application Development Using PHP
Presentation transcript:

C++ Final Presentation

Topics Splash Page Sandbox Backend Parser Code Generation User Interface (Instructor,Account, Student) Documentation

Splash Page Login to web application Create an account User logs in with email and password A php session is created for that user Create an account A user can create a new account by inputting their email, password, first name, and last name. Passwords are hashed using bcrypt

Sandbox Drag'n'Drop zone AJAX control panel output box Line highlighting Variable box updates

Sandbox . Drag ' n ' Drop HTML Element Based Javascript enabled <script type-"text/javascript"> //setup the listeners on the page to be used for drag'n'drop var dropZone = document.getElementById('drop_zone'); dropZone.addEventListener('dragover', handleDragOver, false); dropZone.addEventListener('drop', handleFileSelect, false); </script> //This function handles the file that is dropped in the box function handleFileSelect(evt) { evt.stopPropagation(); //to stop browsers' default action evt.preventDefault(); //to stop browsers' default action var files = evt.dataTransfer.files; // FileList object. for (var i = 0, f; f = files[i]; i++) { var r = new FileReader(); r.onload = function(e){ document.getElementById('userCode').value = e.target.result; } r.readAsText(f);

Sandbox . AJAX control panel AJAX call to CGI scripts for execution Run activates after compile Javascript monitors keypress Forces compiling upon changes Simple debugger control

Sandbox . Output box Contains messages from backend Gives simplified version of debugger output Acts as if it's a modified stdout

Sandbox . Line Highlighting Small jQuery code adds divs with line #'s to textarea tweaked Javascript to allow for highlighting Made CSS class to show highlighted line Changed the HTML class/id of divs to show current line Client side parsing of gdb output calls function below, passes in the line number

Sandbox . Variable Box Box to show program variables and values Updates based upon Next and Step button gdb output is parsed on backend JSON object returned with variables:values Basic HTML table innerHTML replaced any time a button is pressed

Backend Components backendServer.py gdbthinclient.cgi gdbwrapper.py srvThread gdbthinclient.cgi gdbwrapper.py asyncRead.py genCPP.cgi runprog.cgi

Backend . backendServer.py Multithreaded socket server receives requests from gdbthinclient over socket spawns new thread of srvThread class for each connection srvThread class communicates with gdb instance through gdbwrapper.py Web backendServer.py srvThread Request Request srvThread

Backend . gdbthinclient.cgi cgi script called when button is pressed on Sandbox.php Button press corresponds to command sent to backendServer.py and from there to gdb returns results of gdb command in JSON object via AJAX Web backendServer.py gdbthinclient.cgi

Backend . gdbwrapper.py Wraps gdb to provide communication between front end website and gdb instance Sends commands to gdb and reads output Utilizes asynchronous I/O through the asynchRead class to read the output gdbwrapper.py asyncRead.py backendServer.py gdb

Backend . genCPP.cgi Simple script to generate the C++ file Takes code from HTML textarea, writes to file named /temp/prog_user.cpp Calls g++ command on file, saves executable name /temp/compiledfrompython_user Uses pipe and JSON to send return output

Backend . runprog.cgi Similar to genCPP.cgi, calls command to simply execute the file Runs file based on username ex [ ./ compiledfrompython_csmith1 ] Only active after Compile is pressed (or no changes)

Parser Pull XML from database Pull information out of XML MySQLdb save XML in temp directory on server Pull information out of XML stores information in list objects search objects based on 'rbid' attribute

Code Generation ElementTree Trace XML build order of calls each element has logic for generating code ex) var, else, functioncall

User Interface Student Instructor Account For the student to answer assignments Instructor For the instructor to manage assignments, courses, and questions Account For the user to change account settings

User Interface .Account The user can change the password Must enter existing password Must enter the new password twice The user can change their name First and last name The user can change login Must be unique

User Interface .Instructor Courses can be added,edited and deleted Assignments can be added,edited and deleted Questions can be added,edited and deleted

User Interface .Student Students can answer assignments that are assigned to them Students can update them after they are answered also The assignments display on the sidebar on the assignments page.

Questions?