480 likes | 692 Views
Technology Options. Entire Project – Technologies (over simplified). Front-end Database Server-side scripting (front-end and database integration) Server. Front-End. Web based application HTML, CSS, Javascript , Jquery Smartphone app – proprietary GUI different from HTML, CSS, etc
E N D
Entire Project – Technologies (over simplified) • Front-end • Database • Server-side scripting (front-end and database integration) • 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: • App running entirely on device but not interacting with data source online (e.g. calculator) • App requiring internet connectivity to access data source (e.g. BBC news app) • 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… • Convert existing website design to have a responsive CSS design (e.g. check out GetBootstrap.com) • 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
Apache, PHP, and MySql WHAT? • Apache as a web server • Php as a server side scripting language • MySql as a database • You will use HTML, CSS, Javascript, Jqueryetc 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 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 • Add some php code and save • Go to w3schools.com to learn php and mysql.
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 • 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 • 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 • 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 – 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! ? ? ? ?