Skip to content

Repository files navigation

DevArcade – Coding Interview Preparation Platform

Live Demo Next.js TypeScript PostgreSQL

DevArcade is a full-stack coding interview preparation platform that combines structured learning paths, interactive coding exercises, and personalized progress tracking. The platform enables learners to move seamlessly from theory to hands-on coding practice through an integrated learning experience.


Why DevArcade?

Most learning platforms focus only on video content, while coding platforms focus only on solving problems.

DevArcade bridges this gap by combining structured learning, interactive coding exercises, premium learning resources, and progress tracking into a single platform designed for interview preparation.


Features

Authentication & User Management

  • Secure authentication using Clerk
  • User onboarding and profile management
  • Protected routes
  • Subscription management

Learning Platform

  • Browse structured learning paths
  • Enroll in courses
  • Free preview chapters
  • Premium course unlocking
  • Chapter-wise learning progression

Interactive Coding Workspace

  • Browser-based coding environment
  • CodeMirror editor
  • Sandpack-powered code execution
  • Exercise descriptions
  • Integrated hints
  • Sample inputs and expected outputs

Progress Tracking

Track learning progress through:

  • Enrolled courses
  • Completed exercises
  • XP progression
  • Course-wise statistics
  • Personalized dashboard

Premium Features

  • Pro subscription
  • Premium course access
  • Clerk Billing integration
  • Subscription management

Tech Stack

Category Technologies
Frontend Next.js, React, TypeScript, Tailwind CSS
Backend Next.js Server Actions, API Routes
Database PostgreSQL, Drizzle ORM
Authentication Clerk
Billing Clerk Billing
Code Editor CodeMirror
Code Execution Sandpack
Deployment Vercel

System Architecture

                        User
                          │
                          ▼
                  Next.js Frontend
                          │
          Server Actions / API Routes
                          │
          ┌───────────────┼───────────────┐
          ▼               ▼               ▼
       Clerk         PostgreSQL      Sandpack
 Authentication       (Drizzle)    Code Execution

User Flow

Sign Up / Login
        │
        ▼
Browse Courses
        │
        ▼
Enroll
        │
        ▼
Learn Chapter
        │
        ▼
Practice Exercise
        │
        ▼
Run Code
        │
        ▼
Mark Completed
        │
        ▼
XP Updated
        │
        ▼
Dashboard Progress

Folder Structure

app/
components/
actions/
lib/
hooks/
drizzle/
public/

Local Setup

Clone Repository

git clone https://github.com/shubham79a/dev-arcade.git

cd dev-arcade

Install Dependencies

npm install

Configure Environment Variables

Create a .env file.

DATABASE_URL=

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=

CLERK_WEBHOOK_SECRET=

NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_URL=

Start Development Server

npm run dev

Engineering Highlights

  • Built using the Next.js App Router architecture.
  • Designed modular server actions for scalable backend logic.
  • Integrated Clerk for authentication, subscription management, and protected routes.
  • Implemented XP-based learning progression with personalized dashboards.
  • Developed an interactive browser-based coding workspace using CodeMirror and Sandpack.
  • Structured PostgreSQL database using Drizzle ORM.

Roadmap

  • Judge0 integration for multi-language code execution
  • Automatic solution evaluation using hidden test cases
  • Submission history
  • Enhanced learning analytics

Screenshots

Add screenshots or GIFs demonstrating:

  • Landing Page
  • Course Details
  • Coding Workspace
  • Dashboard
  • Premium Subscription

Lessons Learned

While building DevArcade, I gained hands-on experience with:

  • Designing a modular full-stack application using Next.js App Router
  • Managing authentication and subscription workflows with Clerk
  • Building interactive coding interfaces with CodeMirror and Sandpack
  • Structuring relational data models using PostgreSQL and Drizzle ORM
  • Designing scalable server actions and reusable UI components

Author

Shubham Kumar


If you found this project interesting, consider ⭐ starring the repository.

About

A modern interview preparation platform combining structured learning paths, coding challenges, contests, multi-language code execution, and personalized progress analytics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages