CM Web Application Presentation
-
Upload
andrew-mcgarry -
Category
Documents
-
view
156 -
download
0
Transcript of CM Web Application Presentation
CM Web ApplicationAndrew McGarry
Summer InternDivision
LinQuest Proprietary Information
05/03/2023 2LinQuest 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
05/03/2023 3LinQuest 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
05/03/2023 4LinQuest 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
05/03/2023 5LinQuest 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
05/03/2023 6LinQuest 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…
05/03/2023 7LinQuest 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
Urls.py
HTTP Request
ViewsTemplate
Form
Template Template
Form
Model
Database
Request
Request
05/03/2023 8LinQuest Proprietary Information
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.
05/03/2023 9LinQuest Proprietary Information
05/03/2023 10LinQuest 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
05/03/2023 11LinQuest 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…
05/03/2023 12LinQuest 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
05/03/2023 LinQuest Proprietary Information 13
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
05/03/2023 LinQuest Proprietary Information 14
And now, a demonstration…
05/03/2023 15LinQuest Proprietary Information
Improvements
Run project at user level, not root Transfer it to an Apache server Summary field needs fixing No instruction field
05/03/2023 16LinQuest 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
05/03/2023 17LinQuest 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