Exciting News! Version 2 is now live! 🚀
( *Main branch contains the prototype )

This microservice tool streamlines the debugging process for AtCoder problems by leveraging platform test cases and user inputs. It isolates each test case, dry-runs your code, retrieves the expected output, and compares it with editorial solutions. This iterative process helps quickly identify discrepancies, pinpoint failing test cases, and makes debugging much easier.
- Backend: Golang, Node.js, REST API .
- Frontend: Next.js, TailwindCSS, Bootstrap
- Integrations ( to be added ) : Redis , mongoDB and Docker .
- Frontend: User interface for submitting code and viewing results.
- Backend: Composed of multiple services:
api-gateway(apiGate) - Routes requests.cs1 & cs2- Worker servers responsible for handling compilation and test execution.subCode- Web scraping server fetching test cases from AtCoder.
Frontend ➡️ subCode (Web Scraping) ➡️ Frontend ➡️ apiGate (API Gateway) ➡️ cs1 & cs2 (Worker Servers) ➡️ apiGate ➡️ Frontend
Just enter the submission link and you are good to GO !

- Delay in Response time: Since the api gateway , worker-servers and code scrapping servers are hosted in Render's free service , so the services generally spins down due to inactivity and takes around 1-2 minutes to spin back again.
- Manual Contest Links: Contest links must be manually added to our database due to web scraping issues, resulting in a short delay after each contest before test cases are added.
- Variable Line Support: Does not support test cases with variable lines of input or output yet.
- Custom Test Cases: Add functionality for users to write custom test cases for faster debugging.
- AI-Powered Separation: Explore AI-powered tools to automate the separation of test cases, removing reliance on manual input.
- Previous Submissions: Implement features to track and manage users' previous submissions on AtCoder.
We welcome all contributions! If you're interested in improving the tool, feel free to:
- Suggest improvements
- Report issues
- Help tackle existing limitations