It is a platofrm like leetcode.
- The
frontend
folder is the client-side.- The
primary-backend
is the main API.- The
worker
is for processing submission code.
cd frontend
Create a .env
file
NEXT_PUBLIC_BACKEND_URL=
NEXT_PUBLIC_BACKEND_URL_WS =
For Google Authentication (Optional), create a .env.local:
GOOGLE_CLIENT_ID =
GOOGLE_CLIENT_SECRET =
NEXTAUTH_SECRET =
Install dependencies
npm install
Run
npm run dev
cd backend/primary-backend
Create a .env
file
PORT = 4000
DATABASE_URL =
REDIS_HOST =
REDIS_QUEUE =
JWT_SECRET =
OWNER_EMAIL = YOUR_EMAIL_ID
MAIL_HOST =
MAIL_USER =
MAIL_PASS =
# cloudinary configs
FOLDER_NAME =
CLOUD_NAME =
API_KEY =
API_SECRET =
Install dependencies
npm install
Run
npm run dev
cd backend/worker
Create a .env
file
REDIS_HOST =
REDIS_QUEUE =
Install dependencies
npm install
Run
npm run dev
- Node.js
- PostgreSQL
- Cloudinary account (for file storage)
- Gmail account (for sending mails)
- Frontend: Next.js, Tailwind CSS
- Backend: Node.js, Express, PostgreSQL, Redis
- Worker: Node.js + Redis queue
- File Storage: Cloudinary