A Powerful Real-time Collaboration Platform
An editor with multi cursor functionality using Nextjs 13, Websockets, Supabase Realtime, Real-time presence, Custom Rich text editor, Update profile settings.
- β¨ Features that Empower Teams
- π οΈ Technology Stack
- π Quick Start Guide
- π― Key Features in Detail
- π« Core Features
- π€ Contributing
- π License
- π Show your support
- Next.js 14 π: Server-side rendered React applications
- Tailwind CSS π : Utility-first styling framework
- Socket.io Client π: Real-time communication
- Quill βοΈ: Rich text editor with cursor support
- Shadcn UI π―: Beautifully designed components library
- React Hook Form π: Form validation and handling
- Next Auth π: Authentication with Google and GitHub providers
- Prisma ORM ποΈ: Type-safe database toolkit
- Supabase β‘: Backend-as-a-service platform
- Socket.io π: WebSocket server implementation
- TypeScript π: Static type checking
- Zod β : Schema validation
- TailwindCSS Animate π«: Animation utilities
- Node.js 16 or higher β‘
- npm or yarn π¦
- Git π
-
Clone the repository
git clone https://github.com/HarshDodiya1/cypress.git cd cypress
-
Install dependencies
npm install # or yarn install
-
Set up environment variables
cp .env.example .env
Required environment variables:
# Database URL # The URL to connect to your database. DATABASE_URL= # Supabase URL # The URL of your Supabase project. NEXT_PUBLIC_SUPABASE_URL= # Supabase Anon Key # The anonymous key for your Supabase project. NEXT_PUBLIC_SUPABASE_ANON_KEY= # The service role key for your Supabase project. SERVICE_ROLE_KEY= # JWT Secret # The secret key used to sign JSON Web Tokens (JWT). This should be a long, random string. # generate directly via terminal by running: openssl rand -base64 32 JWT_SECRET= # Site URL # The URL of your site. NEXT_PUBLIC_SITE_URL= # The secret key used by NextAuth.js for signing and encrypting session tokens. NEXTAUTH_SECRET= # Google Credentials # The client ID and client secret for Google OAuth. GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Github Credentials # The client ID and client secret for GitHub OAuth. GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET=
-
Run database migrations
npx prisma migrate dev --name init
-
Start the development server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser
See your teammates' cursors in real-time as they move across the workspace.
![Add Collaborators](https://private-user-images.githubusercontent.com/131383656/399103230-f844fad2-ef24-4abf-8070-af19e0d465b7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNzI0OTEsIm5iZiI6MTczOTA3MjE5MSwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjMwLWY4NDRmYWQyLWVmMjQtNGFiZi04MDcwLWFmMTllMGQ0NjViNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMzM2MzFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ZDE2ZWRhYTY2MGEyZGRkMDEzMWUyZDAwZWJhZDM4OTc0YjIxMDFhNTk1OGU0NjJkZTg5NjU4ZWRkMmRjODNmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IP_QEo-4dqAxL2y4V4rP9kvi7hc2zpCUetP5RVMnR7o)
![Create Workspace](https://private-user-images.githubusercontent.com/131383656/399103236-42510f24-ce4b-4960-9d8b-ed596ba5c07f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNzI0OTEsIm5iZiI6MTczOTA3MjE5MSwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjM2LTQyNTEwZjI0LWNlNGItNDk2MC05ZDhiLWVkNTk2YmE1YzA3Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMzM2MzFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNDg5ODdmYTdiYjc5M2MwOGMwOTY0MmQwMTUxNmI4NjQwNWE2YWFlYzQzYjUwODI5ZDViZTc4MTdjZjZhMTA5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.1CwVkgD7ZfXsHVc8IkNfuMDC62oywUM66VqS5Dm_yCE)
![Trash Management](https://private-user-images.githubusercontent.com/131383656/399103220-6b8dfc72-e3f3-4bf9-b919-38e54364c076.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNzI0OTEsIm5iZiI6MTczOTA3MjE5MSwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjIwLTZiOGRmYzcyLWUzZjMtNGJmOS1iOTE5LTM4ZTU0MzY0YzA3Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOVQwMzM2MzFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ZjU5NTU5ZWJmZTk4MWVmOTUzMjNlNTFmNjFhNjJkZTAwN2RlYzY4NDAxM2E5ZjRiODk5ZjIwZGRmYzYzMWRiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.AsLIstJ5PY-AAWT2ka2wNrjl4TS4HICzxiodGryfAZo)
- Real-time Cursor Tracking π±οΈ: See collaborators' cursors in real-time
- Live Text Selection β¨: Share and observe text selections instantly
- Workspace Management π: Create and organize shared workspaces
- File Organization π: Intuitive folder structure and management
- Trash & Restore π: Comprehensive file recovery system
- Authentication π: Secure user authentication with NextAuth
- Responsive Design π±: Works seamlessly across devices
We welcome contributions to Cypress! Here's how you can help:
- Fork the repository π΄
- 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 licensed under the MIT License - see the LICENSE file for details.
Give a βοΈ if this project helped you!
Built with β€οΈ by Harsh Dodiya