DevLab is an AWS-powered Ed-Tech platform for learning modern web development with interactive coding challenges, real-time feedback, adaptive recommendations, and a community forum. It combines a React front-end (with Monaco editor) and a Node/Express API with a headless Chrome (Puppeteer) evaluator, plus a Flask microservice for recommendationsβscalable on AWS.
DevLab enables learners to practice HTML, CSS, JavaScript, React, and Tailwind through hands-on challenges. Submissions are executed and validated in an isolated headless browser; learners receive instant feedback, scores, and personalized resources. A simple forum fosters collaboration and Q&A.
- π€ Auth & Profiles β JWT-based auth, user profiles, role flags (user/admin).
- π§βπ» Monaco Editor Playground β Real-time code editing with preview.
- π§ͺ Instant Evaluation β Headless Chrome (Puppeteer) runs custom validation against learner output.
- π Challenges & Leaderboard β Track progress, attempts, and scores.
- π― Adaptive Recommendations β Flask microservice returns learning resources based on history.
- π¬ Discussion Forum β Post questions, share tips, and discuss solutions.
- π Analytics β Progress and usage insights (expandable).
- βοΈ Cloud-Native β S3 for assets/CSV, DynamoDB for users/posts, EB/EC2 for API, Amplify for frontend.
- π Security-First Defaults β Env-based secrets, IAM roles, least privilege.
Note: Current evaluator runs on Node + Puppeteer. A serverless/Lambda move is on the roadmap.
High-level AWS layout for DevLab.
Click any image to view full size. This gallery presents the product flow from sign-up to results.
Frontend β React, Vite/CRA, TailwindCSS, Monaco Editor
- SPA with route guards and layout shells
- Monaco editor playground with live preview
- Utility-first styling via TailwindCSS
Backend API β Node.js, Express.js, JSON Web Tokens
- REST endpoints for auth, posts, attempts
- JWT-based sessions and role flags
- Input validation, rate limiting, CORS
Evaluator β Puppeteer (headless Chrome)
- Runs user HTML/CSS/JS in sandboxed headless Chrome
- Applies whitelisted validation scripts; returns structured results
- Timeouts and resource limits for safety
ML Recommender β Flask (Python)
- Consumes anonymized attempt history & skill tags
- Returns ranked resources from S3-backed catalog
- Pluggable for embeddings or CF later
Data β DynamoDB & Amazon S3
users
,posts
,attempts
tables (GSIs for user/challenge lookups)- S3 for static assets, CSV datasets, screenshots
Infra β Elastic Beanstalk, Amplify, CloudWatch/CloudTrail, IAM
- EB for Node API & Flask; Amplify for static frontend
- CloudWatch logs/metrics; CloudTrail auditing
- IAM roles (least privilege) for DynamoDB/S3 access
π§© Layer | π οΈ Stack |
---|---|
Frontend | React Β· Vite/CRA Β· TailwindCSS Β· Monaco Editor |
Backend API | Node.js Β· Express.js Β· JWT |
Evaluator | Puppeteer (headless Chrome) |
ML Recommender | Flask (Python) |
Data | DynamoDB (Users, Posts, Attempts) Β· Amazon S3 (assets/CSV) |
Infra | Elastic Beanstalk (API & Flask) Β· Amplify (Frontend) Β· CloudWatch/CloudTrail Β· IAM |
- Springer Chapter
- IEEE Xplore β Document 10497289
- IEEE Xplore β Document 10426375
- arXiv Preprint
- Springer Chapter
- Journal of Cloud Computing (SpringerOpen)
Some resources (Springer, IEEE Xplore) may require institutional access.