A mini coding practice platform where users can solve programming problems, submit code, and track their progress — inspired by LeetCode, focused on the core experience:
Choose Problem → Read Question → Write Code → Run → Submit → See Result
Goal: build something that feels like a real product without recreating LeetCode from scratch.
- Register
- Login / Logout
- Protected routes (JWT)
- Password hashing (bcrypt)
- Problem list
- Problem description page
- Difficulty: Easy / Medium / Hard
- Topics/tags + category
- Sample input/output
- Constraints
- Public + hidden test cases
- Integrated code editor (Monaco Editor or CodeMirror)
- Language selection (start with 1 language for MVP)
- Write solution
- Run code with sample/custom input
- Submit solution against hidden tests
Possible verdicts:
- ✅ Accepted
- ❌ Wrong Answer
- ⚠ Runtime Error
- ⏱ Time Limit Exceeded (optional for later)
- Problems solved
- Easy/Medium/Hard counts
- Submission history
- Simple user dashboard
Uses sample or custom input and shows output immediately.
Uses hidden test cases and returns a verdict (Accepted/Wrong Answer/etc.).
- React
- Tailwind CSS
- React Router
- Axios
Choose one:
- Monaco Editor (recommended)
- CodeMirror
- Node.js
- Express.js
- JWT (Auth)
- bcrypt (Password hashing)
- MongoDB
- Mongoose
- MongoDB Atlas (recommended)
For the first version, use a sandboxed code execution service (do not execute arbitrary code directly on your server).
- Suggested: Judge0 (later / optional)