Category:I702 Web Application Programming: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Lvosandi (talk | contribs)
No edit summary
Lvosandi (talk | contribs)
No edit summary
Line 17: Line 17:
** Find an interesting web application that's participating on Google Summer of Code, get to know the community, prepare for participation on GSoC and successfully finish the GSoC.
** Find an interesting web application that's participating on Google Summer of Code, get to know the community, prepare for participation on GSoC and successfully finish the GSoC.
* If this is your first experience with this sort of stuff make sure you go [https://www.codecademy.com/learn/web HTML & CSS], [https://www.codecademy.com/learn/javascript JavaScript] and [https://www.codecademy.com/learn/jquery jQuery] tracks on CodeAcademy and start with simply creating your homepage :)
* If this is your first experience with this sort of stuff make sure you go [https://www.codecademy.com/learn/web HTML & CSS], [https://www.codecademy.com/learn/javascript JavaScript] and [https://www.codecademy.com/learn/jquery jQuery] tracks on CodeAcademy and start with simply creating your homepage :)
Requirements
------------
Following are the requirements for the web application:
* Makes use of HTML5, CSS3, JavaScript for front-end programming.
* Makes use of server side programming language (eg PHP, node.js, Python, Ruby)
* Makes use of a database eg (MySQL, Postgres or NoSQL) in a safe manner, avoids SQL injections.
* Mobile friendly, same web application has to work comfortably on desktop, phones and tablets as well.
* [http://www.w3schools.com/php/php_cookies.asp Makes use of cookies for sessions].
* Conforms to standards, use [https://validator.w3.org/ W3C Validation Service] to check.
* Can be used by visually impaired people, this usually means the web application has to be usable from a text-based web browser such as links, lynx or w3m.
Deployment
----------
Traditional PHP+MySQL can be deployed on enos.itcollege.ee:
* if you're using Windows computers at school simply place the PHP files under H:\public_html
* if you're using Ubuntu computers at school simply place the PHP files under ~/Documents/public_html
* if you're using Windows remotely use PuTTY, WinSCP or Swish to connect to enos.itcollege.ee with your school credentials
* if you're using Ubuntu remotely, press Ctrl-L in file browser and enter sftp://user@enos.itcollege.ee/home/user/public_html




Line 24: Line 49:
The web application stack usually consists of one of each:
The web application stack usually consists of one of each:


* Server-side programming language: PHP, node.js, Python, Ruby
* Database server: MySQL, Postgres or NoSQL if that makes more sense
* Web server: Apache2, nginx
* OS: Ubuntu, Debian
* OS: Ubuntu, Debian
* Front-end programming: Vanilla JavaScript, [https://jquery.com/ jQuery], [https://angularjs.org/ Angular]
* Front-end programming: Vanilla JavaScript, [https://jquery.com/ jQuery], [https://angularjs.org/ Angular]
* Styling: Vanilla CSS, [http://getbootstrap.com/ Bootstrap]
* Styling: Vanilla CSS, [http://getbootstrap.com/ Bootstrap]
* advanced: Varnish or nginx for caching and/or load balancing
* advanced: Varnish or nginx for caching and/or load balancing

Revision as of 17:35, 5 February 2016


Intro


This course is 5 ECTS and it's mandatory for CSE students. Other ITC students may also attend and CSE students who comprehend Estonian can follow the I244 lectures.

The main point of this course is to get to know the software stack that is used to build modern web applications and by the end of the course being able to write a web application and if we'll have enough time - to deploy it on a (virtual) server and defend it. Deduplicate your work and combine the work of this course with Python and Research Project courses.


  • Progress visible in Git from day one
  • Possible scenarios to pass the course:
    • classic: Build a simple mobile-frindly webshop with shopping cart using PHP, MySQL, Apache, Ubuntu.
    • Substitute a component (see below) you don't like and do the same
    • Scratch your own itch, develop something that largely makes use of following technologies and it is relevant to you
    • Extend WordPress, Joomla etc to build a website for your customer, eg. when you're working already
    • Find an interesting web application that's participating on Google Summer of Code, get to know the community, prepare for participation on GSoC and successfully finish the GSoC.
  • If this is your first experience with this sort of stuff make sure you go HTML & CSS, JavaScript and jQuery tracks on CodeAcademy and start with simply creating your homepage :)


Requirements


Following are the requirements for the web application:

  • Makes use of HTML5, CSS3, JavaScript for front-end programming.
  • Makes use of server side programming language (eg PHP, node.js, Python, Ruby)
  • Makes use of a database eg (MySQL, Postgres or NoSQL) in a safe manner, avoids SQL injections.
  • Mobile friendly, same web application has to work comfortably on desktop, phones and tablets as well.
  • Makes use of cookies for sessions.
  • Conforms to standards, use W3C Validation Service to check.
  • Can be used by visually impaired people, this usually means the web application has to be usable from a text-based web browser such as links, lynx or w3m.


Deployment


Traditional PHP+MySQL can be deployed on enos.itcollege.ee:

  • if you're using Windows computers at school simply place the PHP files under H:\public_html
  • if you're using Ubuntu computers at school simply place the PHP files under ~/Documents/public_html
  • if you're using Windows remotely use PuTTY, WinSCP or Swish to connect to enos.itcollege.ee with your school credentials
  • if you're using Ubuntu remotely, press Ctrl-L in file browser and enter sftp://user@enos.itcollege.ee/home/user/public_html


Technologies discussed


The web application stack usually consists of one of each:

  • OS: Ubuntu, Debian
  • Front-end programming: Vanilla JavaScript, jQuery, Angular
  • Styling: Vanilla CSS, Bootstrap
  • advanced: Varnish or nginx for caching and/or load balancing

This category currently contains no pages or media.