Code Sync is a collaborative, real-time code editor where users can seamlessly code together. It provides a platform for multiple users to enter a room, share a unique room ID, and collaborate on code simultaneously.
- ๐ป Real-time collaboration on code editing across multiple files
- ๐ Unique room generation with room ID for collaboration
- ๐ Syntax highlighting for various file types with auto-language detection
- ๐ก Auto suggestion based on programming language
- โฑ๏ธ Instant updates and synchronization of code changes across all files
- ๐ฃ Notifications for user join and leave events
- ๐จ Multiple themes for personalized coding experience
- ๐ Comprehensive language support for versatile programming
- ๐ Option to change font size and font family
- ๐ฅ User presence list of users currently in the collaboration session, including online/offline status indicators
- ๐ Open, edit, save, and delete file functionalities
- ๐พ Option to download files edited within the collaboration session
- ๐ฌ Group chatting allows users to communicate in real-time while working on code.
You can view the live preview of the project here.
backend/
โโโ utils/
โ โโโ actions.js
โโโ .env
โโโ .gitignore
โโโ package-lock.json
โโโ package.json
โโโ server.js
frontend/
โโโ public/
โ โโโ favicon/
โ โ โโโ ...
โ โโโ style.css # Tailwind output
โโโ src/
โ โโโ assets/
โ โ โโโ ...
โ โโโ components/
โ โ โโโ chats/
โ โ โ โโโ ChatInput.jsx
โ โ โ โโโ ChatList.jsx
โ โ โโโ common/
โ โ โ โโโ Clients.jsx
โ โ โ โโโ Footer.jsx
โ โ โ โโโ Select.jsx
โ โ โโโ editor/
โ โ โ โโโ Editor.jsx
โ โ โ โโโ EditorComponent.jsx
โ โ โโโ files/
โ โ โ โโโ FileEditor.jsx
โ โ โ โโโ FileSystem.jsx
โ โ โโโ forms/
โ โ โ โโโ FormComponent.jsx
โ โ โโโ loading/
โ โ โ โโโ Loading.jsx
โ โ โโโ sidebar/
โ โ โ โโโ Sidebar.jsx
โ โ โโโ tabs/
โ โ โ โโโ ChatsTab.jsx
โ โ โ โโโ ClientsTab.jsx
โ โ โ โโโ FileTab.jsx
โ โ โ โโโ SettingsTab.jsx
โ โ โ โโโ TabButton.jsx
โ โ โโโ toast/
โ โ โ โโโ Toast.jsx
โ โ โโโ GitHubCorner.jsx
โ โ โโโ SplitterComponent.jsx
โ โโโ context/
โ โ โโโ AppContext.jsx
โ โ โโโ AppProvider.jsx
โ โ โโโ ChatContext.jsx
โ โ โโโ FileContext.jsx
โ โ โโโ TabContext.jsx
โ โโโ hooks/
โ โ โโโ useChatRoom.jsx
โ โ โโโ useFileSystem.jsx
โ โ โโโ useLocalStorage.jsx
โ โ โโโ usePageEvents.jsx
โ โ โโโ useClientActivity.jsx
โ โ โโโ useWindowDimensions.jsx
โ โโโ layouts/
โ โ โโโ EditorLayout.jsx
โ โโโ pages/
โ โ โโโ EditorPage.jsx
โ โ โโโ HomePage.jsx
โ โโโ resources/
โ โ โโโ Font.js
โ โ โโโ Languages.js
โ โ โโโ Themes.js
โ โโโ socket/
โ โ โโโ useSocket.jsx
โ โ โโโ socket.js
โ โโโ utils/
โ โ โโโ actions.js
โ โ โโโ editorPlaceholder.js
โ โ โโโ formateDate.js
โ โ โโโ initialFile.js
โ โ โโโ socketStatus.js
โ โ โโโ tabs.js
โ โโโ App.jsx
โ โโโ index.css
โ โโโ main.jsx
โโโ .env
โโโ .eslintrc.cjs
โโโ .gitignore
โโโ index.html
โโโ package-lock.json
โโโ package.json
โโโ postcss.config.js
โโโ tailwind.config.js
โโโ vercel.json
โโโ vite.config.js
screenshots/
CONTRIBUTING.md
LICENSE
README.md
-
Fork this repository: Click the Fork button located in the top-right corner of this page to fork the repository.
-
Clone the repository:
git clone https://github.com/<your-username>/Code-Sync.git
-
Set .env file: Inside the client and server directory, create or edit the .env file and add the following line:
Frontend:VITE_BACKEND_URL=<your_server_url>
Backend:
PORT=3000
-
Install dependencies: Navigate to the frontend and backend directories separately and run:
npm install
-
Start the frontend and backend servers:
Frontend:cd client npm run dev
Backend:
cd server npm run dev
-
Access the application: Open a browser and enter the following URL:
http://localhost:5173/
- Admin Permission: Implement an admin permission system to manage user access levels and control over certain platform features.
- Search and Replace: Implement a search and replace functionality for efficient code navigation.
We welcome contributions to make Code Sync even better! Whether you're reporting a bug, suggesting a new feature, or fixing a typo, your input is valuable to us. Follow the contribution guidelines to get started.
If you find this helpful or valuable, please consider ๐ starring the repository. It helps us gain visibility and encourages further development. We appreciate your support!
This project is licensed under the MIT License.