WAD CAB Coding Challenge

See GitHub Repository
See Live Preview

While working as a mentor, I built this project to provide a coding challenge for the students of Code Academy Berlin. Each year, the school would receive some tickets for the We Are Developers World Congress conference in Berlin which we could give to our students. We wanted a simple coding challenge that our students from both Data Science and Web Development disciplines could complete, the fastest from each course would win a ticket. They would write a function in either JavaScript, TypeScript, or Python to solve the puzzle.

The project uses the full-stack framework Next.js, together with NoSQL database MongoDB. I chose against implementing any authentication, simply storing the student alias in a cookie to persist their session, as this was intended to be a small challenge that would be complete in no more than a few hours. I used a cookie rather than local storage as I used server components and server functions as much as possible to keep the browser free from any code that could be copied by students to solve the puzzle faster.

screenshot of the landing page with the form to sign up

Once the students have signed up, they will be able to read about the challenge. They must first use a Caeser Cipher to decrypt the slug where they will find instructions for the next step. I did have the problem that quite a few people misinterpreted the table - the task is not to encrypt the slug, but to decrypt the slug.

screenshot of the landing page with the coding challenge description

The slug is always the same, and once the student has successfully decrypted the string, they can visit this page. The next step of the challenge is mostly the same, but I have increased the length and complexity of the string to be decrypted to encourage them to adapt their existing function. Once they decrypt the string, if the words are not already familiar, a quick Google search should find the movie title they need to give to the input.

screenshot of the next step

Once students start completing the challenge, their alias will appear in the leaderboard on the landing page. Any student that wants to claim a ticket will need to have a code review of the function they wrote to solve the puzzle. AI use is forbidden for code generation, but they were allowed to ask it about approaches to solve the problem, since a Caeser Cipher would be new to many of them.

screenshot of the leaderboard table

Feel free to attempt the challenge! All student data has been cleared from the database, but new aliases can still be added. There might be a delay as the database wakes back up.