A modern platform that prepares developers for real-world job challenges through practical problem-solving exercises.
- Class Design Problems: Design systems and architectures that mirror real-world applications
- Debugging Challenges: Find and fix bugs in production code
- Prompt Engineering: Master the art of communicating with AI
- AI-Powered Evaluation: Get instant feedback on your solutions
- Modern UI: Clean, responsive design inspired by LeetCode
- React 19 with TypeScript
- Tailwind CSS for styling
- React Router for navigation
- Firebase Auth for authentication
- Lucide React for icons
- Node.js with Express
- AI Integration: Gemini or ChatGPT for evaluation
- S3 Integration for question storage
JobCodex/
βββ frontend/
β βββ react-app/ # React frontend application
β βββ src/
β β βββ components/ # React components
β β βββ contexts/ # React contexts (Auth)
β β βββ services/ # API services (S3, AI)
β βββ package.json
βββ backend/ # Node.js backend API
β βββ server.js # Express server
β βββ package.json
βββ README.md
- Node.js 18+
- npm or yarn
- Firebase project
- S3 bucket (optional)
- AI API key (Gemini or OpenAI)
- Navigate to the frontend directory:
cd frontend/react-app- Install dependencies:
npm install- Create environment file:
cp .env.example .env- Configure environment variables in
.env:
# Firebase Configuration
VITE_FIREBASE_API_KEY=your_api_key_here
VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# S3 Configuration (optional)
VITE_S3_BUCKET_NAME=your_s3_bucket_name
VITE_S3_REGION=your_s3_region
# API Configuration
VITE_API_BASE_URL=npmhttp://localhost:3001/api- Start the development server:
npm run dev- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create environment file:
cp .env.example .env- Configure environment variables in
.env:
# Server Configuration
PORT=3001
# AI Service Configuration
AI_SERVICE=mock
# Options: 'mock', 'gemini', 'chatgpt'
# Gemini API Configuration
GEMINI_API_KEY=your_gemini_api_key_here
# OpenAI API Configuration
OPENAI_API_KEY=your_openai_api_key_here- Start the backend server:
npm run dev- Create a Firebase project
- Enable Authentication with Email/Password
- Get your Firebase config from Project Settings
- Add the config to your
.envfile
- Create an S3 bucket
- Upload your questions as JSON files
- Configure CORS for your domain
- Add bucket details to your
.envfile
Choose one of the following:
- Get API key from Google AI Studio
- Set
AI_SERVICE=geminiin backend.env - Add
GEMINI_API_KEYto backend.env
- Get API key from OpenAI
- Set
AI_SERVICE=chatgptin backend.env - Add
OPENAI_API_KEYto backend.env
- No setup required
- Uses mock evaluation for testing
Questions are stored as JSON files in S3 with the following structure:
{
"id": "1",
"title": "Design a Basketball Conference System",
"category": "class-design",
"difficulty": "medium",
"description": "Create a system to manage basketball teams, players, and games in a conference.",
"tags": ["OOP", "System Design", "Data Structures"]
}- Sign Up/Login: Create an account or sign in
- Browse Questions: View questions by category or search
- Solve Problems: Work on class design, debugging, or prompt engineering challenges
- Get Feedback: Submit solutions for AI evaluation
- Track Progress: Monitor your improvement over time
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License.
For support, email support@jobcodex.com or create an issue on GitHub.