Skip to content

ParthPatel00/JobCodex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobCodex

A modern platform that prepares developers for real-world job challenges through practical problem-solving exercises.

πŸš€ Features

  • 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

πŸ› οΈ Tech Stack

Frontend

  • React 19 with TypeScript
  • Tailwind CSS for styling
  • React Router for navigation
  • Firebase Auth for authentication
  • Lucide React for icons

Backend

  • Node.js with Express
  • AI Integration: Gemini or ChatGPT for evaluation
  • S3 Integration for question storage

πŸ“ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Firebase project
  • S3 bucket (optional)
  • AI API key (Gemini or OpenAI)

Frontend Setup

  1. Navigate to the frontend directory:
cd frontend/react-app
  1. Install dependencies:
npm install
  1. Create environment file:
cp .env.example .env
  1. 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
  1. Start the development server:
npm run dev

Backend Setup

  1. Navigate to the backend directory:
cd backend
  1. Install dependencies:
npm install
  1. Create environment file:
cp .env.example .env
  1. 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
  1. Start the backend server:
npm run dev

πŸ”§ Configuration

Firebase Setup

  1. Create a Firebase project
  2. Enable Authentication with Email/Password
  3. Get your Firebase config from Project Settings
  4. Add the config to your .env file

S3 Setup (Optional)

  1. Create an S3 bucket
  2. Upload your questions as JSON files
  3. Configure CORS for your domain
  4. Add bucket details to your .env file

AI Service Setup

Choose one of the following:

Gemini (Recommended)

  1. Get API key from Google AI Studio
  2. Set AI_SERVICE=gemini in backend .env
  3. Add GEMINI_API_KEY to backend .env

ChatGPT

  1. Get API key from OpenAI
  2. Set AI_SERVICE=chatgpt in backend .env
  3. Add OPENAI_API_KEY to backend .env

Mock (Development)

  • No setup required
  • Uses mock evaluation for testing

πŸ“ Question Format

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"]
}

🎯 Usage

  1. Sign Up/Login: Create an account or sign in
  2. Browse Questions: View questions by category or search
  3. Solve Problems: Work on class design, debugging, or prompt engineering challenges
  4. Get Feedback: Submit solutions for AI evaluation
  5. Track Progress: Monitor your improvement over time

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License.

πŸ†˜ Support

For support, email support@jobcodex.com or create an issue on GitHub.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors