{"id":33346887,"url":"https://github.com/bhavish2005/fixmate-cc-ide","last_synced_at":"2026-04-14T05:31:56.706Z","repository":{"id":323144659,"uuid":"1092263892","full_name":"Bhavish2005/fixmate-cc-ide","owner":"Bhavish2005","description":"FixMate: An AI-powered collaborative IDE  for pair programming \u0026 tech interviews. Features real-time editing, video chat, and an integrated Gemini AI assistant","archived":false,"fork":false,"pushed_at":"2025-11-19T15:45:58.000Z","size":2362,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-19T17:07:25.373Z","etag":null,"topics":["ai","code-editor-online","express","gemini-api","mongodb","nodejs","pair-programming","react","socket-io","tailwindcss","webrtc"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bhavish2005.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-08T10:02:58.000Z","updated_at":"2025-11-19T15:46:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Bhavish2005/fixmate-cc-ide","commit_stats":null,"previous_names":["bhavish2005/fixmate-cc-ide"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Bhavish2005/fixmate-cc-ide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhavish2005%2Ffixmate-cc-ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhavish2005%2Ffixmate-cc-ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhavish2005%2Ffixmate-cc-ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhavish2005%2Ffixmate-cc-ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bhavish2005","download_url":"https://codeload.github.com/Bhavish2005/fixmate-cc-ide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhavish2005%2Ffixmate-cc-ide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285755366,"owners_count":27226257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-22T02:00:05.934Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","code-editor-online","express","gemini-api","mongodb","nodejs","pair-programming","react","socket-io","tailwindcss","webrtc"],"created_at":"2025-11-22T08:00:39.171Z","updated_at":"2025-11-22T08:02:00.769Z","avatar_url":"https://github.com/Bhavish2005.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FixMate - Collaborative Code Editor\n**FixMate** is a real-time, feature-rich collaborative code editor designed for pair programming, technical interviews, and remote learning. It provides a seamless environment where developers can code together, communicate via video chat, and even get help from an integrated AI assistant.\n\nThis project is built with a modern tech stack, featuring a **React/Vite** frontend and a **Node.js/Express** backend, all tied together with **WebSockets**, **Stream**, and the **Google Gemini API**.\n\n---\n\n## Key Features\n\n* **Real-time Collaborative Editing:** Powered by **Socket.io**, multiple users can edit the same file simultaneously, with changes reflected instantly.\n* **Integrated Video \u0026 Chat:** High-quality video and text chat panels using **Stream**, allowing for face-to-face communication right inside the editor.\n* **AI-Powered Debug-Buddy:** Stuck on a bug? An integrated **Google Gemini** assistant can explain errors, suggest fixes, or refactor code.\n* **Instant Code Execution:** Run your code instantly using the **Piston API** for various languages, with output displayed directly in the editor.\n* **Secure Authentication:** Full user auth system with **JWT**, `httpOnly` cookies, Google OAuth 2.0 (via Firebase), and secure password reset functionality (via Nodemailer).\n* **Personal Dashboard:** A protected route for logged-in users to view their coding activity, success/error rates, and most common mistakes, visualized with charts.\n* **Vim Mode:** Optional Vim keybindings within the Monaco editor for power users.\n* **Modern UI:** A sleek, responsive, and dark-mode-first UI built with **TailwindCSS** and **Framer Motion**.\n\n---\n\n## Screenshots\n### Login Page\n![Login Page](assets/login.png)\n### Registration Page\n![Registration Page](assets/signup.png)\n### Video Panel\n![Video Panel](assets/ide1.png)\n### Dashboard\n![Dashboard](assets/dashboard.png)\n### AI-Powered Error Resolver IDE\n![Coding IDE](assets/Codeing_IDE.png)\n\n---\n\n## Tech Stack\n\n| Area | Technology |\n| :--- | :--- |\n| **Frontend** | React 19, Vite, TailwindCSS, Framer Motion, Socket.io Client, Monaco Editor, Stream.io React SDK, Firebase (Auth) |\n| **Backend** | Node.js, Express.js, MongoDB, Mongoose, Socket.io, Firebase Admin, JSON Web Tokens (JWT), Google Generative AI (Gemini), Stream.io Node SDK, Nodemailer |\n| **Database** | MongoDB Atlas |\n| **Services** | Stream (Video/Chat), Piston API (Code Execution), Google Gemini (AI) |\n\n---\n\n## Getting Started\n\nTo get a local copy up and running, follow these simple steps.\n\n### Prerequisites\n\n* Node.js (v18.0.0 or higher)\n* npm\n* A MongoDB Atlas account (or local MongoDB instance)\n* A Firebase project for Google Authentication\n* A Stream.io account for video/chat\n* A Google Gemini API key\n\n### 1. Backend Setup\n\nFirst, set up the server which handles WebSockets, API requests, and AI integration.\n\n1.  **Navigate to the backend directory:**\n    ```sh\n    cd new/codeeditor-backend\n    ```\n\n2.  **Install NPM packages:**\n    ```sh\n    npm install\n    ```\n\n3.  **Create your environment file:**\n    Create a `.env` file in the `new/codeeditor-backend` directory and add the following variables. Get these keys from their respective service dashboards.\n\n    ```ini\n    # See .env.example for a full list\n    NODE_ENV=development\n    PORT=4000\n    \n    # Your MongoDB Connection String\n    MONGO_URI=\"mongodb+srv://\u003cuser\u003e:\u003cpassword\u003e@cluster0.qibql0d.mongodb.net\"\n    \n    # JWT Secrets (replace with long, random strings)\n    JWT_SECRET=\"YOUR_JWT_SECRET_KEY\"\n    JWT_REFRESH_SECRET=\"YOUR_JWT_REFRESH_KEY\"\n    \n    # Stream.io API Keys\n    STREAM_API_KEY=your_stream_api_key\n    STREAM_API_SECRET=your_stream_api_secret\n    \n    # Google Gemini API Key\n    GEMINI_API_KEY=your_gemini_api_key\n    \n    # Nodemailer (for Password Reset)\n    # Use an \"App Password\" if using Gmail\n    EMAIL_USER=your_email@gmail.com\n    EMAIL_PASS=your_gmail_app_password \n    \n    # Frontend URL (for CORS and password reset links)\n    FRONTEND_URL=http://localhost:5173\n    ```\n\n4.  **Add Firebase Credentials:**\n    * Go to your Firebase project settings \u003e Service accounts.\n    * Generate a new private key and download the JSON file.\n    * Rename this file to `firebase-credentials.json` and place it in the `new/codeeditor-backend` directory.\n\n5.  **Run the backend server:**\n    ```sh\n    npm run dev\n    ```\n    Your backend server should now be running on `http://localhost:4000`.\n\n### 2. Frontend Setup\n\nNext, set up the React client.\n\n1.  **Navigate to the frontend directory:**\n    ```sh\n    cd new/CollabrativeCodeEditor\n    ```\n\n2.  **Install NPM packages:**\n    ```sh\n    npm install\n    ```\n\n3.  **Create your environment file:**\n    Create a `.env` file in the `new/CollabrativeCodeEditor` directory:\n    ```ini\n    BACKEND_URL=\"http://localhost:4000\"\n    ```\n\n4.  **Configure Firebase:**\n    * Open `src/firebase.js`.\n    * Go to your Firebase project settings \u003e General.\n    * Find your \"Web App\" config.\n    * Copy the `firebaseConfig` object and paste it into `src/firebase.js`, replacing the existing placeholder keys.\n\n5.  **Run the frontend client:**\n    ```sh\n    npm run dev\n    ```\n    Your React app should now be running on `http://localhost:5173`.\n\n### 3. You're All Set!\n\nOpen `http://localhost:5173` in your browser. You can now register an account, create a room, and invite others (by sending them the room link) to your local instance!\n\n---\n\n## License\n\nDistributed under the GNU GPL License 3.0. See the `package.json` files for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhavish2005%2Ffixmate-cc-ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhavish2005%2Ffixmate-cc-ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhavish2005%2Ffixmate-cc-ide/lists"}