Skip to content

An editor with multi cursor functionality using Nextjs 13, Websockets, Supabase Realtime, Real-time presence, Custom Rich text editor, Update profile settings.

Notifications You must be signed in to change notification settings

HarshDodiya1/cypress

Repository files navigation

🌲 Cypress

A Powerful Real-time Collaboration Platform

RTCursorImage

Next.js Prisma WebSocket Supabase shadcn-ui Tailwind

An editor with multi cursor functionality using Nextjs 13, Websockets, Supabase Realtime, Real-time presence, Custom Rich text editor, Update profile settings.

πŸ“‘ Table of Contents

  1. ✨ Features that Empower Teams
  2. πŸ› οΈ Technology Stack
  3. πŸš€ Quick Start Guide
  4. 🎯 Key Features in Detail
  5. πŸ’« Core Features
  6. 🀝 Contributing
  7. πŸ“„ License
  8. 🌟 Show your support

✨ Features that Empower Teams

Real-time Collaboration

Real-time Collaboration

Watch your team's cursors move and text selections update instantly, making remote collaboration feel natural and intuitive.

Workspace Management

Workspace Creation

Create and organize workspaces effortlessly, providing your team with a structured environment for their projects.

Shared Workspace Experience

Shared Workspace

Collaborate in real-time with team members in shared workspaces, enhancing productivity and communication.

Smart File Organization

Folder Creation

Keep your work organized with intuitive folder management and hierarchical structure.

Document Recovery

Trash and Restore

Never lose important work with our comprehensive trash and restore functionality.

πŸ› οΈ Technology Stack

🎨 Frontend

  • 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

βš™οΈ Backend & Infrastructure

  • 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

πŸ”§ Development & Utilities

  • TypeScript πŸ“˜: Static type checking
  • Zod βœ…: Schema validation
  • TailwindCSS Animate πŸ’«: Animation utilities

πŸš€ Quick Start Guide

πŸ“‹ Prerequisites

  • Node.js 16 or higher ⚑
  • npm or yarn πŸ“¦
  • Git πŸ”„

Installation Steps

  1. Clone the repository

    git clone https://github.com/HarshDodiya1/cypress.git
    cd cypress
  2. Install dependencies

    npm install
    # or
    yarn install
  3. 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=
  4. Run database migrations

    npx prisma migrate dev --name init
  5. Start the development server

    npm run dev
    # or
    yarn dev
  6. Open http://localhost:3000 in your browser

🎯 Key Features in Detail

Live Cursor Tracking

Cursor Tracking See your teammates' cursors in real-time as they move across the workspace.

Team Collaboration

Add Collaborators
Easily add team members to your workspace and manage permissions.

Workspace Creation

Create Workspace
Set up new workspaces in seconds with our intuitive interface.

File Recovery

Trash Management
Robust trash management system for recovering deleted items.

πŸ’« Core Features

  • 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

🀝 Contributing

We welcome contributions to Cypress! Here's how you can help:

  1. Fork the repository 🍴
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

🌟 Show your support

Give a ⭐️ if this project helped you!


Built with ❀️ by Harsh Dodiya

Report Bug Β· Request Feature

About

An editor with multi cursor functionality using Nextjs 13, Websockets, Supabase Realtime, Real-time presence, Custom Rich text editor, Update profile settings.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published