CodeRift is a full-stack online coding platform for solving programming problems in the browser.
CodeRift-original-video.mp4
- User signup and login
- Problem listing and problem detail pages
- In-browser code editor for multiple languages
- Code submission and background judging
- Visible testcases for users
- Hidden testcases for evaluation
- Submission history for each user
- Admin flow for creating problems and adding testcases
- Frontend: React, TypeScript, Vite, Tailwind CSS, Monaco Editor
- Backend: Bun, Express, TypeScript
- Database: PostgreSQL with Prisma
- Queue / jobs: BullMQ
- Storage: Supabase for testcase files
frontend/- client applicationBackend/- API server and judge-related logic
cd frontend
npm install
npm run devcd Backend
bun install
bun run devThe backend uses environment variables for database, JWT, Redis, and Supabase configuration.
Common values used by the codebase:
DATABASE_URLJWT_SECRET_KEY- Supabase URL and key values
- Redis connection details
PORT
- A user creates an account and logs in.
- The user opens a problem and reads the statement and visible testcases.
- The user writes code in the editor and submits it.
- The backend stores the submission and sends it to the judge queue.
- The judge runs the code against hidden testcases and stores the result.
- The user can review submission history.
Admins can:
- Add new problems
- Add visible testcases
- Add hidden testcases
- The backend and frontend are separate apps.
- The backend currently runs on Bun.
- The platform is built as a custom online judge, not as a generic CMS or blog app.