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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTA3ODIsIm5iZiI6MTczOTAxMDQ4MiwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjMwLWY4NDRmYWQyLWVmMjQtNGFiZi04MDcwLWFmMTllMGQ0NjViNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxMDI4MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05MTZjYjU5ZTI5ZDM3MjNiNzQ5OWRkNjljNTgwNmRkZWM4MzRmYjI1ZTQzNWQyNWEzMTkzZTg0NmNiOTQwOTIxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.EWsudSQKX5RrjeTcVoN4us19EheWgHuYjMiqUNLm8pI)
![Create Workspace](https://private-user-images.githubusercontent.com/131383656/399103236-42510f24-ce4b-4960-9d8b-ed596ba5c07f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTA3ODIsIm5iZiI6MTczOTAxMDQ4MiwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjM2LTQyNTEwZjI0LWNlNGItNDk2MC05ZDhiLWVkNTk2YmE1YzA3Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxMDI4MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MDQ5OTEzYjE5ZmU4NTlmZGRlNDUwZjI2ZWU4YWYzZjRlNWQzYjU4NzkzZWQ1ZWZiODZiZDM3MzUxMTk1NjZmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.PJg4Tz1WBCJh1eRmLFl2gqOn3bp9LkGbeHo3ZJDqzjE)
![Trash Management](https://private-user-images.githubusercontent.com/131383656/399103220-6b8dfc72-e3f3-4bf9-b919-38e54364c076.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMTA3ODIsIm5iZiI6MTczOTAxMDQ4MiwicGF0aCI6Ii8xMzEzODM2NTYvMzk5MTAzMjIwLTZiOGRmYzcyLWUzZjMtNGJmOS1iOTE5LTM4ZTU0MzY0YzA3Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxMDI4MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02OGI4ZGQ4NGJkN2ZjZDQxMTkzZTllZmRlZTEwMjc2MTllMzIzMjFhMjRhZWVlNzU5MmEzOTIwZWQ3NGM0NTAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Vdb71cQyu1Xg5UhgAWEXsXpN9yym38OyzVnBGxDP6dU)
- 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