|
Sumit Rathi Oodles

Sumit Rathi (Manager-Enterprise Solutions Architect)

Experience:12+ yrs

Sumit is a highly experienced Backend Developer with a diverse technological background. He possesses an extensive understanding of the latest technologies and has practical expertise in Core Java, Spring Boot, Hibernate, as well as relational databases like MySQL and PostgreSQL. His proficiency extends to API implementations, Microservices, and Web Services development. Sumit actively contributes to code enhancements and consistently delivers valuable contributions to various client projects, including MyHelpa, NOWcast Church Engagement Development, OptaPlanner - Employee Rostering, Optaplanner customization for a medical practice, Handymen Application Upgradation II, LabVue, and more. He showcases exceptional analytical skills and a creative mindset. Furthermore, he has a passion for reading books and exploring new technologies and innovations.

Sumit Rathi Oodles
Sumit Rathi
(Enterprise Solutions Architect)

Sumit is a highly experienced Backend Developer with a diverse technological background. He possesses an extensive understanding of the latest technologies and has practical expertise in Core Java, Spring Boot, Hibernate, as well as relational databases like MySQL and PostgreSQL. His proficiency extends to API implementations, Microservices, and Web Services development. Sumit actively contributes to code enhancements and consistently delivers valuable contributions to various client projects, including MyHelpa, NOWcast Church Engagement Development, OptaPlanner - Employee Rostering, Optaplanner customization for a medical practice, Handymen Application Upgradation II, LabVue, and more. He showcases exceptional analytical skills and a creative mindset. Furthermore, he has a passion for reading books and exploring new technologies and innovations.

LanguageLanguages

DotEnglish

Conversational

Skills
Skills

DotOSM

60%

DotERP

80%

DotWhatsApp API

60%

DotProject Management

100%

DotTechnical Project Management

100%

DotJava

100%

DotRESTful API

60%

DotCloud Platforms

60%

DotNode Js

60%

DotMQTT

60%

DotStripe API

60%

DotAPI Integration

60%

DotJavascript

80%

DotRoute Optimization

60%

DotKafka

80%

DotDjango

80%

DotTimefold

60%

DotGraphHopper

60%

DotPayment Gateway Integration

60%

DotNo SQL/Mongo DB

80%

DotEDI

60%

DotMySQL

80%

DotDatabase Management

60%

DotWebhooks

60%

DotOptaplanner

80%

DotOAuth

60%

DotBiometric Integration

60%

DotSpring Boot

100%

DotLogistics API

60%

DotPython

60%
ExpWork Experience / Trainings / Internship

Dec 2012-Present

Enterprise Solutions Architect

Gurugram


Oodles Technologies

Gurugram

Dec 2012-Present

EducationEducation

2008-2012

Dot

Echelon Institute of Technology

B.tech-Computer Science

Top Blog Posts
Stripe integration in grails
While working on a project, I came across a requirement where I had to add payment part. So, In this blog I am going to share the details of how we can integrate stripe.
 
 
Integration steps:
1. Create a stripe account. click here to create an account on stripe.
2. We will need to set two configuration items in Config.groovy
	
		grails.oodles.stripe.secretKey="sk_test..........." 
         grails.oodles.stripe.publishableKey="pk_test......"
Logged in your stripe account, click on the top-right link for Your Account and then Account Settings.
 
Here, you can find your API Keys.
 
3. Next we need to include the JavaScript library provided by Stripe. 
Stripe.js makes it easy to collect credit card (and other similarly sensitive) details without having the information touch your server.
4. Add these jar files in your lib  stripe-java-latest.jar
5. Add these fields in your .gsp
  <form action="" method="POST" id="payment-form">
   <span class="payment-errors"> </span>

   <div class="form-row">
     <label>
       <span>Card Number </span>
       <input type="text" size="20" data-stripe="number"/>
     </label>
   </div>

   <div class="form-row">
     <label>
       <span>CVC </span>
       <input type="text" size="4" data-stripe="cvc"/>
     </label>
   </div>

  <div class="form-row">
    <label>
      <span>Expiration (MM/YYYY)</span>
      <input type="text" size="2" data-stripe="exp-month"/>
    </label>
    
    <input type="text" size="4" data-stripe="exp-year"/>
  </div>

  <button type="submit">Submit Payment</button>
</form>
6. If the card information entered by the user returned an error, it gets displayed on the page.
If no errors were returned (i.e. a single-use token was created successfully), add the returned token to the form in the stripeToken field and submit the form to the server.
we can make your payment request like
 Stripe.apiKey = grailsApplication.config.grails.plugins.stripe.secretKey
Map chargeParams = ["amount":params.amount,"card":params.stripeToken]

		try {
			Charge.create(chargeParams);
			returnObject.put("status", "success")
			returnObject.put("message", "Transaction complete successfully.")
		} catch (CardException e) {
			// Since it's a decline, CardException will be caught
				returnObject.put("status", "error")
				returnObject.put("message", e.message)
		} catch (InvalidRequestException e) {
			// Invalid parameters were supplied to Stripe's API
				returnObject.put("status", "error")
				returnObject.put("message", e.message)
		} catch (AuthenticationException e) {
			// Authentication with Stripe's API failed
			// (maybe you changed API keys recently)
				returnObject.put("status", "error")
				returnObject.put("message", e.message)
	  } catch (APIConnectionException e) {                      
			// Network communication with Stripe failed
				returnObject.put("status", "error")
				returnObject.put("message", e.message)
	  } catch (StripeException e) {
			// Display a very generic error to the user, and maybe send
			// yourself an email
				returnObject.put("status", "error")
				returnObject.put("message", e.message)
	  }
 
Hope it helps :)
Sumit Rathi
 
Implement SocialAuth using Grails
While working on a project, I came across a requirement where I had to get information from a social networking service such as Facebook, Twitter or Google+ for web application. There are so many libraries to implement oAuth and OpenID for different social network service. I did some research and found one common api for each social network service i.e. SocialAuth.
 
SocialAuth is a Java library. You can download latest java library form here.
 
Why we use SocialAuth?
1. There are many libraries for implementing Open ID but it is difficult to choose one that will do the integration quickly with the providers you want.
2. Even after implementing social auth using different library, it does not work out of the box for all providers. There are always certain things specific to a certain provider. For example the scopes are different as well as some steps in authorization may be different.
 
How SocialAuth works?
1. Create your developer app account and get API keys from the provider like Facebook, Google+ etc.
2. Make a request for authentication using SocialAuth library.It will redirect the user to Facebook, Google+ etc website where they enter the credentials.
3. The Provider redirect to the user back to your application with a token.
4. You can pass this token to the SocialAuth library to get information about the user.
 
Steps to implement SocialAuth
1. Make a properties file for consumer_key and consumer_secret key like oauth_counsuemr.properties.
#googleplus
googleapis.com.consumer_key = -----------
googleapis.com.consumer_secret = ----------
#yahoo 
api.login.yahoo.com.consumer_key = --------------
api.login.yahoo.com.consumer_secret = -------------------
#twitter
twitter.com.consumer_key = ---------------
twitter.com.consumer_secret = -----------------------
#facebook
graph.facebook.com.consumer_key = ----------------
graph.facebook.com.consumer_secret = -------------------
#hotmail
#consent.live.com.consumer_key = --------------
#consent.live.com.consumer_secret = -----------------
#LinkedIn
api.linkedin.com.consumer_key = ---------
api.linkedin.com.consumer_secret = -----------------
 
2. Make an Action for Authentication.
    def authenticate() { 
SocialAuthConfig config = SocialAuthConfig.getDefault() //You can also pass input stream, properties object or properties file name. 
config.load() //Create an instance of SocialAuthManager and set config 
SocialAuthManager manager = new SocialAuthManager() 
manager.setSocialAuthConfig(config) // URL of YOUR application which will be called after authentication 
String successUrl, url 
successUrl= grailsApplication.config.grails.serverURL +"/socialAuthentication/getToken" // get Provider URL to which you should redirect for authentication. 
// id can have values "facebook", "twitter", "yahoo" etc. or the OpenID 
URL url = manager.getAuthenticationUrl(params.id, successUrl) 
// Store in session 
session.setAttribute("authManager", manager) 
redirect(url) 
}
3. Make an Action to get token information
def getToken() { 
try{ // get the social auth manager from session 
SocialAuthManager manager = (SocialAuthManager)session.getAttribute("authManager") // call connect method of manager which returns the provider object. 
// Pass request parameter map while calling connect method. 
AuthProvider provider = manager.connect(SocialAuthUtil.getRequestParametersMap(request)) 
// get profile 
Profile profileInfo = provider.getUserProfile(); 
log.debug"profileInfo "+profileInfo 
// do your operation here 
}catch(SocialAuthManagerStateException exception){
 log.error("Exception occurs while connecting with SocialAuthManager--->"+exception.getMessage()) 
}catch(Exception e){ 
log.error("Exception --->"+e.getMessage())
 }
 
For more information click here.
 
Hope it helps :)
Sumit Rathi

 

 

Show Image and label in Drop down list in Flex

In this blog I am going to share the details of how we can show image in drop down list.

The DropDownList control pops up a list when the user selects the anchor.

When the user selects an item from the drop-down list, the data item appears in the prompt area of the control.

 

MXML Syntax:-User can define a DropDownList control by using <s:DropDownList> tag.Data provider is the default property of the dropdownlist.

You can pass data for dropdown list using this property.

 

Example:-





 





 

We can customise  the dropdown list desgin and pass the data according to the desgin requirments.

Here is the example to show image and label in a dropdown list.










 












 


 

 


 

Hope it helps :)

Sumit Rathi

[email protected]

Draw Circle Line And Rectangle Dynamically Using Flex

While working on a project, I came across a requirement where we had to draw annotations over a Video frame by frame. We are using Flex for the purpose. I would like to share the details of how we can draw a Line, a circle, a rectangle dynamically on video using flex.

Flex provides easy functions to draw the line, circle, and rectangle.

 

To draw annotations, I am using Canvas container because Canvas is the only container that can explicitly specify the location of its children within the container.


MXML Syntax:-User can define a canvas by using mx:Canvas tag and specif its properties. Like, the following code snippet.

 



We can use the Graphics class to draw different shapes like Circle, Line, Rounded Rectangle, Rectangle etc.

Here is the sample code to draw the circle:-

 

var component:UIComponent = new UIComponent();
component.graphics.clear()
component.graphics.lineStyle(4,0Xffffff,.9);
component.graphics.drawCircle(10,10,100);
component.graphics.endFill();	
addElement(component);

Summary of graphics functions:-

"clear()" is used to remove all the drawing output associate with the current object.

"lineStyle()" is used to define the stroke of lines. The three parameters (thickness, color, and alpha)

"drawCircle()" is used to draw the circle. We can pass X, y position and radius of the circle.


Here is the one example to draw circle, rectangle, and line dynamically.

 



	


			





		
		
		



Hope it helps :)

Sumit Rathi

[email protected]

 
Banner

Don't just hire talent,
But build your dream team

Our experience in providing the best talents in accordance with diverse industry demands sets us apart from the rest. Hire a dedicated team of experts to build & scale your project, achieve delivery excellence, and maximize your returns. Rest assured, we will help you start and launch your project, your way – with full trust and transparency!