Author Archives: soum

About

This is the hardest part. Haven’t figured this out yet. You could say I do this, that and everything. I do -> UX design/ Full stack web development. I work with PHP, Java and javaScript. Currently I am working as a demandware ecommerce developer. I love doing UI/ UX designs and writing object oriented javaScript. Please visit my Github to check out my experiments/ personal projects Lately I have been writing lots of javascript for both client and server side applications. I like that a lot. Naming a few CMS I have worked with would be wordpress, Drupal and Demandware

Intrests

  • Designing meaningful and functional UI
  • Challenging programming problems
  • Algorithms
  • data visualization


Resume

Select checkbox with a div

1
2
3


JS snippet
1
2
3
4
$('.trigger').click(function(){
    $('input[type=checkbox]').prop('checked', false);
    $('input[type=checkbox]').eq($(this).index('.trigger')).prop('checked', true);
});
I built this piece real quick to accommodate a requirement where the users would make on screen selections by clicking images. This was built to do an online promotion for hair treatment product where the user would make selection by clicking product image. In the background the would get registered as a form input which then will get sent to the marketing team along with the users other credentials, such as address and email.

Site redirect by detecting the IP address

IP-redirect-sketch
Checking the country code from the client request. If the it is not United states then proceeding to the script. If not then terminating the pipeline. The termination shows an output of a default home page. If it is not terminated the script executes and check for IP address of the client. If it matches with a list of excluded IP address then the process gets terminated. If not the script proceeds to match if the country code matches with any country code in the list. If there is a match the site gets redirected to the matched url. If not a display message is fetched saying we dont serve in that country

L’Oreal product category

CatalogArchitecture This project started started with a conversation about how to consolidate all the product categories under kerastase and illustrate their benefits through single page user experience. The expected result of this process was to educate the user with the wide variety of product features.

Subcategory process SubCatProcess

City of New York, Developer portal Approval process

approval-process-flow The scope of this project was to develop a portal for web developers to access city owned data. City of New York collects public service data from agencies operating under it. These data sets are used to create better infrastructure and understand the need for improvement. This project application developers to develop mobile and web applications by using city owned data. It also helps the city to learn and understand the need for new data sets and opens a communication channel to maintain existing data sets.

Digital countdown clock

: : :
This project was developed to show a count down clock for ninewest.com black friday promotion. These type of applications can be very effective for any time based events. A typical example can be to illustrate how much time left for an ongoing auction on ebay.

JS sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
setInterval(function () {
    var future = new Date("Mar 05 2014 21:15:00 GMT+0200");
    var now = new Date();
    var difference = Math.floor((future.getTime() - now.getTime()) / 1000);
 
    var seconds = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);
 
    var minutes = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);
 
    var hours = fixIntegers(difference % 24);
    difference = Math.floor(difference / 24);
 
    var days = difference;
 
    $(".seconds").text(seconds + "s");
    $(".minutes").text(minutes + "m");
    $(".hours").text(hours + "h");
    $(".days").text(days + "d");
}, 1000);
 
function fixIntegers(integer) {
    if (integer < 0) integer = 0;
    if (integer < 10) return "0" + integer;
    return "" + integer;
}
}