Synopsis Final
Synopsis Final
A Y : 2024- 2025
BE Project Synopsis
_________________
Title of the Project: Code Quest – An Online Code Execution System
Project Group:
1. Introduction:
CodeQuest is an online platform designed for coding enthusiasts and developers, offering an interactive
space to practice and improve their problem-solving skills. Similar to LeetCode, CodeQuest features a wide
range of coding challenges across multiple domains, including algorithms, data structures, and more,
enabling users to enhance their programming abilities through hands-on exercises.
Built with a robust tech stack, CodeQuest leverages Next.js for a seamless user interface and efficient
server-side rendering, ensuring optimal performance. PostgreSQL is used as the database to store problem
sets, user data, and submissions, while Prisma provides a powerful ORM to manage database operations
with ease and efficiency.
To handle scalability and high traffic, CodeQuest is built on Kubernetes, which allows the platform to
scale efficiently based on demand, ensuring a smooth experience for users at all times. This infrastructure
enables real-time code execution, quick problem-solving, and an overall streamlined experience for
developers looking to sharpen their skills.
2.Objectives:
· Enhance Problem-Solving Skills: Provide a comprehensive platform where users can practice
coding challenges, improve their problem-solving abilities, and learn new concepts through a
variety of problems tailored to different difficulty levels.
· Interactive Code Execution: Enable real-time code execution and instant feedback for users to
validate their solutions using a powerful backend infrastructure built with Next.js, PostgreSQL, and
Prisma, ensuring a seamless experience for both coding and debugging.
· Scalable and Reliable Platform: Leverage Kubernetes for dynamic scaling, ensuring the platform
remains responsive and available to a growing user base, while maintaining optimal performance
even under heavy traffic conditions..
3. Specifications:
Frontend:
○ Framework: NextJS
■ Provides a server-side rendering and static site generation, ensuring fast load times
and SEO optimization.Ensures a dynamic and interactive user interface.
■ Enables a component-based architecture for reusability, maintainability, and efficient
state management across different parts of the application.
○ Styling: Tailwind CSS
■ Enables rapid UI development with utility-first CSS.
■ Ensures responsive and mobile-friendly design with a consistent aesthetic.
Backend:
○ Server: NextJS
■ Offers a scalable and high-performance environment for server-side scripting.
■ Express.js provides a lightweight framework for building RESTful APIs and
handling HTTP requests.
Database:
○ Database Management System: PostgreSQL
■ Utilizes PostgreSQL for a robust, relational database solution, ensuring secure and
structured storage of problem sets, user data, and submissions.
■ Supports complex queries and transactions, offering flexibility and scalability for
handling large datasets and enhancing performance under high user traffic.
4. Block
diagram:
5. Methodology:
1. NextJS:
○ Version: Stable release (NextJS 14)
○ Reason: Next.js provides a seamless integration of frontend and backend with
server-side rendering, static site generation, and API routes, ensuring optimal
performance, scalability, and ease of development.
2. Tailwind CSS:
○ Version: Latest version (e.g., Tailwind CSS v3.x)
○ Reason: Utility-first CSS framework that ensures a clean, modern, and responsive
UI design.
3. Browser Support:
○ Google Chrome, Mozilla Firefox, Microsoft Edge (latest versions)
○ Reason: Ensures cross-browser compatibility for smooth operation on all major
browsers.
Backend Software Stack:
1. NextJS:
○ Version: Node.js v16.x or above
○ Reason: Next.js for backend provides a unified solution for building APIs with
API routes, server-side logic, and seamless integration with frontend components,
ensuring efficient performance and scalability.
2. Kubernetes:
○ Version: Latest version (e.g., Express v4.x)
○ Reason: Kubernetes enables dynamic scaling of the platform by automating
container orchestration, ensuring high availability and optimal performance under
varying loads.
3. Database:
○ PostgreSQL:
Version: PostgreSQL 12 or above.
Reason: PostgreSQL is a powerful, open-source relational database management
system known for its reliability, scalability, and support for complex queries,
making it an ideal choice for handling large datasets in modern applications
○ Database ORM : Prisma
Version : 4.1 or above
Reason: Prisma is a modern ORM that provides a type-safe and efficient way to
interact with databases, offering easy migrations and seamless querying for
databases like PostgreSQL, MySQL, and SQLite.
6. Testing strategy
Testing Frameworks:
1. Frontend Testing:
○ Jest and React Testing Library
2. Backend Testing:
○ Mocha or Jest
[1] Došilović, Herman Zvonimir & Mekterovic, Igor. (2020). Robust and Scalable Online Code
Execution System. 1627-1632. 10.23919/MIPRO48935.2020.9245310.
[2] Mizuno, Takahisa & Nishizaki, Shin-ya. (2014). Distributed Online Judge System for
Interactive Theorem Provers. EPJ Web of Conferences. 68. 10.1051/epjconf/20146800016.
[3] Porubän, J.; Nosál’, M.; Sulír, M.; Chodarev, S. Teach Programming Using Task-Driven
Case Studies: Pedagogical Approach, Guidelines, and Implementation. Computers 2024, 13,
221. https://doi.org/10.3390/computers13090221
[4] Lindberg, R.S.N., Laine, T.H. and Haaranen, L. (2019), Gamifying programming education
in K-12: A review of programming curricula in seven countries and programming games. Br
J Educ Technol, 50: 1979-1995. https://doi.org/10.1111/bjet.12685.
[5] Szymon Wasik, Maciej Antczak, Jan Badura, Artur Laskowski, and Tomasz Sternal. 2018.
“A Survey on Online Judge Systems and Their Applications.” ACM Comput. Surv. 51, 1,
Article 3 (January 2019), 34 pages. https://doi.org/10.1145/3143560.
[6] X. Lu, D. Zheng and L. Liu, "Data Driven Analysis on the Effect of Online Judge System,"
2017 IEEE International Conference on Internet of Things (iThings) and IEEE Green
Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social
Computing (CPSCom) and IEEE Smart Data (SmartData), Exeter, UK, 2017, pp. 573-577,
doi: 10.1109/iThings-GreenCom-CPSCom-SmartData.2017.90.
8. Signature of Students: