KEMBAR78
CM Web Application Presentation | PPTX
CM Web Application
Andrew McGarry
Summer Intern
Division
781-734-4234
andrew.mcgarry@linquest.com
LinQuest Proprietary Information
Overview of Presentation
 Overview of My Project
 Version Control Concepts
 Servers
 Web Applications
 Django Web Framework
 Linux and Bash Scripting
 Virtual Machines
 Improvements
 Resources I Used
7/9/2015 1LinQuest Proprietary Information
About My Project
 Design and Develop a Web Application
 Should be intuitive
 Set Up and Implement a CM Server
 Utilize Bash Scripts to Process Requests
 Query CM server for project information
 Check out desired project
 Build indicated project
 Notify the user when tasks are completed
 Learning Experience
 Introduce to the Linux operating system
 Set up a web server, CM server
 Learn to script in Bash
 Design and develop a web site from the ground up
7/9/2015 2LinQuest Proprietary Information
Version Control Concepts
 Greater Control of Development
 Makes it easy to keep track of incremental progress
 Allows project to revert to any stage in its development
 How Changes are Stored
 “Snapshots”
 “Deltas”
 Branching and Merging
 Multiple people can work on same project simultaneously
 Branches can be merged into main line
 Can result in conflicts
 Must be solved through human interaction!
 Tagging
 Label particular set of versions as belonging together
7/9/2015 3LinQuest Proprietary Information
Servers
 Applications which provide content over a network
 CM Servers
 Web Servers
 FTP Servers
 SVNServe
 Fully capable server packaged with Subversion
 No web browsing capability
 Apache
 Free, open source, multi-purpose server
 Initial setup can be arduous
 Robust security
 Django Development Server
 Not for production purposes
 Comes with Django Web Framework
7/9/2015 4LinQuest Proprietary Information
Web Applications
 Separation of Capabilities
 In the beginning, everything was mashed together
 Languages have divided responsibilities
 HTML = Content
 CSS = Presentation
 Javascript = Behavior
 HTML
 The “backbone” of a website
 Provides the raw materials
 CSS
 Controls layout of the web page
 Font styles, colors, line breaks, etc.
 Javascript
 Decides how elements interact to user input
 Ex. Drop-down menues, buttons, pointer clicks…
7/9/2015 5LinQuest Proprietary Information
Django Web Framework
 Python Application
 Intended to facilitate rapid web development
 Origins in a Midwest newspaper company
 Enforces Separation of Capabilities
 Models interact with server-side databases
 Views are responsible for data processing
 Forms are extensions, more or less
 Generate templates, handle HTTP requests
 Templates = presentation
 Written in HTML
 Plug in CSS references, Javascript, etc.
 Basically the typical web site
 Servers
 Comes with development server
 Upload to Apache once finished
7/9/2015 6LinQuest Proprietary Information
Urls.py
HTTP Request
Views
Template
Form
Template Template
Form
Model
Database
Request
Request
Linux (Fedora 17)
 Open Source Operating System
 Open to public through GNU general public license
 Can sell new distributions as long as distribution is open source
 Hmmm…no tech support?
 Online community is HUGE
 Distributions
 Approximately 350 recorded distributions
 Fedora 17
 Maintained an updated by open community
 Best features are included in Red Hat distributions
 Look out! Updates are frequent and hefty.
7/9/2015 7LinQuest Proprietary Information
7/9/2015 8LinQuest Proprietary Information
Bash Scripting
 Shells
 Act as fronts for the operating system
 Accept commands from user, passes to kernel
 Ex. Windows Explorer
 Contains the desktop, start menu, task bar, file browser.
 Bash
 Type of shell made for Linux
 Provides a command prompt for the user
 Bash Scripting
 Commands saved in a file make a script
 Contains many basic programming functions
 Control flow loops/statements
 Arithmetic operators
 Assignment operators
 Boolean expressions
7/9/2015 9LinQuest Proprietary Information
Virtual Machines
 Also known as VM’s
 Definition
 A completely isolated guest operating system installed within a host operating system
 Ex. Fedora running in Windows
 Hardware Virtualization /Software Emulation
 Software techniques to overcome differences in hardware/software
 Can be extremely difficult, and sacrifices performance
 Separate from host OS all the while…
7/9/2015 10LinQuest Proprietary Information
VirtualBox
 VM Application for Windows
 Inserts itself below the kernel to intercept
requests from the guest OS
 Monitors guest OS to prevent damage
 Completely isolated from host OS
 How it Works (Basically)
 XML settings file
 Runs guest OS off of disk image
 All hard disk requests from guest go to disk
image
 Everything stored in a directory in host
OS
 Routing HTTP requests was
tricky
7/9/2015 11LinQuest Proprietary Information
7/9/2015 LinQuest Proprietary Information 12
LinQuest Network
10.5.1.7
192.168.56.1
Windows
VirtualBox
Server in VM
IP: 10.0.2.15*
Host IP
VirtualBox
Interface
NAT
7/9/2015 LinQuest Proprietary Information 13
And now, a demonstration…
Improvements
 Run project at user level, not root
 Transfer it to an Apache server
 Summary field needs fixing
 No instruction field
7/9/2015 14LinQuest Proprietary Information
Online Resources
 Linux Documentation and Guides:
 https://www.linux.com/learn/new-user-guides
 http://oreilly.com/openbook/linag2/book/index.html
 Fedora Documentation:
 http://docs.fedoraproject.org/en-US/index.html
 Subversion Guides:
 http://svnbook.red-bean.com/
 http://www.technical-recipes.com/2011/how-to-set-up-a-linux-based-subversion-svn-server/
 Makefile Tutorial:
 http://www.cprogramming.com/tutorial/makefiles.html
 Bash Scripting:
 http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
 http://mywiki.wooledge.org/BashGuide
 VirtualBox Documentation:
 https://www.virtualbox.org/manual/UserManual.html
7/9/2015 15LinQuest Proprietary Information
Online Resources Con’t
 Django Web Framework Documentation:
 https://docs.djangoproject.com/en/1.4/
 Web Development:
 http://www.w3schools.com/html/html_forms.asp
 http://code.google.com/edu/ajax/index.html
 Python Documentation:
 http://docs.python.org/index.html
7/9/2015 16LinQuest Proprietary Information

CM Web Application Presentation

  • 1.
    CM Web Application AndrewMcGarry Summer Intern Division 781-734-4234 andrew.mcgarry@linquest.com LinQuest Proprietary Information
  • 2.
    Overview of Presentation Overview of My Project  Version Control Concepts  Servers  Web Applications  Django Web Framework  Linux and Bash Scripting  Virtual Machines  Improvements  Resources I Used 7/9/2015 1LinQuest Proprietary Information
  • 3.
    About My Project Design and Develop a Web Application  Should be intuitive  Set Up and Implement a CM Server  Utilize Bash Scripts to Process Requests  Query CM server for project information  Check out desired project  Build indicated project  Notify the user when tasks are completed  Learning Experience  Introduce to the Linux operating system  Set up a web server, CM server  Learn to script in Bash  Design and develop a web site from the ground up 7/9/2015 2LinQuest Proprietary Information
  • 4.
    Version Control Concepts Greater Control of Development  Makes it easy to keep track of incremental progress  Allows project to revert to any stage in its development  How Changes are Stored  “Snapshots”  “Deltas”  Branching and Merging  Multiple people can work on same project simultaneously  Branches can be merged into main line  Can result in conflicts  Must be solved through human interaction!  Tagging  Label particular set of versions as belonging together 7/9/2015 3LinQuest Proprietary Information
  • 5.
    Servers  Applications whichprovide content over a network  CM Servers  Web Servers  FTP Servers  SVNServe  Fully capable server packaged with Subversion  No web browsing capability  Apache  Free, open source, multi-purpose server  Initial setup can be arduous  Robust security  Django Development Server  Not for production purposes  Comes with Django Web Framework 7/9/2015 4LinQuest Proprietary Information
  • 6.
    Web Applications  Separationof Capabilities  In the beginning, everything was mashed together  Languages have divided responsibilities  HTML = Content  CSS = Presentation  Javascript = Behavior  HTML  The “backbone” of a website  Provides the raw materials  CSS  Controls layout of the web page  Font styles, colors, line breaks, etc.  Javascript  Decides how elements interact to user input  Ex. Drop-down menues, buttons, pointer clicks… 7/9/2015 5LinQuest Proprietary Information
  • 7.
    Django Web Framework Python Application  Intended to facilitate rapid web development  Origins in a Midwest newspaper company  Enforces Separation of Capabilities  Models interact with server-side databases  Views are responsible for data processing  Forms are extensions, more or less  Generate templates, handle HTTP requests  Templates = presentation  Written in HTML  Plug in CSS references, Javascript, etc.  Basically the typical web site  Servers  Comes with development server  Upload to Apache once finished 7/9/2015 6LinQuest Proprietary Information Urls.py HTTP Request Views Template Form Template Template Form Model Database Request Request
  • 8.
    Linux (Fedora 17) Open Source Operating System  Open to public through GNU general public license  Can sell new distributions as long as distribution is open source  Hmmm…no tech support?  Online community is HUGE  Distributions  Approximately 350 recorded distributions  Fedora 17  Maintained an updated by open community  Best features are included in Red Hat distributions  Look out! Updates are frequent and hefty. 7/9/2015 7LinQuest Proprietary Information
  • 9.
  • 10.
    Bash Scripting  Shells Act as fronts for the operating system  Accept commands from user, passes to kernel  Ex. Windows Explorer  Contains the desktop, start menu, task bar, file browser.  Bash  Type of shell made for Linux  Provides a command prompt for the user  Bash Scripting  Commands saved in a file make a script  Contains many basic programming functions  Control flow loops/statements  Arithmetic operators  Assignment operators  Boolean expressions 7/9/2015 9LinQuest Proprietary Information
  • 11.
    Virtual Machines  Alsoknown as VM’s  Definition  A completely isolated guest operating system installed within a host operating system  Ex. Fedora running in Windows  Hardware Virtualization /Software Emulation  Software techniques to overcome differences in hardware/software  Can be extremely difficult, and sacrifices performance  Separate from host OS all the while… 7/9/2015 10LinQuest Proprietary Information
  • 12.
    VirtualBox  VM Applicationfor Windows  Inserts itself below the kernel to intercept requests from the guest OS  Monitors guest OS to prevent damage  Completely isolated from host OS  How it Works (Basically)  XML settings file  Runs guest OS off of disk image  All hard disk requests from guest go to disk image  Everything stored in a directory in host OS  Routing HTTP requests was tricky 7/9/2015 11LinQuest Proprietary Information
  • 13.
    7/9/2015 LinQuest ProprietaryInformation 12 LinQuest Network 10.5.1.7 192.168.56.1 Windows VirtualBox Server in VM IP: 10.0.2.15* Host IP VirtualBox Interface NAT
  • 14.
    7/9/2015 LinQuest ProprietaryInformation 13 And now, a demonstration…
  • 15.
    Improvements  Run projectat user level, not root  Transfer it to an Apache server  Summary field needs fixing  No instruction field 7/9/2015 14LinQuest Proprietary Information
  • 16.
    Online Resources  LinuxDocumentation and Guides:  https://www.linux.com/learn/new-user-guides  http://oreilly.com/openbook/linag2/book/index.html  Fedora Documentation:  http://docs.fedoraproject.org/en-US/index.html  Subversion Guides:  http://svnbook.red-bean.com/  http://www.technical-recipes.com/2011/how-to-set-up-a-linux-based-subversion-svn-server/  Makefile Tutorial:  http://www.cprogramming.com/tutorial/makefiles.html  Bash Scripting:  http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html  http://mywiki.wooledge.org/BashGuide  VirtualBox Documentation:  https://www.virtualbox.org/manual/UserManual.html 7/9/2015 15LinQuest Proprietary Information
  • 17.
    Online Resources Con’t Django Web Framework Documentation:  https://docs.djangoproject.com/en/1.4/  Web Development:  http://www.w3schools.com/html/html_forms.asp  http://code.google.com/edu/ajax/index.html  Python Documentation:  http://docs.python.org/index.html 7/9/2015 16LinQuest Proprietary Information