A premium, gamified learning experience designed to turn data novices into Databricks Architects. featuring specialized "Career Tracks", interactive in-browser IDEs, and a competitive "Cosmic" achievement system.
- In-Browser IDE: Feature-rich Monaco editor supporting Python/PySpark syntax highlighting.
- Real-Time Validation: Instant feedback on code submissions (no more waiting for server execution queues).
- "Nexus" Context: Lessons are wrapped in immersive scenarios (e.g., "Build a Medallion Architecture for Mars Base Alpha").
- Cosmic Rank System: Progression from "Novice" to "Lakehouse Legend" based on XP.
- Dynamic Leaderboards: Global rankings updated in real-time to foster healthy competition.
- Achievement System: Unlock unique badges like first_contact (First Lesson) and void_walker (Course Completion).
| Component | Technology | Description |
|---|---|---|
| Frontend | Next.js 14 | App Router, Server Components, SSR |
| Styling | TailwindCSS | Utility-first CSS framework |
| Editor | Monaco Editor | The code editor that powers VS Code |
| Backend | Express.js | Robust REST API server |
| Database | MongoDB | NoSQL database for flexible user & content schemas |
| ORM | Prisma | Type-safe database client |
| Auth | JWT | Secure stateless authentication |
Follow these instructions to set up the project locally for development.
- Node.js (v18 or higher recommended)
- MongoDB (Running locally on port 27017 or a cloud connection string)
- Git
-
Clone the Repository
git clone https://github.com/Ritesh1707/DataQuest.git cd dataquest -
Setup the Server (Backend)
cd server # Install dependencies npm install # Configure Environment # Seed the Database (Important for initial content!) node src/utils/seed_runner.js node src/utils/seed_badges.js # Start the Development Server (Port 3001) npm run dev
-
Setup the Client (Frontend) Open a new terminal window:
cd client # Install dependencies npm install # Start Next.js Development Server (Port 3000) npm run dev
-
Access the App Open your browser and navigate to
http://localhost:3000.
📦 dataquest
├── 📂 client # Next.js Frontend Application
│ ├── 📂 app # App Router Pages (Dashboard, Learn, Auth)
│ ├── 📂 components # Reusable UI Components (Navbar, GlassCard)
│ ├── 📂 lib # Utilities (API Client, Constants)
│ └── 📄 global.css # "Cosmic Dark" Theme Definitions
│
└── 📂 server # Express.js Backend API
├── 📂 src
│ ├── 📂 controllers # Request Logic (Auth, Content, Gamification)
│ ├── 📂 models # Prisma Schema
│ ├── 📂 routes # API Endpoints
│ └── 📂 utils # Validation Engine & Seed Scripts
└── 📄 server.js # Entry Point- Seeding Data: The platform relies on content. Run
seed_runner.jsanytime to reset courses andseed_badges.jsto update achievement definitions. - Badges: XP and Badge logic resides in
contentController.js. - Validation: The
validationEngine.jscurrently supports regex-based solution checking.