First and foremost thing BJP (after winning in 2014) did was to spread negativity against Rahul Gandhi and Congress Party. That is where they lost their popularity among the new voters.Modi is going to win this easily lol, I don't think people take Rahul Gandhi seriously, Plus he got all the hindu voters which is like 85% of the country.
In that 80% Hindu voters, atleast 15-20% are in favour of Congress since they are traditional Congress vote base. They also have support of remaining minorities, they prefer Congress over BJP. Congress has about 40% of the population with them. A swing of 10 % would mean that anything can happen.
Elections in India are won through Caste appeasement rather than religion appeasement in India.