https://github.com/ahmad-masud/compcode
⌨ Prepare for your company's coding interview through solving frequently asked LeetCode problems.
https://github.com/ahmad-masud/compcode
faang firebase leetcode nodejs react
Last synced: 5 months ago
JSON representation
⌨ Prepare for your company's coding interview through solving frequently asked LeetCode problems.
- Host: GitHub
- URL: https://github.com/ahmad-masud/compcode
- Owner: ahmad-masud
- License: mit
- Created: 2024-07-10T06:51:55.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-10-24T05:36:43.000Z (8 months ago)
- Last Synced: 2024-10-24T21:49:25.871Z (8 months ago)
- Topics: faang, firebase, leetcode, nodejs, react
- Language: JavaScript
- Homepage: https://compcode.tech
- Size: 5.59 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CompCode
CompCode is a web application designed to help you prepare for coding interviews by solving commonly asked LeetCode problems from various popular companies. The app provides a user-friendly interface to browse, solve, and track your progress on these problems.
## Features
- **Company-Specific Problems**: View and solve problems that are frequently asked by specific companies.
- **Problem Submission**: Input a LeetCode problem number and a company name, upload this information, and track your submissions.
- **Progress Tracking**: Track which problems you have completed.
- **Search and Sort**: Search for problems by ID or title and sort problems by different criteria (ID, title, acceptance rate, difficulty, frequency).
- **User Authentication**: Log in using Google or GitHub to save your progress.
- **Premium Subscriptions**: Access additional features with monthly or annual premium subscriptions powered by Stripe.
- **Dark/Light Mode**: Automatic theme adjustment based on system preferences with manual override options.
- **Responsive Design**: Fully responsive design to accommodate different screen sizes and devices.## Getting Started
### Prerequisites
- Node.js (v14.x or later)
- Firebase project set up for authentication and Firestore
- GitHub OAuth app set up for authentication
- Stripe account for subscription management### Installation
1. **Clone the repository:**
```sh
git clone https://github.com/ahmad-masud/CompCode.git
cd CompCode
```2. **Install dependencies:**
```sh
npm install
```3. **Set up Firebase configuration:**
- Create a `firebase-config.js` file in the `src/config` directory.
- Add your Firebase configuration:```js
import { initializeApp } from "firebase/app";
import {
getAuth,
GoogleAuthProvider,
GithubAuthProvider,
} from "firebase/auth";
import { getFirestore } from "firebase/firestore";const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_AUTH_DOMAIN",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_STORAGE_BUCKET",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID",
};const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
const googleProvider = new GoogleAuthProvider();
const githubProvider = new GithubAuthProvider();
const firestore = getFirestore(app);export { auth, googleProvider, githubProvider, firestore };
```4. **Set up Stripe configuration:**
- Integrate Stripe for managing subscriptions. Make sure to include your Stripe public and secret keys in your environment configuration.
5. **Run the application:**
```sh
npm start
```## License
Distributed under the CC BY-NC-ND 4.0 License. See [LICENSE](LICENSE) for more information.