Learn. Compete. Grow.
Codentra is a modern developer growth platform designed to help software engineers prepare for technical interviews, participate in coding competitions, improve their skills, and accelerate their careers.
Our mission is to build a complete ecosystem where developers can learn, compete, get mentored, discover opportunities, and grow throughout their careers.
- 🏆 Weekly DSA Contests
- ⚡ Competitive Programming Contests
- 🏗️ System Design Challenges
- 🧠 Technical Quizzes
- 📊 Leaderboards & Rankings
- 💼 Curated Job Openings
- 🤝 Referral Board
- 🎯 Community Challenges
- 📄 Resume Reviews
- 🎤 Mock Interviews
- 💬 Career Guidance Sessions
- 🔗 LinkedIn Profile Reviews
- Next.js 15
- TypeScript
- Tailwind CSS
- Shadcn UI
- React Query
- Zustand
- NestJS
- Prisma ORM
- PostgreSQL
- Turborepo
- pnpm Workspaces
- Docker
- Vercel
- Railway
- Neon PostgreSQL
- Razorpay
- Google OAuth
- Cloudinary
- Resend
- Judge0 CE (code execution)
- BullMQ + Redis (async submissions)
codentra/
├── apps/
│ ├── web/
│ └── api/
│
├── packages/
│ ├── ui/
│ ├── config/
│ ├── types/
│ └── shared/
│
├── docs/
│
└── infra/
- ✅ Phase 0 — Architecture & Planning
- ✅ Phase 1 — Foundation (Landing, Auth, Subscription, Dashboards, Admin)
- ✅ Phase 2 — Core Engagement (Contests, Quizzes, Leaderboards, Notifications)
- ✅ Phase 3 — Career & Community (Jobs, Referrals, System Design)
- 🚧 Phase 4 — Premium Services (next)
docker compose up -d # Codentra Postgres + Redis (required for submit queue)
pnpm install
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env.local
pnpm judge:up # Judge0 CE at http://localhost:2358
pnpm db:push # sync schema to Postgres
pnpm db:seed # admin@codentra.dev / Admin123! + demo user + sample contests
pnpm dev:clean # start API (3001) + web (3000)| Layer | Technology |
|---|---|
| Editor | Monaco (@monaco-editor/react) |
| Run (sync) | Judge0 CE API |
| Submit (async) | BullMQ → worker → Judge0 CE |
| Storage | PostgreSQL (code_submissions, leaderboards) |
Local Judge0 CE (Docker, port 2358):
pnpm judge:up # starts infra/judge0 (server + workers + db + redis)API env (apps/api/.env) — URL comes from env only:
JUDGE_PROVIDER=judge0
JUDGE0_API_URL=http://localhost:2358
JUDGE0_API_KEY= # optional for local; set in production if Judge0 auth is enabled
REDIS_URL=redis://localhost:6379Production: change JUDGE0_API_URL to your hosted Judge0 endpoint (same code, no changes).
Without Redis, submits are judged synchronously in the API process. Set JUDGE_PROVIDER=mock to use the dev mock judge (no Docker Judge0).
See docs/LOCAL_SETUP.md for full setup.
- Landing Page
- Authentication
- Membership System
- User Dashboard
- Admin Dashboard
- DSA Contests
- CP Contests
- System Design Challenges
- Tech Quizzes
- Leaderboards
- Jobs Board
- Referral Board
- Resume Reviews
- Mock Interviews
- Career Guidance
- Gamification
- Achievements
- XP System
- Badges
- AI Features
- Automated Contest Generation
- Personalized Learning Paths
- Analytics Dashboard
- Clean Architecture
- SOLID Principles
- Feature-Based Modules
- Type Safety
- Scalable Design
- Performance First
- Security by Default
Contributions, feature suggestions, and bug reports are always welcome.
This project is currently private and under active development.
© Codentra. All Rights Reserved.