Platform overview β dashboard, coding problems, code editor, live sessions and progress tracking.
Code.prepare is a full-stack coding practice and collaborative interview platform designed to help developers prepare for technical interviews and improve their problem-solving skills.
The platform combines curated coding problems, an in-browser code editor, code execution, collaborative interview sessions, video communication, chat and progress tracking in one focused workspace.
The interface uses a dark developer-focused design with green accents, responsive layouts and a minimal UI to keep the experience centered around coding.
- Coding problems β Practice curated problems organized by difficulty and topic.
- In-browser editor β Write solutions directly inside the platform using Monaco Editor.
- Multi-language support β Write solutions using supported programming languages.
- Run code β Execute solutions and view output without leaving the problem page.
- Problem details β View descriptions, examples, constraints and expected outputs.
- Live sessions β Create and participate in collaborative coding sessions.
- Video communication β Real-time video powered by Stream.
- Real-time chat β Communicate with other participants during sessions.
- Dashboard β View active sessions, total sessions and previous activity.
- Authentication β User authentication powered by Clerk.
- Progress tracking β Keep track of your coding practice and sessions.
- Responsive interface β Designed for desktop, tablet and smaller layouts.
- Background jobs β Asynchronous workflows powered by Inngest.
- Database persistence β MongoDB and Mongoose for application data.
| Section | Purpose |
|---|---|
| Dashboard | Overview of sessions, activity and coding progress |
| Problems | Browse and practice curated coding problems |
| Problem Details | Read descriptions, examples and constraints |
| Code Editor | Write and execute coding solutions |
| Live Sessions | Collaborate during technical interview sessions |
| Video & Chat | Communicate with other participants |
| Past Sessions | Review previous coding sessions |
| Progress | Monitor practice and session activity |
- React β frontend application and component architecture
- Vite β frontend development and production build tooling
- Tailwind CSS β responsive styling and UI layout
- React Router β client-side navigation
- Monaco Editor β browser-based code editor
- TanStack Query β server-state and API data management
- Axios β HTTP requests
- Node.js β backend runtime
- Express β REST API and server-side application
- MongoDB β application database
- Mongoose β MongoDB object modeling
- Clerk β authentication and user management
- Stream β real-time video and chat
- Inngest β background and asynchronous workflows
- Lucide React β interface icons
- Render β deployment
code.prepare/
βββ backend/
β βββ src/
β β βββ controllers/
β β βββ models/
β β βββ routes/
β β βββ middleware/
β β βββ server.js
β βββ package.json
β βββ ...
β
βββ frontend/
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ hooks/
β β βββ lib/
β β βββ ...
β βββ public/
β βββ package.json
β βββ ...
β
βββ assets/
β βββ project-preview.png
β
βββ package.json
βββ preview.png
βββ README.md
Make sure you have:
- Node.js 20+
- npm
- MongoDB
- Clerk account
- Stream account
You will also need the required API credentials for the services used by the application.
git clone https://github.com/kumarmanoj231/code.prepare.git
cd code.prepareInstall backend dependencies:
cd backend
npm installInstall frontend dependencies:
cd ../frontend
npm installCreate the required environment files for the frontend and backend.
Example backend configuration:
PORT=8080
MONGODB_URI=your_mongodb_connection_string
CLERK_SECRET_KEY=your_clerk_secret_key
STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secretExample frontend configuration:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
VITE_STREAM_API_KEY=your_stream_api_key
VITE_API_URL=http://localhost:8080Never commit
.envfiles or API credentials to Git.
Start the backend:
cd backend
npm run devThen start the frontend in another terminal:
cd frontend
npm run devOpen the local development URL shown by Vite, usually:
http://localhost:5173
Problems
β
Choose a problem
β
Read description & examples
β
Write solution
β
Run Code
β
Review output
Dashboard
β
Create Session
β
Invite / Join participants
β
Code + Video + Chat
β
Complete session
Dashboard
β
Active Sessions
β
Past Sessions
β
Review your coding activity
The problem-solving interface combines the problem statement with an in-browser editor.
It provides:
- Syntax highlighting
- Multiple language selection
- Test cases
- Code execution
- Output panel
- Problem examples
- Constraints
- Expected results
The editor is powered by Monaco Editor, providing a familiar development experience directly in the browser.
The dashboard provides a central overview of the user's coding activity.
It includes:
- Active sessions
- Total sessions
- Live session status
- Past sessions
- Quick session creation
- Coding activity overview
The dashboard is designed to provide a simple starting point for continuing practice.
Code.prepare also supports collaborative technical interview sessions.
Participants can use:
Video
+
Chat
+
Shared coding environment
+
Problem solving
This makes the platform suitable for mock interviews, pair programming and collaborative coding practice.
Code.prepare is structured as a full-stack application and can be deployed using services such as Render.
- Push the repository to GitHub.
- Create the backend service.
- Configure the required environment variables.
- Deploy the backend.
- Create/configure the frontend service.
- Set the frontend API URL to the deployed backend.
- Deploy the frontend.
The production deployment is available at:
The live application depends on external services such as MongoDB, Clerk and Stream.
- Live Demo
- GitHub Repository
- React
- Vite
- Tailwind CSS
- Node.js
- Express
- MongoDB
- Mongoose
- Clerk
- Stream
- Inngest
- Monaco Editor
Contributions are welcome for:
- UI and UX improvements
- Accessibility
- Performance
- New coding problems
- Editor improvements
- Collaborative features
- Bug fixes
- Documentation
Create a feature branch:
git checkout -b feature/your-changeMake your changes, then:
git add .
git commit -m "feat: describe your change"
git push origin feature/your-changeThen open a pull request describing what changed and why.
For detailed contribution rules, see CONTRIBUTING.md when available.
If you find a bug or need help:
- Check the existing GitHub Issues.
- Open a new issue with clear reproduction steps.
- Include relevant browser, environment and error details when reporting a problem.