We examine here the dynamics of opinion exchange before a democratic decision-making event by using an agent-based model. The agents belong to both demographic and social groups, and these memberships determine respectively voting behaviour and inter-agent exchange of opinions through a non-linear mechanism based on the theory of chemical reactions. Our model results in consistent extremist polarisation of opinions and local opinion clustering, and highlights the stochastic nature of outcome predictions. The project suggests that a combination of a non-linear opinion interaction mechanism and social group self-preference is enough to polarise a society and generate a very close decision outcome.