Skip to content

CodeTogether is a fully featured, cross browser, collaborative coding platform

Notifications You must be signed in to change notification settings

Kathenae/Hackaton

Repository files navigation

CodeTogether | Hackaton Submission

Built for the Web Dev Cody Hackaton, CodeTogether is a fully featured, cross browser, totally not buggy 😅, collaborative coding platform (or app?) that can be used to easily share your project when you need help with something or if you brave enough, use it when you want to collaborate with other developers on an entire project.

Preview Image

Typescript React Convex Clerk Auth Shadcn UI Tailwind CSS

Features

  • Create Project Linked to Github Repo
  • Invite Members
  • Drag and Drop files into Workspace
  • Code Editor with Multi language support
  • Realtime Code editing
  • Supports Branching and Single file commits

So, How do i run it?

Its easy, just:

  • Yoink the repo 😅
  • Run npm install to install dependencies
  • Run npx convex dev to setup your convex project and sync your schema and functions
  • Create a clerk project and setup a Convex JWT template named "convex" because we need it for auth (check auth.config.js)
  • Make sure to only use the github OAuth provider and include the public_repo scope in your clerk project
  • Go to convex dashboard and setup your CLERK_CONVEX_ISSUER_URL copied from the JWT template
  • Edit /src/pages/Root.tsx to use your clerk publishable key on the ClerkProvider (using .env.local for this wasn't possible because it kept being replaced by convex dev or so i think)
  • Create a .env.local with CONVEX_DEPLOYMENT and VITE_CONVEX_URL variables (npx convex dev should have created this for you)
  • npm run dev

TODO (Soon)

  • Remove Members
  • Leave Project
  • Presense (See who's online)
  • Implement Branching and Single file commits
  • Allow creating new files
  • Code Presense (See who's editing what)
  • Add Authorization checks in the backend (Only Project owner should be able to invite or remove members)

TODO (Dauting)

  • Implement multi file commits
  • Show indicator when a file has changed in the repo and needs to be "synched"
  • Implement Fixing merge conflics
  • Better error handling for when offline (clerk, convex, github unreashable). Right now the app just crashes or doesn't do the thing
  • Codesandbox esque web environment (HELP!)
  • VS Code Extension for better code presense (HELP!)
  • Lines, Shapes, and Text drawing capabilities (Maybe not needed?)

Known Issues

  • File selector freezes on large repos
  • Editor position synching not the best
  • Many more waiting to be discovered...

About

CodeTogether is a fully featured, cross browser, collaborative coding platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published