Technology Options. Entire Project – Technologies (over simplified) 1.Front-end 2.Database...

48
Technology Options

Transcript of Technology Options. Entire Project – Technologies (over simplified) 1.Front-end 2.Database...

Technology Options

Entire Project – Technologies (over simplified)

1. Front-end2. Database3. Server-side scripting (front-end and database

integration)4. Server

Front-End

• Web based application– HTML, CSS, Javascript, Jquery– Smartphone app – proprietary GUI different from

HTML, CSS, etc

• Independent (typically non-web based) application– GUI of programming language chosen (e.g. VB.net

application, Java application, etc)

Databases

• Choice of database based on project requirements– Web based application requires interfacing with

database sitting on some database server somewhere on the net

– Independent non-web based Application does not have to (but it can) interface with a database on the net. Database will likely run on the same machine or internal network of organisation

Server-side Scripting

• Allows you to access server functionality including (but not limited to) interfacing with database backend

• In simplified terms, it allows you to get your front-end speak to the database

Server

• Programming languages and databases require a supporting server to run them

• Again dependent on the technologies chosen overall– E.g. a MySQL database requires a database server

running MySQL; a web based Java application requires a server capable of running Java and JSP

Overwhelmed?? – Don’t Be

• If a web based application you will likely choose a service that is capable of running your chosen technologies– E.g. an online hosting company will provide you with these

server supports.

• Non-web based application: you will need to choose hardware capable of running the application when finished– E.g. an Android device for Android App; a laptop with

Windows Operating System to run a windows based application

Development Environment

• For all projects you will be able to set up a development environment– Developing for Android: you’ll need to use an

Android System Development Kit (SDK) such as Eclipse

– Developing a web based application that requires a database: you’ll need to set up a development environment that will mimic live environment provided by hosting package

Smartphone Applications• Many options – again your project

requirements will influence option choice. Some example options:1. App running entirely on device but not interacting

with data source online (e.g. calculator)2. App requiring internet connectivity to access data

source (e.g. BBC news app)3. App requiring periodic access to internet to access

new updated data (e.g. mapswithme app)

Smartphone Applications• Do you really need a smartphone app?– If its just a app that replicates exactly what the

online website does then a serious option would be…

1. Convert existing website design to have a responsive CSS design (e.g. check out GetBootstrap.com)

2. Use an app ‘shell’ linked to the website and release in app store. Looks like an app, but it really only launches your web browser of phone (e.g. PaddyPower app was like this, may still be)

Smartphone Application

• A sample high level option of an application accessing a datasource– Build web based application using database

backend and server-side scripting functionality to access

– Build app using SDK (GUI work)– Connect to database using server-side scripting

functionality

Setting up a Development environment – an example

Apache, PHP, and MySqlWHAT?1. Apache as a web

server2. Php as a server side

scripting language3. MySql as a database

• You will use HTML, CSS, Javascript, Jquery etc with the bundle above

WHY?• Open Source – free!!!• As good as proprietary

options• Lightweight• Many freely available

bundles built using it – Wiki, Wordpress, Drupal, Joomla, OpenCart

Setting up Development Environment

• You can install all 3 of these separately and then configure them to work together: DONT!

• Packages freely available for download that allow for one quick installation:– XAMPP (

http://www.apachefriends.org/en/xampp.html) choose the installer and not the zipped files!

– WAMP

Setting up Development Environment

Setting up Development Environment

Setting up Development Environment

Setting up Development Environment

Setting up Development Environment

Setting up Development Environment

Setting up Development Environment

Type http://localhost into your web browser. Please note this page will not

display if the APACHE server is not started as per the previous slide!!

Setting up Development Environment

• When your apache server is running it is looking at the htdocs folder within the XAMPP folder installed on your computer. Most likely location: C:/Xampp/htdocs

• For WAMP it will be the wwwroot folder

• In english, what this means is the server lloks at this folder for your webpages.

• This is where you put your .php, html, css, javascript files

Setting up Development Environment

Setting up Development Environment

• Add some php code and save

• Go to w3schools.com to learn php and mysql.

Setting up Development Environment

Working with MySql in XAMPP

• Go to browser and type http://localhost

• At the xampp homepage click on phpmyadmin

• This is a GUI system that you can use to work with the MySQL database engine

• Note: default user is “root” and password is not set, i.e. “”

PhpmyAdmin

PhpmyAdmin

• Easy to figure out• Create some databases and tables• Mess around with it

Integrating php and mysql

• W3schools is a good resource to learn php and mysql

• Learn them separately on their own first before integrating them.

• W3schools has tutorials that show how to integrate them.

• A great book is “Sams Teach Yourself PHP, MySQL and Apache All in One”

• You can learn all the technical stuff to do with php and mysql on your own time.

• Now we’ll look at taking an existing package and using it on your XAMPP or other development setup

Content Mgt Systems (CMS)

• Many developed already and freely available• Examples: Joomla, Wordpress, Drupal, etc

• To run these you either need a hosting package online or a development environment (e.g. XAMPP or WAMP)

• Also the CMS above are all built using PHP and MySql and as such you need development environment or hosting that can handle these these

CMS – Example Wordpress

• Go to wordpress.org (NOT .com)• Download the source files

CMS – Example Wordpress

• Extract the files into a folder in your server folder (i.e. htdocs if using XAMPP)

CMS – Example Wordpress

• Rename the folder to something appropriate: your new site, blog, etc

• Go to your browser and type in http://locahost/[whatever_name_you_gave_the_wordpress_folder]

CMS – Example Wordpress• Screen will say there is no configuration file.

For some other packages you may need to alter that separately.

CMS – Example Wordpress

CMS – Example Wordpress

• Go back to your database and create a blank database• Go back to the browser and insert the database

name, username (will be “root” unless you changed it), and password leave blank, and leave the host as “localhost”

• Click next and your done. Your wordpress install should be complete and its up to you what you do next!!

• It is very flexible and hackable – learn php and mysql and then you will be able to customise as you wish!!

CMS – Example Wordpress

CMS – Example Wordpress• Next page will give you option

to login• From then on, if you want to

login to the backend you go to the directory where you extracted the wordpress files: note above that I extracted the wordpress files to the folder mynewwebsite in the htdocs folder. As such, you can access the login at http://localhost/mynewwebsite/wp-login.php

Wordpress – After Login

Wordpress – What the site looks like• Go to http://localhost/mynewwebsite

Up to you how to customise it• You can either choose from the many 100s

(maybe 1000s) of design themes.• You can build your own theme; e.g.

skelligslandscaping.ie is built using wordpress and I created a custom wordpress theme. Good tutorial, a little old at this stage, is http://webdesignerwall.com/tutorials/building-custom-wordpress-theme

• Codex at wordpress.org has plenty information on wordpress files

3 examples of Wordpress Use• aonghussugrue.wordpress.com – uses wordpress.com

to create website. This options means “.wordpress” will be included in domain name. Good for familiarising yourself with wordpress

• Skelligslandscaping.ie – Completely built using wordpress (i.e. all content managed by logging into wordpress backend)

• Linx.ie – Footer section of every page and blog page are wordpress driven; the rest of the website is managed through standard .php and html files outside of wordpress

Up to you how to customise it• Plugins allow you to add whatever features

you need from shopping carts to calendars to social media widgets.

• If a plugin does not exist for your specific need, then you can always build it yourself:-– Could be good commercial opportunity if you

build a good plugin– Some plugin developments are worthy of project

in and of themselves

Other Examples

• Similar process for most other packages:– Mediawiki for a wiki– Drupal and Joomla for different CMS– OpenCart for full e-commerce site

My Take on Ideas – The Wheel• People often say don’t re-create the wheel but

don’t always dismiss a wheel…– If it’s an application that is being developed over

and over again (i.e. a wheel), then consider how you might package this as a service that would prevent others having to recreate that wheel in the future

– E.g. A room scheduling application (i.e. a wheel): why not create it in a way that others can use the core functionality on a subscription basis (i.e. a web service) – e.g. check out doodle.com

My Take on Ideas – Open Source Packages

• Packages such as wordpress do much of the wheel work for you – e.g. builds a fully functional e-commerce website – This may not be a viable option for an FYP

• However, you should strongly consider how you could use these packages whilst building in core functionality of your own within– E.g. Use the package to build the e-commerce website

and then build a custom plugin to do some magic

Thanks!

? ? ? ?