Implementing an HTML5 Web App
Code review form
In this lab you will implement a web application using HTML5 and cloud services. You will implement an interactive application in using HTML5 running in browser and communicating to services in the cloud. For web services you may use any cloud service. For the client side you will be using HTML5.
You will work in teams of three people. You may have a team of two people or work individually, but it is not recommended.
Types of Projects
The types of projects you can write are:
• Social Networks
• Any application you think it is useful.
You may take ideas from existing web and phone applications.
You have to make sure your HTML5 application works fine in a web browser in laptop/desktop computers and phones.
Your application should include:
• Use of the Internet for Communication
• Use of a Database
• Multiple Users
• Need to be online available to anyone in the Internet
Hosting your Application
You may use any hosting service such as AWS, Google, or Azure. All of them offer free hosting for applications during development. Remember that some of them may charge you after a trial period. You just need the hosting of the application for the time you develop the project. It may be a good idea to do a quick search for free credits for students. The GitHub Student Pack gives credits for DigitalOcean and AWS.
You will need to make a GIT repository for your project and give the GIT user cs252-git read/write access to your repository. Anything you write for this project will be considered Open Source with a BSD like licence.
You will be graded only by the code you write during the weeks this project lasts. If you use a package or pre-existing code in your project, write that very clearly in the commit message and separate that from your contributions.
During your demo we will be asking questions about how your code works and we will expect an answer. Commit your code often so we can verify your progress. Any code without a GIT repository or without a commit history will not be graded.
Sources of Inspiration
WebGL and threejs.org
One of these technologies is WebGL that provides access to high performance graphics from your browser. WebGL may be difficult to program since you need to know shader programming. However, there are technologies such as http://threejs.org/ that are wrappers around WebGL to program high performance 3D applications in your browser. See the examples section http://threejs.org/examples/ , and also see the geometry/minecraft example.
Another wrapper around WebGL and HTML5 Canvas is http://d3js.org/. This library also provides high performance 2D and 3D displaying of data. An application build with this technology will be very appealing to the user. Browse some of the examples in this http://d3js.org website.
It is likely that you have heard of this game. Some schools have blocked this website since students spent many hours playing. It is difficult to ignore the simplicity and elegancy of this multi user game. This game is written in HTML5 using Canvas communicating to a Web Server fetching the position, color and size of the other players. You can come up with your own variation of Agar.io using HTML5 and some services in Bluemix. also see http://webglsamples.org/aquarium/aquarium.html and http://cabbi.bo/DRAGONFISH/
Angular JS is a new Web Framework that allows writing “One page applications” where the interactivity of the application is mostly done locally instead of doing expensive http requests to the server. There are some videos
We will evaluate your project with a final presentation. The grading criteria used to evaluate your application will be:
• Creativity – How innovative is your application.
• Potential of Success – In terms of usability for solving a specific problem for a few people , or potential for having a large number of people using the application.
• Presentation- How nice the application looks.
• Technology – Features you use in your application.
• Robustness – Application works well and it does not crash.
• You may write your server side application in PHP, Java, Python, Node,Js, etc host your server application in one of the Bluemix servers.
• You are required to use Github for source control.
If your project is good to show to the class before Wednesday November 29th, see me before lecture and you will have 5 minutes to show your project. You will get up to 5pts extra on top of the grade of your project.
Your project is due before your presentation. The final presentations will take place the week of Monday December 4th, 2017. Instructions will be given later to sign up for a presentation time. Before your presentation you will have to make sure that your latest updates are in GITHUB, that you have given the github user cs252-git read/write access and that your application is accessible from anywhere in the Internet.