“Really?” Allie’s eyes lit up.
It was perfect. She was dying to look at the back-end database again now that there were so many new users.
Ms. Slade reached for a pen and wrote something on a bright blue Post-it. “Here’s the password. Rip that up when you’re done.”
“Thanks!” Allie hurried to the back of the room, flopped down into the seat, and hit the space bar on Ira’s keyboard. She looked over at Nathan. He was leaning back in his chair with his head resting against the wall, his headphones over his ears, and his eyes closed.
“I can see you’re hard at work,” Allie said as she entered the password and pressed the RETURN key.
She wasn’t sure Nathan had heard her, but then his head fell to one side and he slowly peeled his eyes open. “I’m thinking.”
“Don’t hurt yourself.”
She wasn’t as worried about Nathan as she had been when he’d showed his demo to the class. After she gathered all her new data and a few inspiring success stories, those judges would have to see that Click’d was doing just as much good as Built.
“Besides, there’s not much to do at this point. My game is working flawlessly,” he said.
“Good for you,” Allie said. “So tell me, how many users do you have?”
Nathan rolled his eyes.
She cupped her hand to her ear and leaned in closer. “I didn’t hear you. Did you say ‘zero’? That’s interesting. My game’s a total hit. I have almost three hundred fifty users. And it’s Tuesday. I’ll probably have another three hundred by this time tomorrow. Last I heard, the judges like to see games with actual users.”
“Well, they also like apps that are making a difference.”
Allie let out a huff. “Click’d is making a difference!”
“Right. Of course. How did the students of Mercer Middle School go on before they knew how many other people liked pizza as much as they did?”
Nathan put his headphones back on and angled his monitor so she couldn’t see it.
Allie glared at him as she turned her monitor away from him, too.
Shake it off, she told herself.
She logged into the Fuller University server and navigated over to the CodeGirls development area.
After watching the photos, profiles, and leaderboards on her phone all day, it was so cool to see row after row, column after column, filled with the data that made everything run. Allie scrolled up and down, taking everything in. She could see each user’s phone number. Each person’s profile photo. She had all their birthdays, favorite colors, favorite sports, favorite books, favorite movies, and favorite things to do in their spare time. She knew how many siblings each one had. She could clearly see how each person had answered every single quiz question. She even knew the password they each used to get into the system.
It made her feel a little guilty to know that much about that many people. But it made her feel a bit powerful, too.
With a few more clicks, she opened the leaderboard stats. The screen was a sea of numbers, but it didn’t take her long to figure out how everyone was mapping up against one another in the system. She had access to information no one else knew. She could see each person’s top ten ranking, even if they hadn’t found one another yet.
That made her think about Emma’s words back at lunch, so she opened her profile and studied her leaderboard. Emma seemed to think Click’d was broken—that her top ten had to be wrong—but it wasn’t. It was spot-on. The numbers said so, loud and clear.
Allie started wondering about the others, so she looked at Zoe’s stats, and then at Maddie’s. She could tell how all three of their leaderboards would change once they got within range of some of the newest users. And she could tell that Maddie wasn’t going to be happy about it.
She started sorting the data, trying to learn as much about her users as she could. She sorted them by birthday, to see who was the youngest and who was the oldest. She sorted them by number of siblings, curious to see how many of them were only children like she was. And then she sorted them by favorite dessert, just for fun.
But when she sorted all the users by grade, she noticed something interesting: of her three hundred sixty-three users, two hundred twenty-five of them were seventh graders, eighty-four were eighth graders, and only fifty-four were sixth graders.
Click’d was spreading around the school, but it wasn’t reaching everyone equally. She wanted stories from all the grades. And now that she knew it was stable, she wanted all the users she could possibly get.
Maybe it needs a little nudge, she thought.
She selected all the names in the Click’d user list and typed out a message:
Allie
Like Click’d? Pass it on!
She added the download link and pressed SEND. There was a loud whoosh sound as her message disappeared from the outbox.
The bell rang and everyone started collecting his or her things and heading for the door, but Allie hung back. There was one more thing she was curious to learn about her user base.
She sorted the data again, highlighting anyone who received an invitation to join Click’d but hadn’t downloaded the app.
It was a short list.
Just three names.
And one was Nathan Frederickson.
“Whoa,” Allie whispered under her breath as she stepped into the hallway and took in the scene.
As soon as the final bell rang, a bunch of people bolted from her math class and raced out the door, and everywhere she looked, she saw kids running with their phones lifted high in the air. She could see their screens changing colors and hear the bloops echoing off the hallways as people ran toward each other, tapped their phones together, and took a quick selfie before they took off running again, following the next clue.
She pulled out her phone and checked her own stats. Click’d was up to 382 users, and the count was growing by the second. By the time she got to the roundabout, it was already up to 423.
All those people were playing with Click’d. With her app.
She was just about to step onto the bus when she heard someone shouting her name. She turned around and saw Zoe racing toward her. “Allie! Wait!”
“I have to go,” Allie said, laughing. “You have to go, or our bus is going to leave without us.” The driver watched them, looking annoyed.
“In a sec. I have to show you something first, in private.” Zoe grabbed her arm and pulled her away from the open windows and out of earshot.
“What’s going on?”
“Have you seen Emma?”
“No. Not since lunch. Why?”
Zoe had one hand over her mouth, like she was going to be sick.
“What’s wrong?” Allie repeated.
Zoe reached for her phone and handed it to Allie. “This.”
“So…Emma told you she likes Andrew Sanders. What’s the big deal?”
“This was a clue,” Zoe said.
“A clue? About what?”
“No, listen. You don’t get it.” Zoe looked around to be sure no one could hear, and even though they were all alone, she took two steps closer to Allie. “I just clicked with Wyatt Davies and this was the clue that showed up on his phone.”
Allie furrowed her brow like she was still trying to connect the dots.
“It’s a screenshot. You can tell by the top, look: time, battery life.” Zoe tapped her screen with her fingernail. “This conversation between Emma and me happened on Saturday night. This was from my phone. I took this screenshot.”
“Why would you do that?” Allie asked.
Zoe scrunched up her nose and shook her head. “I don’t know. It’s just that…Emma never tells me anything—”
Allie cut her off. “She never tells anyone anything. She’s Emma!”
“I know. I guess it just seemed like a big moment. I wanted to capture it.” Zoe sighed, but then she threw her shoulders back and looked Allie right in the eyes. “Still, that’s not really the point. The point is that
this picture was in my photos app and nowhere else.” Zoe glanced at the screen, grimaced, and shoved her phone in her back pocket, like she couldn’t stand to look at that text for another second. “There is no way I posted that on Instagram.”
“You must have done it accidentally.”
Zoe looked at her sideways. “Please…that’s almost impossible to do, Allie. Besides, if I had posted it by mistake, don’t you think I would have known by now? I checked anyway, just to be sure, and it’s not in my feed. I didn’t send this to anyone. Not one single person.”
Now it was Allie’s turn to feel the color drain from her face. “Are you one hundred percent sure?”
“I am one thousand percent sure.” Zoe grabbed Allie’s arm. “Click’d pulled this from my photos, not my Instagram feed.”
Allie pictured that specific part of the code. It had taken her almost a full week to figure out how to pull the clues from Instagram and store ClickPics in the phone’s photos app, but she’d finally done it. She’d tested it hundreds of times. And nothing like this had ever happened with her CodeGirls friends. But then again, they’d spent more time testing it than they did playing it.
“It has to be a fluke. There are hundreds of users and this hasn’t happened once until now.” Allie’s backpack fell to the ground by her feet. “But still…” She trailed off, unsure how to finish her sentence.
There was no way she could let this go unchecked. The text itself was bad. The fact that it had exposed Emma’s secret was worse. But the real problem—if there was a real problem—was potentially much, much bigger. Sharing people’s personal photos without their permission? That was in a whole new ballpark.
“What do we do?” Zoe asked.
The bus driver was motioning to them, and Allie held her finger up, asking him to wait a minute. “Only one person saw it, right? Just Wyatt?”
Zoe nodded. “And he’s cool. I told him to delete it.”
“Good.” Allie checked the time. “You go home. I’m going to go to the lab and take a quick look at the code. If it’s somehow pulling photos from both sources, I’ll find it. It should be an easy fix.”
“Really?”
“It’s fine. No big deal.” Allie sounded more confident than she felt. “I have an hour before soccer practice. That’s plenty of time. I’ll just ask my mom to bring my soccer bag and pick me up here instead. I’ll meet you at the field.”
Zoe still looked like she was going to be sick. Allie hugged her and said, “Stop worrying. I’ve got this. Only one person saw it, and you didn’t break your promise to Emma—you didn’t tell anyone—okay?”
“Okay.”
“No one else will ever know.”
“You don’t think I should tell her?”
Allie blew out a breath. “She’s already upset about the leaderboard thing. And you know how sensitive she is. I’ll fix it, and then we’ll tell her. Okay?”
“Okay.” Zoe started toward the bus. Allie picked her backpack up off the ground and headed for the lab. But then she turned around and called Zoe’s name.
“You might want to delete that screenshot,” she said, and Zoe nodded.
As Allie walked to the lab, she opened her photos app and scrolled through her pictures, deleting anything she wouldn’t want to accidentally share.
Allie flung the lab door open and raced inside.
Ms. Slade was sitting behind her desk. “Hey, Allie. Everything okay?”
“I…” Allie opened her mouth, ready to tell her everything and ask her what to do, but then she stopped herself. She pictured the look on Ms. Slade’s face when she came backstage at the CodeGirls presentation. She could see the pride in her eyes that day. What would she say if she knew Allie had made such a huge mistake in the code? And then she had an even more frightening thought: What if she lost her spot in the Games for Good competition over this?
She took a deep breath and pasted a smile on her face instead. “No…everything’s fine. I just need to check something…on the CodeGirls server.” She tried to look casual as she tipped her head toward the back corner of the room. “Can I use Ira or Agnes for a few minutes?”
“Sure. Ira’s free.”
Nathan poked his head above Agnes’s monitor and gave Allie a little wave, and she scrunched up her nose. She couldn’t wait until Saturday, when she and Click’d could wipe that smirk off his face.
“Are you sure everything’s okay?” Ms. Slade asked.
Allie nodded. Everything was okay. It was a minor glitch. A small, easily correctable mistake. One line of code. No big deal. “It’s fine.”
Ms. Slade didn’t seem to be buying it, but she didn’t say anything else. She just smiled and lifted her hands to her ears, showing Allie her dangly earrings: two keyboard keys, a symbol, and the letter Z. “Do you know what these mean?” she asked.
Allie looked from one to the other, trying to piece it together. The COMMAND key. The letter Z. She pictured a keyboard. “Command-Z.” Allie felt her mouth turn up at the corners as she said it. “Command-Z is undo.”
Ms. Slade nodded slowly. “See, that’s one of the things I’ve always loved about coding. You can try anything. You can take risks. And you can fail spectacularly. Do you know why?” she asked, and Allie shook her head. “Because you can always hit command-Z. You can always undo it, and then redo it.” She leaned in a little closer, like she was sharing a secret. “It kind of makes you wish we had a command-Z in life, doesn’t it?”
Allie pictured Zoe’s face out by the roundabout and she felt her stomach knot up all over again. “Yeah,” she said. “Definitely.”
“If you need any help, let me know. But remember, as your mentor, I can only look over your shoulder. I can’t touch the code. I can give suggestions, but I’m not allowed to fix it for you, got it?”
Allie nodded. She was aware of the G4G rules.
Ms. Slade gave her a reassuring pat on the back. “Well, whatever it is, go command-Z it and make it right. And if you need my advice, you know where to find me.”
“Thanks. I will,” Allie said. But she didn’t think she’d need it. She walked to the back corner of the room, already feeling a little better about the whole thing.
Nathan was sitting in front of his computer, with his elbows on the table, his chin propped in his hands, and a pair of bulky black headphones over his ears.
“What are you doing here? I thought your game was ‘flawless.’” Allie put the last word in air quotes.
Nathan draped his headphones around the back of his neck. “It is. I’m just adding a few little touches. What are you doing here? I thought Click’d was a ‘total hit.’” He put his words in air quotes, too.
“None of your business. And it is a ‘total hit.’ You and your little builders are toast on Saturday.”
“Is that right?”
“It’s a fact.”
Allie took her seat and tapped on the space bar, and when the computer came to life she typed in the password and twisted the monitor away from Nathan’s curious eyes.
“Hey, don’t worry about me. I couldn’t care less what you’re panicking about.” He put his headphones back on. “But I bet I know.” He went back to typing as his head bobbed up and down in time with music Allie couldn’t hear.
Allie glared at him. Did he know? How could he know anything? He hadn’t even joined Click’d.
She ignored him as she navigated over to the Fuller University server. Within minutes, she was looking at the bright blue CodeGirls logo again. She touched it with her finger for good luck, like she could use it to channel all that knowledge from her instructor and all the words of support from her fellow CodeGirls.
She typed in passwords and opened new windows, and eventually she was in the Click’d code. She’d spent all summer staring at commands, but she hadn’t looked at it since the last day of camp. Still, it felt a little bit like home. And she knew exactly where to go.
She scrolled down until she found the specific set of instructions th
at told Click’d to pull photo clues from each user’s Instagram account. Then she found the code that told it to store CLICK-PICS in each user’s photo album. Everything looked right.
Allie kept going, looking beyond those lines for anything related to photos—anything that might be causing the system to confuse the two sources—but everything looked solid. After a half hour of squinting at the screen, the lines began to blur. She rubbed her eyes, shook out her hands, and scrolled back to the top, reading every single line all over again.
“I’ll be back in ten,” Ms. Slade called out, and Allie and Nathan both looked up. “Need anything?” she asked, and they both shook their heads. But when she returned ten minutes later, she was carrying two bags of microwave popcorn, and she dropped them in front of Allie and Nathan. They thanked her as they reached inside.
“Everyone good here?” she asked.
“Yep,” Allie said brightly, masking her concern.
“Yep,” Nathan echoed as he stuffed a huge handful of popcorn into his mouth.
“Good. There’s this terribly boring meeting I’m required to attend, but I’ll be back in an hour,” Ms. Slade said. She turned on her heel, gave them a wave, and left the lab again.
Allie reached into the bag again and went back to work, staring at the source code. The problem had to be there somewhere. Her app couldn’t just pull photos from the wrong source without being told to. It would be easier if Allie knew what she was looking for.
“You know, I was thinking…” Nathan said as he draped his headphones around his neck.
“Nothing good can come of that,” Allie said without taking her eyes off the screen. She reached for her mouse and scrolled down, wishing she had headphones of her own.
Nathan ignored her and kept talking. “I think I’m going to install this thing you made after all.”