EliteCode Redesigned (AutoRecovered)
EliteCode Redesigned (AutoRecovered)
A Project Report
of
BACHELOR OF TECHNOLOGY
in
by
2022-2026
University Institute of Technology
Gwalior
RGPV Road, Satanwada,
Shivpuri
Mobile-9303782760,9309382761
Email-sitrgpv@[Link]
CANDIDATE’S DECLARATION
I hereby declare that the work, which presented in the Project Report, entitled “EliteCode Website”,
submitted in partial fulfilment of the requirement for the award of the degree of “Bachelor of
Technology” in “Department of Computer Science and Engineering” in the year 2022-2026. The work
has been carried out at University Institute of Technology RGPV, Shivpuri is an authentic report of my
own work carried out under the guidance of “Mrs. Pratibha Chourasiya” (Assistant Professor,
Department of Computer Science and Engineering”). I have not submitted the matter embodied in this
report for award of any other degree or diploma.
I
University Institute of Technology
Gwalior
RGPV Road, Satanwada,
Shivpuri
Mobile-9303782760,9309382761
Email-
sitrgpv@[Link]
CERTIFICATE
This is to certify that the Project Report titled “EliteCode Website” submitted by Akash Rajak
(0967CS221007), Pranav Harode (0967CS221050), Rishi Chaturvedi (0967CS221061), Rohit Kumar
Singh (0967CS221063) and Yatendra Sharma (0967CS211068) in partial fulfilment of the requirement
for the award of the degree of ‘‘Bachelor of Technology’’ in ‘‘Department of Computer Science and
Engineering” is an original work carried out by him under my guidance and guidance. All Students has
worked for more than one year on the above project work at University Institute of Technology RGPV,
Shivpuri and this has reached the standard fulfilling the requirements and the regulation relating to the
degree.
Assistant Professor
II
ABSTRACT
EliteCode is a web-based coding practice and learning platform designed to help students and programming
enthusiasts enhance their problem-solving and coding skills through an interactive and user-friendly
environment. The platform provides a structured collection of programming challenges covering various
difficulty levels and topics, enabling users to strengthen their understanding of data structures, algorithms,
and programming concepts.
The system offers features such as user authentication, coding challenge management, progress tracking,
submission evaluation, and performance analysis. Users can create accounts, solve coding problems,
monitor their achievements, and improve their skills through continuous practice. The platform is designed
with an intuitive interface that ensures accessibility and ease of use for learners at different levels of
expertise.
The project aims to bridge the gap between theoretical learning and practical implementation by providing
a centralized environment for coding practice and skill development. It encourages logical thinking,
analytical abilities, and efficient programming techniques, which are essential for academic growth and
technical career development.
EliteCode is developed using modern web technologies to ensure scalability, reliability, and responsiveness
across different devices. The platform demonstrates the practical application of software engineering
principles, database management, and web development technologies while delivering an effective learning
experience for users.
In conclusion, EliteCode serves as a comprehensive coding practice platform that supports continuous
learning, self-assessment, and technical skill enhancement, making it a valuable resource for students and
aspiring software professionals.
4
ACKNOWLEDGMENT
We express our sincere gratitude to all those who have supported and guided us throughout the completion
of this project report.
First, we would like to thank the management and faculty of the University Institute of Technology RGPV,
Shivpuri for providing us with the opportunity and necessary resources to undertake this project. Their
continuous encouragement and academic environment have been invaluable in shaping our work.
We are deeply indebted to our project guide "Mrs. Pratibha Chourasiya" (Assistant Professor, Department
of Computer Science and Engineering), whose guidance, constructive suggestions, and constant support
helped us at every stage of this project. Their expertise in software engineering and system design played a
crucial role in shaping the architecture and successful completion of this work.
We also extend our heartfelt thanks to all the faculty members of our department for their valuable inputs
and encouragement. Their knowledge and experience in distributed systems, web technologies, and
software architecture have greatly contributed to enhancing our understanding of the subject.
We would also like to thank our friends and classmates for their cooperation, motivation, and support
during the course of this project.
Finally, we express our sincere gratitude to our family members for their unwavering support, patience, and
encouragement throughout this journey.
5
ELITECODE WEBSITE
TABLE OF CONTENTS
Title Page No.
Candidate Declaration ii
Certificate iii
Abstract iv
Acknowledgment v
Table of Contents vi–viii
List of Figures ix
List of Tables x
CHAPTER 1: INTRODUCTION 1–8 1.1 Background
of the Problem 1
1.2 Need for the System 2–3
1.3 Existing System vs Proposed System 3–5
1.3.1 Existing System 3–4
1.3.2 Proposed System 4–5
1.4 Scope of the Project 5–6
1.5 Objectives of the Project 7–8
CHAPTER 2: LITERATURE REVIEW 9–15
2.1 Introduction 9
2.2 Existing Platforms 9–13
2.2.1 LeetCode 10
2.2.2 HackerRank 11
2.2.3 Codeforces 11–12
2.2.4 GeeksforGeeks 12–13
2.3 Comparative Analysis 13–14
2.4 Proposed System and Its Advantages 14–15
CHAPTER 3: SYSTEM ANALYSIS 16–26
3.1 Introduction 16
3.2 Functional Requirements 16–20
3.2.1 User Registration and Authentication 17
3.2.2 Problem Catalogue and Browsing 17–18
3.2.3 Code Editing and Execution 18
3.2.4 Submission and Progress Tracking 18–19
3.2.5 AI Assistance and Video Learning 19
3.2.6 Administration 19–20
3.3 Non-Functional Requirements 20–23
3.3.1 Performance 21
3.3.2 Security 21–22
3.3.3 Usability 22
3.3.4 Scalability 22–23
3.3.5 Maintainability 23
3.3.6 Reliability and Availability 23
3.4 Feasibility Study 24–25
3.4.1 Technical Feasibility 24
3.4.2 Economic Feasibility 24–25
3.4.3 Operational Feasibility 25
3.5 Hardware and Software Requirements 25–26
CHAPTER 4: SYSTEM DESIGNING 27–37
4.1 Introduction 27
4.2 System Architecture 27–31
4.2.1 Presentation Layer 28
4.2.2 Application Layer 29
4.2.3 Data Layer 30
4.2.4 External Services Layer 31
4.3 Data Flow Diagrams 31–34
4.4 Entity-Relationship Diagram 34–35
4.5 Database Design 35–36
4.6 Use-Case and Sequence Diagrams 36–37
LIST OF TABLES
Table No. Table Title Page No.
INTRODUCTION
1.1 Background of the Problem
The software industry has witnessed exponential growth in recent years, and with it the
demand for skilled programmers capable of designing correct and efficient solutions to
algorithmic problems. The technical-recruitment process at virtually every product and
service company now revolves around timed coding assessments and live problem-solving
interviews, in which candidates are evaluated on their ability to translate a problem
statement into working code that passes a battery of automated test cases within strict time
and memory limits. This style of evaluation, popularised by online judges, has made
deliberate and repeated practice on coding problems a non-negotiable part of a
computerscience student’s preparation.
Despite the abundance of static learning material — textbooks, blogs, and recorded lectures
— students continue to face a persistent gap between reading about algorithms and
actually implementing, testing, and debugging them. Theoretical understanding of a data
structure or an algorithm does not automatically translate into the ability to write a correct
program that handles edge cases, respects input bounds, and avoids subtle offbyone errors.
These practical skills are acquired only through hands-on practice with immediate,
objective feedback on correctness and performance.
A further difficulty is the fragmentation of the tools a learner must use. A student preparing
for placements typically juggles a local code editor, a website for problem statements, a
separate place to track solved problems, video lectures on a streaming platform, and search
engines or forums for clearing doubts. This fragmentation imposes a significant cognitive
and logistical overhead and disrupts the flow of focused practice. There is no single,
centralised environment that integrates problem discovery, a professional code editor,
automated judging, video editorials, progress tracking, and doubt resolution into a
seamless experience.
Therefore, there is a compelling need for a technology-driven platform that bridges this gap
— a system that provides authentic, automated evaluation of code, integrated learning aids,
and a productive user experience, all within a secure and scalable architecture. EliteCode is
conceived to meet exactly this need.
LITERATURE REVIEW
2.1 Introduction
A literature review is an essential precursor to the design of any non-trivial software system.
By studying the systems that already address a similar need, a designer can identify proven
design patterns, learn from the limitations of existing solutions, and clearly articulate the
gap that the proposed system intends to fill. This chapter surveys the landscape of online
coding and interview-preparation platforms, examines the most prominent of them in
detail, compares them across a set of relevant dimensions, and establishes the advantages of
the proposed EliteCode platform.
Feature / EliteCode
Platform LeetCode HackerRank Codeforces GeeksforGeeks (Proposed)
CHAPTER 3
SYSTEM ANALYSIS
3.1 Introduction
System analysis is the process of studying a problem domain in order to specify the
requirements and behaviour of a proposed software system. This chapter analyses the
requirements of the EliteCode platform, enumerating its functional and non-functional
requirements, assessing its feasibility along technical, economic, and operational
dimensions, and stating the hardware and software prerequisites. The analysis presented
here forms the foundation on which the system design of Chapter 4 is built.
CHAPTER 4
SYSTEM DESIGNING
4.1 Introduction
System design translates the requirements established in the previous chapter into a
concrete architectural and structural blueprint for the software. This chapter presents the
the conceptual data model as an entity-relationship diagram; the concrete database design
as a set of MongoDB collections; and the externally visible behaviour as use-case and
sequence diagrams. Together these views constitute a complete design from which the
implementation directly follows.
┌─────────────────────────────────────────────────────────────────────
─┐
│ CLIENT TIER (Browser)
│
│ React 19 SPA · Redux Toolkit · Tailwind/DaisyUI · Monaco Editor
│
│ Pages: Homepage, Login, Signup, ProblemPage, Admin
│
│ Components: AdminPanel, AdminUpload, ChatAi, Editorial, History
│
└───────────────────────────────┬─────────────────────────────────────
─┘
│ HTTPS / REST (JSON, axios)
│ HTTP-only JWT cookie
▼
┌─────────────────────────────────────────────────────────────────────
─┐
│ APPLICATION TIER ([Link] + Express)
│ Routers: /user /problem /submission /ai /video
│
│ Middleware: userMiddleware (JWT) · adminMiddleware (JWT +
role) │
│ Controllers: auth · problem · submission · video · solveDoubt
│
│ Utilities: problemUtility (Judge0) · validator
│
└───────┬───────────────┬───────────────┬───────────────┬─────────────
─┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
│ MongoDB │ │ Redis │ │ Judge0 CE │ │ Gemini AI / │
│ (Mongoose) │ │ (token │ │ (code │ │ Cloudinary │
│ users, │ │ blocklist) │ │ execution) │ │ (AI / video) │
│ problems, │ │ │ │ │ │ │
│ submissions,│ │ │ │ │ │ │
│ videos │ │ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
└──────────────────┘ DATA TIER · EXTERNAL SERVICES
└──────────┘
At the context level, the EliteCode platform is a single process exchanging data with two
human external entities — User and Admin — and with the external service providers.
Fig. 4 — DFD Level 1
┌──────┐ ┌────────────────────┐
│ USER │──register/login──────────────────▶│ 1.0 Authentication │──▶
(D1) Users
└──────┘◀──JWT cookie──────────────────────│ & Sessions
│◀── │
└────────────────────┘
│ browse / filter ┌────────────────────┐
├────────────────────────────────────────│ 2.0 Problem │──▶
(D2) Problems
│◀──problem list / detail─────────────────│ Catalogue │◀──
│
└────────────────────┘ │ run / submit code
┌────────────────────┐ ┌────────┐
├────────────────────────────────────────│ 3.0 Code Execution │────▶│
Judge0 │
│◀──verdict, runtime, memory──────────────│ & Judging
│◀────└────────┘
│ └──▶ (D3)
Submissions
│ ask doubt ┌────────────────────┐
┌────────┐
├────────────────────────────────────────│ 4.0 AI Assistant │────▶│
Gemini │
│◀──AI response───────────────────────────│
│◀────└────────┘
│ watch editorial ┌────────────────────┐
┌──────────┐
└────────────────────────────────────────│ 5.0 Video Learning
│───▶│Cloudinary│
│
│◀───└──────────┘
┌───────┐ manage problems / videos └─────────┬──────────┘ │ ADMIN
│──────────────────────────────────────────────┴──▶ (D4) SolutionVideos
└───────┘
Level 1 decomposes the platform into five processes — Authentication, Problem Catalogue,
Code Execution & Judging, AI Assistant, and Video Learning — and four data stores: D1
Users, D2 Problems, D3 Submissions, and D4 Solution-Videos.
Fig. 5 — DFD Level 2 (Code Submission Process)
┌──────┐ code + language + problemId ┌──────────────────────────┐
│ USER │ ──────────────────────────────▶│ 3.1 Create pending │──▶
(D3) Submissions
└──────┘ │ submission record │
└────────────┬─────────────┘
▼
fetch hidden tests ┌──────────────────────────┐ (D2)
Problems ─────────▶│ 3.2 Build Judge0 batch │
│ (source, lang, stdin, │
│ expected_output) │
└────────────┬─────────────┘
▼
┌──────────────────────────┐
tokens ┌────────┐
│ 3.3 Submit batch & poll │
────────▶ │ Judge0 │
│ until status > 2 │
◀──────── └────────┘
└────────────┬─────────────┘
results
▼
┌──────────────────────────────────────────┐
│ 3.4 Compute verdict (accepted/wrong/error),│──▶ update (D3)
│ runtime, memory, testCasesPassed
│──▶ update (D1) solved set
└────────────────────┬───────────────────────┘
▼
┌──────────┐
│ USER │ verdict +
statistics
└──────────┘
Level 2 expands the central Code Execution & Judging process, showing the creation of a
pending submission, the construction of the Judge0 batch from the problem’s hidden test
cases, the submit-and-poll cycle, and the final computation and persistence of the verdict.
A User (admin) creates many Problems; a User solves many Problems and a Problem is
solved by many Users; a User makes many Submissions, each targeting exactly one
Problem; and a Problem has one or more SolutionVideos, each uploaded by one admin
user.
A compound index on { userId, problemId } accelerates the common query for a user’s
submissions to a particular problem. The solution-videos collection stores problemId and
userId references, a unique cloudinaryPublicId, the secureUrl, an optional
thumbnailUrl, and the duration in seconds.
Fig. 8 captures the time-ordered interaction for the most important scenario — code
submission and judging.
Fig. 8 — Sequence Diagram: Code Submission and Judging
User ProblemPage Express(submit) MongoDB Judge0
│ Submit │ │ │ │
│──────────▶│ POST /submission/submit/:id │ │
│ │─────────────────▶│ create pending submission │
│ │ │─────────────▶│ │
│ │ │ load hidden test cases │
│ │ │◀─────────────│ │
│ │ │ submitBatch(source,lang,io) │
│ │ │────────────────────────────▶│
│ │ │◀──────── tokens ─────────────│
│ │ │ poll submitToken (status>2) │
│ │ │────────────────────────────▶│
│ │ │◀──── results (status,time,mem)
│ │ │ compute verdict, update sub │
│ │ │─────────────▶│ update solved set
│ │◀── verdict,stats │ │ │
│◀──────────│ │ │ │
CHAPTER 5
IMPLEMENTATION
5.1 Introduction
This chapter describes how the design presented in Chapter 4 was realised as working
software. It first details the technology stack and then describes the implementation of the
system module by module — the backend and authentication subsystem, the Judge0
codeexecution module, the frontend and editor module, and the administrative, AI, and
video modules — relating each to the concrete files, REST endpoints, and data schemas of
the system. The implementation followed an incremental, phase-wise methodology in which
the backend foundation was established first, followed by code execution, the frontend, the
editor, the admin panel, AI integration, the video module, and finally testing and
deployment.
On the frontend, React provides the component model; Redux Toolkit manages global
authentication state; React Router defines the route table; Tailwind CSS and DaisyUI
provide styling; Monaco provides the code-editing surface; react-hook-form with zod
validates forms; and axios performs all HTTP communication with credentials enabled. On
the backend, Express defines the HTTP server and routing; Mongoose models and
validates documents; jsonwebtoken and bcrypt implement authentication; validator
performs server-side input checks; and cookie-parser and cors provide middleware.
MongoDB stores all primary data, Redis maintains the JWT blocklist, and the external
services Judge0, Gemini, and Cloudinary provide execution, AI, and media respectively.
5.3 Backend and Authentication Module
The backend foundation comprises the Express server, the database connections, the data
models, the authentication subsystem, and the middleware.
The application entry point configures CORS to accept credentialed requests from the
frontend origin, registers the JSON-body and cookie-parser middleware, mounts the five
routers under their URL prefixes (/user, /problem, /submission, /ai, /video), and then
initialises the MongoDB and Redis connections in parallel before beginning to listen. The
MongoDB connection targets the leetcode database through Mongoose.
The four Mongoose schemas described in Section 4.5 were defined with their validations,
enumerations, references, the compound submission index, and the cascade-on-delete
hook on the user schema. The userAuthent controller implements registration, login,
logout, admin registration, and profile deletion. Registration validates the request body
using the validator utility, hashes the password with bcrypt, persists the user (forcing
the user role), signs a JWT carrying { _id, emailId, role } valid for one hour, and
returns it via an HTTP-only cookie. Login verifies the credentials and re-issues a token;
logout adds the current token to a Redis blocklist with a TTL equal to its remaining lifetime,
so the token is rejected on subsequent use even before it expires.
Two middleware modules enforce access control. userMiddleware extracts and verifies the
JWT from the cookie, confirms the corresponding user exists, and checks that the token is
not present in the Redis blocklist before attaching the user to the request.
adminMiddleware performs the same checks and additionally requires the token’s role to be
admin. The complete set of REST endpoints is summarised in Table 5.1.
C++ 54
Java 62
JavaScript 63
The userSubmission controller exposes two operations. runCode executes the user’s
code against the problem’s visible test cases and returns the per-case output for display in
the editor. submitCode first creates a pending submission record, then executes the code
against the problem’s hidden test cases; once results are available it determines the verdict
— accepted only if every hidden test passes (status id 3), otherwise wrong or error —
records the runtime, memory, and number of test cases passed, updates the submission,
and, on acceptance, adds the problem to the user’s problemSolved set without
duplication. The control logic of this workflow is depicted in Fig. 9.
┌─────────┐
│ Start │
└────┬────┘
▼
┌──────────────────────┐
│ User clicks Run/Submit│
└──────────┬───────────┘
▼
┌──────────────────────┐
│ Select test set: │
│ Run→visible │
│ Submit→hidden │
└──────────┬───────────┘
▼
┌──────────────────────┐
│ Map language → id │
│ (c++54,java62,js63) │
└──────────┬───────────┘
▼
┌──────────────────────┐
│ submitBatch to Judge0 │
└──────────┬───────────┘
▼
┌──────────────────────┐ not done
│ Poll tokens; all │───────────┐
│ status_id > 2 ? │◀──────────┘ wait 1s
└──────────┬───────────┘
yes ▼
┌──────────────────────┐ any fail ┌──────────────────────┐
│ All test cases │───────────▶│ status = wrong/error │
│ accepted (id==3)? │ no │ record stats
│ └──────────┬───────────┘
└──────────┬───────────┘ yes ▼
│ ┌──────────────────────┐ │
│ status = accepted; │ │
│ add to solved set │ │
└──────────┬───────────┘ │
▼◀───────────────────────────────────┘
┌──────────────────────┐
│ Return verdict+stats │
└──────────┬───────────┘
▼
┌───────┐
│ End │
└───────┘
5.5 Frontend and Editor Module
The frontend is a React single-page application bootstrapped in [Link], which wraps the
application in the Redux Provider and the router. [Link] defines the route table and the
protection rules: the homepage and problem pages require authentication; the login and
signup routes redirect already-authenticated users away; and the admin routes require the
admin role. On load, the app dispatches a checkAuth thunk that calls /user/check to
restore the session from the cookie.
The Redux store is configured with a single auth slice that defines the registerUser,
loginUser, checkAuth, and logoutUser async thunks — each wrapping the
corresponding API call — and reducers that update user, isAuthenticated, loading,
and error across the pending/fulfilled/rejected lifecycle. The axiosClient utility
centralises the base URL and enables withCredentials so the JWT cookie travels with
every request. The Login and Signup pages use react-hook-form with zod schemas to
validate inputs on the client, and the Homepage fetches the full problem list and the user’s
solved problems, rendering them as a card grid with client-side filters by difficulty, tag, and
solved status.
The problem-solving workspace, implemented in ProblemPage, is organised as a two-panel
layout. The left panel offers tabbed views — Description, Editorial (the solution video),
Solutions (the reference solutions per language), Submissions (the user’s history), and
ChatAI (the AI tutor). The right panel hosts the Monaco editor with a language selector (C+
+, Java, JavaScript) that loads the corresponding starter code, configured with a dark theme,
line numbers, and word wrapping, alongside the Testcase and Result views. Run calls
/submission/run/:id and renders per-case results; Submit calls
/submission/submit/:id and renders the verdict and statistics. The SubmissionHistory
component fetches and tabulates past attempts with colour-coded statuses and a modal
viewer for each attempt’s code.
TC- Register with valid data Account created; cookie set Pass
01
TC- Register with weak password Validation error; no account Pass
02
TC- Register with existing email Error: user already exists Pass
03
TC- Login with correct credentials Authenticated; cookie set Pass
04
TC- Login with wrong password Authentication error Pass
05
TC- Access protected route without 401 Unauthorized Pass 06 token
TC- Use token after logout 401 Unauthorized Pass
07 (blocklisted)
TC- List and filter problems Correctly filtered list Pass
08
TC- Run correct code (visible tests) All visible cases pass; output shown Pass 09
TC- Submit correct code (hidden Verdict accepted; runtime/memory Pass
10 tests) recorded
TC- Submit wrong code Verdict wrong; passed-count < total Pass
11
TC- Submit code with error Verdict error; message captured Pass
12
TC- Solved set updated on Problem added without duplication Pass 13
acceptance
TC- View submission history History with code, status, stats Pass
14
TC- Non-admin hits admin route Forbidden Pass
15
TC- Create problem with valid Problem saved Pass
16 references
TC- Create problem with failing Rejected; not saved Pass
17 reference
TC- Upload and stream solution Uploaded to Cloudinary; plays in player Pass 18
video
TC- Delete video Removed from Cloudinary and DB Pass
19
TC- AI tutor query Relevant, problem-scoped response Pass
20
All representative test cases passed, indicating that the implemented system meets its
functional and security requirements across the tested scenarios. Defects discovered
during development — chiefly around the correct interpretation of Judge0 status codes, the
polling-termination condition, and the propagation of credentialed cookies across origins
— were resolved and re-tested.
6.4 Discussion
The implemented system fulfils all of the objectives stated in Section 1.5. A secure
JWT-in-cookie sessions, role-based access control, and Redis-backed token revocation. A
clean, modular REST API was built and organised into five logical route groups, backed by a
well-validated four-collection data model. The Judge0 integration provides authentic
automated judging in three languages, with accurate verdicts and performance statistics,
and the reference-solution validation guarantees the integrity of every published problem.
The React frontend delivers a responsive, single-page experience built around a professional
code editor, and the AI tutor and video-editorial modules add genuine pedagogical value
tightly integrated into the problem-solving workflow.
The principal engineering lessons of the project concerned the careful handling of
asynchronous, externally dependent workflows — particularly the submit-and-poll cycle
against Judge0 — and the subtleties of credentialed cross-origin requests, which required
coordinated CORS and cookie configuration. The decision to externalise both code
execution and media storage proved especially valuable: it kept the application server
lightweight, sidestepped the considerable security risk of running untrusted code locally,
and yielded a design that scales horizontally. Measured against the comparison of Chapter
2, EliteCode successfully combines, in a single free and self-hostable application, a set of
capabilities that are otherwise scattered across — and often paywalled within — the
leading commercial platforms.
CHAPTER 7
FUTURE SCOPE
The architecture of EliteCode lends itself naturally to extension. While the present version
meets all of its objectives, the following enhancements are proposed for future work.
7.1 Contest Module. A time-boxed contest mode with live leaderboards, scoring, and a rating
system would support competitive practice and institutional events, drawing on the contest
model demonstrated by platforms such as Codeforces.
7.2 Expanded Language Support. Additional languages such as Python, C, and Go can be
integrated by extending the language-id mapping and the starter-code templates, broadening
the platform’s appeal.
7.3 Plagiarism and Similarity Detection. Automated comparison of submissions to detect
copied solutions would uphold academic integrity, an important consideration for institutional
deployment.
7.4 Discussion Forum and Editorial Comments. A community layer enabling learners to
discuss approaches and ask questions on each problem would complement the AI tutor
with peer learning.
7.5 Advanced Learning Analytics. Dashboards summarising a learner’s strengths and
weaknesses by topic and difficulty, with personalised problem recommendations, would
make the platform more adaptive and effective.
7.6 Company- and Topic-Wise Problem Sheets. Curated tracks aligned with the
interview patterns of specific companies and with curricular topics would help learners
prepare in a targeted manner.
7.7 Richer AI Capabilities. Step-wise hint laddering, automated complexity analysis of a
user’s own code, and personalised feedback would deepen the pedagogical value of the AI
assistant.
7.8 Native Mobile Application and Hardened Deployment. A companion mobile
application would broaden access, while containerisation, CI/CD pipelines, rate limiting,
centralised logging, and secrets management would harden the platform for
productiongrade operation. Adaptive-bitrate streaming and automatic transcoding of
editorial videos would further improve the learning experience across varied network
conditions.
The realisation of these enhancements would evolve EliteCode from a capable majorproject
platform into a production-grade learning ecosystem.
CHAPTER 8
CONCLUSION
The EliteCode project set out to design and build a secure, integrated, full-stack platform
for programming practice and technical-interview preparation, and it has achieved that
goal. The completed system unifies, within a single coherent application, the entire practice
workflow: browsing and filtering a curated problem catalogue; writing code in a
professional multi-language in-browser editor; running it against sample tests and
submitting it for automated judging against hidden tests; receiving an accurate verdict with
runtime and memory statistics; obtaining context-aware help from an AI tutor; learning
from streamed video editorials; and tracking one’s progress through a persistent
submission history and solved-problem set. Around this learner-facing experience, a
complete administrative subsystem allows authorised staff to manage problems, learning
content, and users, with a built-in integrity guarantee that prevents the publication of
inconsistent problems.
In building the system, the project demonstrated the practical application of a broad
spectrum of contemporary software-engineering concepts: the design of a RESTful,
serviceoriented backend; data modelling in a document database with validation,
references, and indexes; secure, token-based authentication and role-based authorisation
reinforced with a cache-based revocation mechanism; integration with multiple third-party
services for code execution, artificial intelligence, and media handling; asynchronous,
pollbased orchestration of long-running external tasks; and the construction of a responsive
singlepage user interface with disciplined client-side state management. The system was
validated through a structured, multi-level testing effort, and all representative test cases
passed.
The development process, structured as a sequence of well-defined phases, reinforced
sound engineering practices — incremental delivery, separation of concerns, and
continuous integration of each subsystem before the next was begun. The most valuable
lessons concerned the orchestration of asynchronous external services and the careful
handling of security across origins, both of which are central to modern web development.
EliteCode therefore stands both as a useful, working product for learners and as a
comprehensive demonstration of full-stack web-engineering competence appropriate to a final-
year major project. With the enhancements outlined in the future-scope chapter, it has clear
potential to evolve into a production-grade learning ecosystem serving a wider community of
students.
REFERENCES
[1] R. Elmasri and S. B. Navathe, Fundamentals of Database Systems, 7th ed. Pearson, 2016.
[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, 4th ed.
MIT Press, 2022.
[3] R. S. Pressman and B. R. Maxim, Software Engineering: A Practitioner’s Approach, 9th ed.
McGraw-Hill, 2020.
[4] Meta Open Source, “React — The library for web and native user interfaces.” [Online]. Available:
[Link]
[5] OpenJS Foundation, “[Link] Documentation.” [Online]. Available:
[Link]
[6] OpenJS Foundation, “Express — Fast, unopinionated, minimalist web framework for [Link].”
[Online]. Available: [Link]
[7] MongoDB Inc., “MongoDB Documentation.” [Online]. Available:
[Link]
[8] Automattic, “Mongoose ODM Documentation.” [Online]. Available:
[Link]
[9] Redux Team, “Redux Toolkit Documentation.” [Online]. Available: [Link]
[10] Tailwind Labs, “Tailwind CSS Documentation.” [Online]. Available:
[Link]
[11] Microsoft, “Monaco Editor — The code editor that powers VS Code.” [Online].
Available: [Link]
[12] H. Dosilovic and Judge0, “Judge0 — An open-source online code execution system.” [Online].
Available: [Link]
[13] Google, “Gemini API — Google AI for Developers.” [Online]. Available:
[Link]
[14] Cloudinary, “Cloudinary Documentation — Image and Video Management.” [Online]. Available:
[Link]
[15] Redis Ltd., “Redis Documentation.” [Online]. Available: [Link]
[16] Internet Engineering Task Force, “RFC 7519: JSON Web Token (JWT),” 2015. [Online].
Available: [Link]
[17] L. Richardson and S. Ruby, RESTful Web Services. O’Reilly Media, 2007.
[18] MDN Web Docs, “Web technology for developers,” Mozilla. [Online]. Available:
[Link]
[19] M. Fowler, Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.
[20] OWASP Foundation, “OWASP Top Ten — Web Application Security Risks.” [Online].
Available: [Link]