Forgive me for being blunt, but you are not being nice, you are being a doormat and you need to stop. You need to be FAR more assertive. Not aggressive. Not rude, but assertive.
I am super nice and say everything with a smile on my face and even if someone is a bit bad to me.
That's the wrong approach. If someone is bad to you, you put an end to that behavior. A simple "I'm sorry, but I will not be addressed that way" is a good way to be assertive. It speaks to the person's behavior, not the person.
the problem is that everyone takes me for granted and shouts at me if I do a bit wrong but not the others doing same or even making major mistakes.
Again, because you tolerate it. "So, why is this an issue for me, now, when Joe did the same thing last week?" Don't let double standards pass.
In short, they try to implement everything on me. They hesitate to tell others what to do or not even my juniors but utter anything to my face that crosses there minds.
This is an important thing to understand:
PEOPLE WILL DO TO YOU WHAT YOU LET THEM
I say this from experience. I grew up with a hearing impairment, mild autism, and poor motor skills due to an injury at birth. I was a huge target for bullying and it wasn't until I learned to stand up for MYSELF that the bullying stopped.
You need to stand up to your coworkers and not allow that behavior. Again, it can be as simple as saying "I will not be spoken to this way" or pointing out the hypocrisy or SOMETHING!
I am very humble and superb honest and also do my work before the deadlines but this is the problem that travels with me wherever I go.
So, the problem is you. The good news is that you can change that. Read books like Dale Carnegie's "How to win friends and influence people". It helped me. Also, learn about assertiveness, there are plenty of books like that out there, but do something before your self respect is completely gone.
Honesty and humility are great qualities. Being a doormat is not.