Skip to main content

Designing a Simple HTML website with materialize

Hello guys,

I am a beginner in Web Development.

So it all started with the use of html tags and how the browser interprets and translates this markup for us.

I started up with building a small website. Usually when we talk about content websites, the more appealing and user friendly the website is, the more you attract the customers.
So i started up browsing for some good UI libraries.
In my context, i had assumed that materials UI is only supported by angular. But to my surprise, it was not. Here are the 3 options i could find for materials implementation in simple content websites.

  1. materializecss
  2. bootstrap-material-design
  3. getmdl.io

My next worry was, i had to reload the damn thing again and again every time i made some changes either in javascript or html. One of the options that i came accoss is to make use of gulp tasks to automate this whole procedure. This procedure for me involved the following things:
  • Auto reload of browser window on some changes in code.
  • Minification of my javascript/css files
  • Copy my libraries from node_modules to some directory (may be `vendor`)

gulp made all this possible for me with less than 20 lines of code! Isn't that amazing? I mean it reduced my development time to more than 50%.

Guys I love to share what i do, So here is the quick overview on HOW WE CAN BUILD A SIMPLE WEBSITE WITH GULP AUTOMATION:

Summary:

This tutorial will walk you through setting up the project directory structure and also will help you understand the basic concepts of gulp tasks and the power of gulp in automating any development task. Here is the link to github repository

Directory Structure:
+ node_modules
+ src
+ + css
+ + img
+ + js
+ + pages
+ + scss
+ + vendor
+ + index.html
+ gulpfile.js
+ package.json
+ README.md

I hasd to install gulp. gulpfile.js will have all the tasks such as copying vendor libraries like jQuery from node_modues to our source folder, conversion of sccs files to css files, minifications of js and css files, etc. Then i wrote some scripts in my package.json to invoke my gulp tasks.


"scripts": {
"copy": "gulp",
"start": "gulp dev"
}

Such that for example, when i fire npm start,it will invoke the dev task from my gulpfile.

Here is an snippet of dev task from gulpfile
// Dev task with browserSync
gulp.task('dev', ['browserSync', 'sass', 'minify-css', 'minify-js'], function() {
gulp.watch('src/scss/*.scss', ['sass']);
gulp.watch('src/css/*.css', ['minify-css']);
gulp.watch('src/js/*.js', ['minify-js']);
// Reloads the browser whenever HTML or JS files change
gulp.watch('src/**/*.html', browserSync.reload);
gulp.watch('src/js/**/*.js', browserSync.reload);
});

Whatever that is specified in the square brackets like
 ['browserSync', 'sass', 'minify-css', 'minify-js']
indicates that these are the prerequisite gulp tasks for the DEV task to start. That means gulp will have to first perform all these tasks one by one and later come to dev task.

gulp.watch(file,task) monitors the specified file for changes and perform the task specified as the second parameter.

browserSync.reload reloads the browser.
gulp.watch('src/**/*.html', browserSync.reload);

This statement means that whenever any html file from src/folder/filename.html changes, reload the page in browser.

So this is how i solved my problem of refreshing the browser,magnification,compilation, etc with easy to use gulp tasks.

Thank you folks !!!

Comments

Popular posts from this blog

When to use Azure Virtual Machine Scale Sets?

So it all started with client's requirement to build a Minimum Viable Product (MVP). The backend of the product was written in python and involved processing of images using Computer Vision. We decided to host the backend in Azure. There were lots of advantages of having the backend hosted in cloud instead of having an on-premise setup. The thing that attracted us the most was infrastructure scaling and availability of the system. We now dont have to bother about infrastructure, power consumption, system availability, system failures, etc. We were in need of GPU machines to run the code in backend. We though of using N-Series Azure virtual machines for this purpose. We wanted to scale the machines horizontally to handle multiple requests. We booted up few more machines to handle the load. This is where Azure Load balancer came into picture. Since there were multiple instances of virtual machines, we needed someone to decide for us, which machine the request should go to. We connect...

Product review of cloudsploit

Hello People! This article is to share my understanding about cloudsploit and the service they provide to the people. What they do? CloudSploit is a service which analysis your AWS/Azure account for security holes/risks. With people moving to serverless technologies, Azure and AWS are gaining popularity these days at higher rate. Also alot of developers/dev-ops engineers tend to overlook some of the security considerations while setting up services in cloud. CloudSploit is here to address such problems for you! How do they do it? CloudSploit asks you for a access key with read only permissions to your cloud resources. They have a set of plugins, which run using this access key. Each plugin is a javascript function which uses some node cloud SDKs to analyse the services in cloud. Result of what they do When you run CloudSploit, as a final output you get to see different plugins and their test results. The plugins also have recommended actions section which tell...

Building Installer for mac using packages (Implementation level details)

So now that you have a code ready, next question is how you are going to ship it as a product to end users. The easiest and user friendly solution, is to build the Installer for your product! Building an installer has many advantages, like: User don't have to be worried about the installation steps (the user has to just follow laymen's instructions to get ready to use the product). It eliminates human errors. Makes the product easy to install and use. So now that we have idea of WHY  we need Installers, let see what  packages  offer us to build installers for mac.  Packages is a tool developed for mac. Packages can be either flat or bundle. As per my observations, flat packages cannot be inspected to view the contents of the package. But there are ways to extract the contents for viewing purpose using  pkgutil  utility. In case of Bundle packages, user can view the contents of the bundle directly. Its like a directory. Packages...