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
Built With
- caddy
- cloudflare
- docker
- express.js
- javascript
- judge0
- mongodb
- openai-api
- react
- typescript
Log in or sign up for Devpost to join the conversation.