Inspiration

We were inspired by a problem we encountered often - a lack of good coding practice problems for niche topics that are often not mentioned in documentation and books.

What it does

Sit Down and Study is a platform designed to help you improve your programming skills through LeetCode-style questions. You can write and run your code directly on the platform, using an integrated code execution engine, and receive instant feedback. The platform also provides on-demand hints and reading materials to help you learn as you go.

How we built it

We built it using React, ExpressJS, MongoDB, TypeScript, OpenAI API, Monaco Editor, and Judge0. All of this is interconnected through DNS management via Cloudflare and reverse proxies on Caddy server.

Challenges we ran into

  • Getting Judge0 to work for multiple languages
  • A state management issue where our useEffect hook kept executing twice each time it rendered
  • Prompt engineering to account for different languages and topic difficulty levels

Accomplishments that we're proud of

  • We have a fully functional product!
  • We support Java, Python, and JavaScript (Node.js), and have a working online code editor and code judging system using Judge0
  • We were able to create a modern interface reminiscent of LeetCode's code editor with our additions

What we learned

  • Working with worker threads, Monaco Editor, and Judge0
  • Working with OpenAI's API and prompt crafting
  • CORS is a nightmare

What's next for Sit Down And Study

  • Adding question history support using MongoDB for better context and more diverse question generation
  • Refine the prompts for better starter code generation, as it is still hit or miss sometimes
  • Add features to guide a user in advancing their learning, by using data from what topics they have covered and suggesting next topics
Share this project:

Updates