Inspiration
We were fed up with the normal solutions to studying DSA for technical interviews and decided to make something a lot more fun. At first, we looked at the most mainstream solutions such as Neetcode and Blind75, but those too were boring. Not to mention neither did their own code-grading or problems. They were just static links to leetcode. Enter, Lootcode.
Lootcode is a culmination of our teams interests into something beautiful (Leo: Codegrade Server Architecture, Luke: Game Design, Dylan: Fantasy Worldbuilding). Starting from the ground up, we constructed a game-play loop consisting of solving problems to earn gold, spending gold for items to beat enemies, and unlocking lore to progress the story. With over 35+ enemy encounters and 75+ problems, there is a LOT of game-play to be enjoyed with Lootcode.
What it does
Lootcode is a collection of self-written DSA problems that are immerse and appropriate in a fantasy setting, slowly exposing the world of Algorion, its turmoil, and its diverse landscape and cultures. Problem by problem, help the people of Algorion recover from a wave of malice that has engulfed the planet, while getting to the bottom of the mystery of what is causing it.
How we built it
We created Lootcode with various web technologies in the T3 stack, such as Typescript, Tailwind, tRPC, and Next.js. We also leveraged the Zx shell and Docker to procedurally create isolated sandbox environments to safely perform remote code execution for the user to give feedback on solutions much faster than outsourcing to external APIs like Judge0.
Challenges we ran into
Docker is annoying. Enough said.
Accomplishments that we're proud of
After many weeks, we got the code grade pipeline to feel as polished as we're comfortable deploying. We also thought the lore is surprisingly good, and the final cliffhanger is silly and engaging (for story spoilers, DM one of us on Discord...). We also did everything ourselves, so we aren't charged a cent or two for every submission. And with a self-hosted database PlanetScale can't rug pull on us anymore...
What we learned
Working together is a lot of fun. This is the first time we have formally used Github to delegate tasks, as well has hold Agile-style meetings for software development cycles. It all felt very fresh, relevant, and collaborative, which was all the fun.
What's next for Lootcode
We plan to deploy Lootcode soon after the deadline, as well as advertise it throughout campus to help with both technical interviews and the upcoming Foundation Exam, as more than half of the app has very similar problems.
Built With
- clerk
- linux
- next
- sql
- trpc
- typescript
- zx
Log in or sign up for Devpost to join the conversation.