Project detail
ElevateSDE — Enterprise AI Interview Prep Platform (SaaS)
Architected a multi-tenant, enterprise-grade SaaS platform that helps software engineers prepare for interviews. Built as a Turborepo + pnpm monorepo with a NestJS backend organized into 19 domain modules following strict Domain-Driven Design + Clean Architecture (Domain → Application → Infrastructure → Presentation), and two Next.js 16 (App Router) frontends — a candidate portal and an independently deployable Super-Admin backoffice served behind a single origin. The centerpiece is a harness-based, Dockerized code-execution sandbox that grades DSA submissions across JavaScript, Python, and C++ in isolated containers, with a synchronous run path and a BullMQ-queued submit path. On top of it sits a 2,700+ problem bank, daily challenges with solving streaks, timed coding contests, achievement badges, an in-app notification center, spaced-repetition review, per-problem discussions/bookmarks/notes/lists, a Kanban job tracker, community forums with moderation, and timeframe leaderboards — with RBAC, JWT access/refresh rotation, feature flags, and immutable audit logging for SOC 2 / ISO 27001 compliance.
Technologies
Stack used
The core tools and frameworks behind this project.
System design
Architecture
How the pieces fit together — monorepo frontends, the DDD backend, data stores, and the AI pipeline.
Key Highlights
What it demonstrates
The main product, architecture, and delivery signals from this build.
- Multi-tenant SaaS architecture supporting both individual (B2C) candidates and B2B companies buying seats, with tenantId scoping across all data
- NestJS backend built on strict DDD + Clean Architecture across 19 domain modules (auth, users, organization, admin, audit-log, feature-flag, job-application, problem, code-runner, daily-challenge, dashboard, forum, leaderboard, achievement, notification, problem-social, review, contest, queues) — each split into Domain → Application → Infrastructure → Presentation with private-constructor entities and repository interfaces
- Turborepo + pnpm monorepo with two Next.js 16 apps (a candidate portal and a Super-Admin backoffice served at /admin) sharing typed packages (shared-types, a custom Tailwind UI library, and eslint/ts configs)
- Single-origin routing — the admin app runs as a separate secure deployable on an internal port and is reverse-proxied under /admin, giving a hard security boundary while users see one domain
- Harness-based, Dockerized code-execution sandbox that grades DSA submissions in isolated containers (JavaScript, Python, C++; --network none, read-only filesystem, and CPU/memory/time limits) with EXACT / UNORDERED / FLOAT_TOLERANT output comparison
- Two execution paths — a synchronous POST /assessments/run for visible test cases, and a BullMQ-queued POST /assessments/submit that runs all (incl. hidden) cases through a worker, transitioning submissions QUEUED → RUNNING → ACCEPTED / WRONG_ANSWER / … with client polling
- 2,700+ problem bank with per-problem visible/hidden test cases, multi-language starter code, and a full admin authoring + publishing workflow
- Gamification suite — daily challenges with solving streaks, achievement badges with criteria thresholds, a GitHub-style 365-day submission heatmap, and all-time / monthly / weekly leaderboards
- Community layer — a discussion forum with upvotes and a backoffice moderation queue, plus per-problem discussions, bookmarks, private notes, and custom problem lists (problem-social module)
- Event-driven backend (EventEmitter) with an in-app notification center (badge unlocks, streak milestones, forum activity) and per-type preferences; resource-heavy work is offloaded to BullMQ + Redis queues
- Admin backoffice with user/role management, tenant administration, feature flags with percentage-based rollouts, immutable audit logs (SOC 2 / ISO 27001), a contest builder/scheduler, a daily-challenge scheduler, badge management, and forum moderation
- Secure auth with Passport.js + JWT access/refresh token rotation, role-based access control (ADMIN, TENANT_ADMIN, USER), and Swagger/OpenAPI documentation
- SM-2 style spaced-repetition review scheduler that resurfaces solved problems for re-practice (API live)
- No-comments, strict-TypeScript codebase (no `any`), custom Tailwind components (no Shadcn), solid dark/light surfaces with no gradients or glassmorphism
Roadmap
Planned improvements
Next useful additions and production-hardening ideas for the project.
Screenshots
Product walkthrough
Screens from the actual project, preserved as a visual record of the interface.


































Swipe on touch devices or use the controls to browse screenshots