Rajasthan, India (CNN) It was meant to be a quick run to the local village shop. Instead, it marked the beginning of a terrifying ordeal.

It was a spring afternoon when 15-year-old Maya walked into the shop in her village in the northwestern Indian state of Rajasthan to buy some onions for her mother.

The shop, a small single-story brick building, is among the few solid structures in the village and a clear marker of wealth and prestige.

Maya's home, in contrast, is a small hut open to the elements on three sides. Maya and her five siblings survive on whatever her mother, who was widowed nine years ago, earns as a casual laborer. Usually that's as little as $2 a day.

Maya's alleged attacker was arrested soon after the attack but is still awaiting trial.

Maya had been to the shop countless times before. She'd known the shopkeeper and his family for years. Which is why, she says, she didn't think twice when he told her to go inside and fetch the onions herself.

It was then, as she walked in, that he closed and locked the door behind her.

Maya screamed -- but the shopkeeper, who was twice her age, covered her mouth with his hand and threatened to kill her unless she kept quiet.

He then forcibly undressed her, and raped her.

Maya later told police in a complaint filed in May 2016 that her rapist locked her in the shop until she was rescued by her mother, four hours later.

"It's still hard to think about what happened," said Maya's mother, who went looking for her daughter after she didn't return from the shop.

JUST WATCHED The women and girls of Delhi are fighting back Replay More Videos ... MUST WATCH The women and girls of Delhi are fighting back 02:03

More than two years on, Maya is still waiting for justice.

CNN is not using her real name, in accordance with Indian law that prevents the naming of victims of sexual violence. And there are many.

Almost 39,000 women and children were reported to have been raped in 2016, according to the most recent figures from the National Crime Records Bureau (NCRB). That's more than 100 a day, or one every 15 minutes.

'Still see humiliation'

A recent spate of high profile cases involving women and girls has underscored India's problem with sexual violence.

In recent months, thousands of Indians have come onto the streets in marches and protests to demand action.

Experts in the area acknowledge that progress has been made: there is better reporting of crimes against women. The outrage after the 2012 rape and murder of a young medical student in the capital Delhi spurred numerous legal changes, including a broadening of what constitutes rape.

In April this year, authorities passed an executive order introducing the death penalty for the rape of a girl under 12. This latest change, however, has prompted criticism from experts who say that the threat of capital punishment for their attackers could dissuade victims from reporting.

Anganwadi workers shout slogans during a protest calling for justice following the rape and murder of an eight-year-old girl in the Indian state of Jammu and Kashmir.

Yet too many victims seeking justice face an uphill battle. Figures from India's official National Crime Records Bureau show that while the number of reported rape cases of women climbed by 56% from 2012 to 2016, the conviction rate stood at 25.5% percent in 2016 -- just marginally above the 24.2% rate reported for 2012.

Convictions in sexual violence cases are lower than for other crimes such as theft or murder. And many cases are caught in a backlog in Indian courts. As of 2016, the number of outstanding cases rose to 133,376 from just over 101,000 in 2012.

Too often, new laws "are not being implemented, and the training that is being given through the justice system is not being implemented," said Jayshree Bajoria, a Human Rights Watch researcher based in Delhi, who authored a Human Rights Watch report looking at the barriers rape survivors face in accessing justice.

The reality is that, despite new legislation, "much of it (justice) doesn't actually reach the victims. They still see bias. They still see humiliation," Bajoria said.

Maya's fight for justice has been taken up by her uncle, who stepped in to take the burden of the legal challenge.

"Every step is a fight," her uncle said. "It is very hard."

Uphill battle

Just how hard they've fought for justice is apparent from the winding trajectory of Maya's case.

The shopkeeper was arrested on May 22, 2016, the same day the first police complaint was filed and one day after the alleged incident.

A medical exam concluded Maya had been raped. Formal charges were filed in mid-August. Because of Maya's age, the shopkeeper was booked under laws governing sexual violence against minors, and the case was sent to a special court for minor victims. The same law blocked the shopkeeper from getting bail.

"She was a minor, so there was no question of bail," said Harish Chand Dipankar from the local NGO Jan Sahas, which means "courage for people." The group stepped in to provide free legal support to Maya and her family, with local lawyer Tarachand Pohiya, to help them navigate India's legal system.

The staff of the local NGO, Jan Sahas operating in Bharatpur, Rajasthan sitting outside the local court and parsing through case files with Tarachand Pohiya, a lawyer who works with them.

Dipankar has worked with Jan Sahas for the past nine years. The NGO, which operates out of a small apartment in the city of Bharatpur in Rajasthan, is staffed by volunteers, many of whom travel from nearby villages every day to work for a few hours in the office.

In a country where illiteracy is widespread and many people are unaware of their legal rights, the volunteers help victims file an official complaint.

"They are poor people. The mother and the uncle cannot read or write. They don't have any official documents to show when she was born. There's no birth certificate recording exactly when she was born," said Pohiya. According to legal documents, however, there was a certificate from Maya's school confirming that she was only 15 at the time of the alleged attack.

"Somehow he still got bail. He convinced the court that she wasn't underage," said Pohiya, who runs his own practice in the local courts but takes out a few hours regularly to help out wherever he can.

The shopkeeper convinced a judge, in an appeal filed in the local court nine months after the alleged attack, that the victim wasn't a minor and was in fact 20 years old.

He told police that Maya had had multiple "relationships," and used this claim in an effort to prove that she consented to have sex with him. "They tried to humiliate her," added Pohiya.

The local court sided with the shopkeeper and he was granted bail, a decision that prosecutors then challenged in the State High Court, which led to more court hearings but no progress in the rape proceedings.

The shopkeeper's bail was finally canceled in July 2017 and police were directed to re-arrest him. Nine months later he surrendered and is now in custody.

The case is now finally back on track.

"All this time, and we are still waiting for something to move forward in the case," said Maya's uncle.

"It's taken all this time to get it back to where it was in 2016. They (the shopkeeper's family) has also come to us to settle the case in return for money. They keep saying we should just resolve this between ourselves."

"We see this all the time," said Dipankar, from the NGO Jan Sahas. "That's what happens in many cases, especially when the victim is from a poorer or lower caste family. If the accused is wealthier or has more influence in the village, the victim will often face a lot of pressure to just settle."

But Maya's family refuses to give up. Her mother explained why.

"Why should we settle? We didn't do anything wrong. Is there something wrong in demanding justice for my daughter?"