MADELEINE Wilford was in her psychology class when she heard shots being fired at Marjory Stoneman Douglas High School in Florida.
The 17-year-old told the Deseret News that Nikolas Cruz was a few classrooms down shooting through one classroom door, then another.
She says she got pushed towards the middle of the classroom as students dived to the floor.
"All of a sudden I felt a shot hit me," Madeleine said, not recalling the feeling the other three bullets. "I realised I was shot and an immense amount of pain went over me. The first thing I thought was that I was going to die. I was screaming, 'Help me! Help me!' I was frantic. I didn't know what to do."
She says she "felt a sense of peace" before she slumped against a wall and blacked out.
First-responders put gunshot patches on her wounds to slow the blood loss.
Doctors had to put Madeleine on a ventilator, had three tendons in her right arm reattached and titanium plates fused to her broken ribs
The SWAT team who responded to the shooting, and later visited her in hospital, said her survival should help lift others.
"She's serving as a thing people can look to and see as a sign of hope," David Wilford told the Deseret News. "She was shot four times with an assault rifle at close range and now she's sitting downstairs a week later with two friends from church, laughing. I can't even believe it."
US President Donald Trump and First Lady Melania Trump also visited Madeleine and offered to write a letter of recommendation for her university application.
Her mother, Missy Cantrell Wilford, thanked God for saving her daughter.
"I feel Blessed beyond words, knowing that many didn't survive," she said. "She had [a bullet] that went through her back, crushing her ribs, piercing through her right lung and exiting through her stomach.
"Several went through the shoulder and travelled the length of her right arm before exiting ... Even after all of that, the bullets missed her liver, reproduction organs, heart, she could have been paralysed. It is a miracle," she said.
Update your news preferences and get the latest news delivered to your inbox.