A comprehensive interview preparation platform designed to help you master technical interviews with practice questions for Data Structures & Algorithms (DSA), System Design, and Behavioral interviews.
- DSA Questions: 149+ carefully curated coding problems with multiple language solutions
- Progress Tracking: Track your progress across different topics and difficulty levels
- Multiple Solutions: View solutions in Java, Python, C++, and other popular languages
- Bookmarking: Save questions for later review
- Dark/Light Mode: Toggle between themes for comfortable studying
- Responsive Design: Works seamlessly on desktop and mobile devices
- Frontend: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS with shadcn/ui components
- Routing: React Router DOM
- State Management: React Context API
- Authentication: Firebase Auth
- Database: Firebase Firestore (for progress tracking)
- Deployment: GitHub Pages
src/
├── components/ # Reusable UI components
├── pages/ # Main application pages
├── content/ # Markdown files for questions
├── lib/ # Utility functions and helpers
├── hooks/ # Custom React hooks
├── contexts/ # React context providers
└── types/ # TypeScript type definitions
- Node.js (v18 or higher)
- npm or pnpm package manager
- Clone the repository:
git clone <your-repo-url>
cd cracking-interview
- Install dependencies:
npm install
# or
pnpm install
- Start the development server:
npm run dev
# or
pnpm dev
- Open your browser and navigate to
http://localhost:5173
- Browse Questions: Navigate through different categories (DSA, System Design, Behavioral)
- Practice: Click on any question to view the problem statement and solutions
- Track Progress: Mark questions as completed to track your learning journey
- Bookmark: Save important questions for quick access later
- Switch Themes: Use the theme toggle for your preferred viewing experience
The application uses Firebase for authentication and progress tracking. To set up:
- Create a Firebase project and add your configuration to
src/integrations/firebase/client.ts
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is open source and available under the MIT License.
Rajat Srivastava
- GitHub: @rajatsrivastava
- Twitter: @rajatsrivastava
- Questions and problems curated from various competitive programming platforms
- UI components from shadcn/ui
- Icons from Lucide React