Rich Web Applications for Mobile and Cloud Platforms.

Detailed Syllabus

(Topics Marked red would be taken by trainers from industry)

This course aims to teach the latest trends in rich web application development. At the end of this course the students will have a good grasp of the full stack development involved in it. Three projects would be done as part of the course. No prior exposure to web technologies is assumed for joining this course.

Day 1: Introduction class for all web technologies – html, css, js, python, database, version control (6 hours)

  • A brief look at the Internet and the web.
  • HTML basics
  • CSS basics
  • JavaScript basics
  • Python basics
  • Databases – introduction
  • Basic version control concepts
  • Cloud services

Days 2, 3 ,4, 5: Basic page designing with validations using  html, css and js (24 hours)

  • HTML (6 hours)
    • HTML Metadata
    • Text formatting
    • Hyperlinks
    • Document and website structure
    • Debugging HTML
    • Multimedia
    • HTML Tables
    • HTML Forms – creation and validation
  • CSS (6 hours)
    • Introduction
    • Styling Text
    • Styling Boxes
    • CSS Layout
    • Introduction to Bootstrap
    • CSS Preprocessors
  • Javascript (11 hours)
    • Basics – variables, maths, strings, arrays
    • Loops
    • Functions
    • Events
    • Objects
    • Object prototypes
    • Inheritance
    • JSON
    • Web APIs
    • Manipulating the DOM
    • Drawing APIs
    • Audio and Video APIs
    • ES 6
  • Introduction to Accessibility. (1 hour)

Day 6: Project – Static Website (8 hours)

Days 7, 8: Application Architecture and software stack (python, django, postgresql, git) (12 hours)

  • Application architecture tiers – presentation, application and storage (2 hours)
  • Introduction to the stack (4 hours)
    • Programming language – Python
    • Development framework – Django
    • Database – Postgres
    • Version Control – Git [practical work included]
  • Introduction to Development Environment (6 hours)
    • Setting up the development environment
    • Continuous Integration, Unit testing and functional testing
    • Cloud as a deployment platform

Days 9, 10, 11: Python Programming (18 hours)

  • Introduction to Python (2 hours)
    • Using the interpreter
    • Python as a calculator
  • Basic Programming (4 hours)
    • Control Flow
    • Functions
    • Data Structures
    • Modules
    • Input and Output
    • Exception Handling
  • OOP concepts (4 hours)
    • Classes
    • Inheritance
    • Iterators
    • Generators
  • Python as a scripting language for automating common tasks (2 hours)
    • Python programming for dealing with CSV, JSON data, system admininstration tasks etc.
  • Use in Data analysis (6 hours)
    • Introduction to Python data science and analysis stack – numpy, pandas, jupyter etc.

Day 12: Databases (6 hours)

  • Introduction to databases (30 minutes)
    • What are Databases ?
    • History of Databases.
    • Database Models.
    • RDBMS.
  • SQL vs NoSQL (30 minutes)
    • What is NoSQL ?
    • Comparison of SQL and NoSQL databases.
    • When to use either one of them ?
  • Basic sql queries (2 hours)
    • SQL – DDL and DML
    • Basic structure of SQL queries
    • Subqueries
    • Joins
    • Views
    • Aggregate functions
    • Integrity Constraints
  • Python scripts with database (2 hours)
    • Work with databases using the Python DB API [will cover both SQL and NoSQL Databases]

Days 13, 14 : Django (12 hours)

  • Introduction to django framework (30 minutes)
    • History and capabilities.
    • Installation
  • Introduction to MVC (30 minutes)
    • Components and Interactions
    • Introduction to Django’s impementation of MVC
  • Django basic concepts (4 hours)
    • Starting a Django Project with a skeleton website
    • Using Django Models
    • Django admin application
    • Mapping URLs
    • Using Django Templates
    • User authentication and permissions
  • Django advanced concepts (4 hours)
    • Testing a Django application
    • Deploying to production
  • Django Security (1 hour)
    • Common threats and protections against them
  • Cloud providers and deployment (2 hours)

Day 15: Django Project (6 hours)

Day 16: Web Services (6 hours)

  • Introduction to web services (1 hour)
    • What are web services?
    • REST architecture
    • RESTful web services
    • Microservices
  • Introduction to Django REST framework (5 hours)
    • Create a simple model backed REST api

Days 17, 18, 19, 20: ReactJS (24 hours)

  • Introduction to React JS (4 hours)
    • Single Page Applications
    • Javascript Frameworks – talk about AngularJS, EmberJS and others
    • One way data flow
    • Virtual DOM
    • JSX
  • Introduction to the tools (6 hours)
    • Node.js
    • Babel
    • Webpack
  • Use in templates (2 hours)
    • Adding ReactJS to Django templates
  • Components (6 hours)
    • What are components ?
    • Creating components
    • Mounting Functions
    • States and Props
    • Component lifecycle
  • Redux (6 hours)
    • Introductions
    • Basics – Actions, Reducers, Store, Dataflow
    • Usage with React

Days 21-30 (Two weeks): Django REST Framework + ReactJS Project ; hosted on the cloud. (Take home)