|
1 | | -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). |
| 1 | +CodeSphere |
2 | 2 |
|
3 | | -## Getting Started |
| 3 | +CodeSphere is a real-time collaborative coding platform built with Next.js, TypeScript, and PostgreSQL. It brings together features of an online IDE, Git version control, and AI-powered coding assistance — all in the browser. |
4 | 4 |
|
5 | | -First, run the development server: |
| 5 | +Think of it as a VS Code in your browser, with real-time collaboration, presence indicators, AI coding assistant, and even voice chat. |
6 | 6 |
|
7 | | -```bash |
8 | | -npm run dev |
9 | | -# or |
10 | | -yarn dev |
11 | | -# or |
12 | | -pnpm dev |
13 | | -# or |
14 | | -bun dev |
15 | | -``` |
| 7 | +⸻ |
| 8 | + |
| 9 | +🚀 Features |
| 10 | + Authentication |
| 11 | + • Google login with NextAuth.js |
| 12 | + • Secure session handling |
| 13 | + Real-time Collaboration |
| 14 | + • Multi-user code editing powered by Monaco Editor |
| 15 | + • Presence indicators (see who’s online in a room) |
| 16 | + • Local undo/redo per file |
| 17 | + File & Room Management |
| 18 | + • Room-based collaboration spaces |
| 19 | + • File explorer with folder nesting |
| 20 | + • Full CRUD operations (add, rename, delete files/folders) |
| 21 | + • File icons (VS Code–style) |
| 22 | + Dependencies & Preview |
| 23 | + • Add external dependencies (Lodash, DayJs, UUID, etc.) per room |
| 24 | + • Live preview with injected dependencies |
| 25 | + • Support for multiple languages and file types |
| 26 | + Version Control (Git-style) |
| 27 | + • Commit changes with messages |
| 28 | + • Browse commit history & details |
| 29 | + • Revert to specific commits |
| 30 | + • Sidebar UI with dedicated Version Control tab |
| 31 | + AI Integration |
| 32 | + • AI-powered code assistant using OpenAI API |
| 33 | + • Context-aware code explanations |
| 34 | + • Code refactor |
| 35 | + • Debug errors |
| 36 | + • Add useful comments |
| 37 | + Communication |
| 38 | + • Built-in voice chat for real-time collaboration |
| 39 | + Other Enhancements |
| 40 | + • Syntax highlighting with language switch |
| 41 | + • Side-by-side Markdown rendering |
| 42 | + • Different amazing themes ready |
| 43 | + • Deployed on Vercel (frontend) |
16 | 44 |
|
17 | | -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. |
| 45 | +⸻ |
18 | 46 |
|
19 | | -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. |
| 47 | +🛠️ Tech Stack |
| 48 | + • Frontend: Next.js + TypeScript |
| 49 | + • Database: PostgreSQL with Prisma ORM |
| 50 | + • Authentication: NextAuth.js with Google Provider |
| 51 | + • Editor: Monaco Editor |
| 52 | + • Collaboration: Socket.IO |
| 53 | + • AI: OpenAI API |
| 54 | + • UI/UX: TailwindCSS, shadcn/ui, lucide-react |
| 55 | + • Deployment: Vercel, Docker |
| 56 | + • Download full project as ZIP or package.json with dependencies. |
20 | 57 |
|
21 | | -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. |
| 58 | +⸻ |
22 | 59 |
|
23 | | -## Learn More |
| 60 | +📦 Getting Started |
24 | 61 |
|
25 | | -To learn more about Next.js, take a look at the following resources: |
| 62 | +1. Clone the repo |
| 63 | +```bash |
| 64 | +git clone https://github.com/Sagar141005/CodeSphere.git |
| 65 | +cd CodeSphere |
| 66 | +``` |
26 | 67 |
|
27 | | -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. |
28 | | -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. |
| 68 | +2. Install dependencies |
| 69 | +```bash |
| 70 | +npm install |
| 71 | +``` |
| 72 | +3. Setup environment variables |
| 73 | +Create a .env file in the root directory with: |
| 74 | +```bash |
| 75 | +DATABASE_URL=your-db-url |
| 76 | +GOOGLE_CLIENT_ID=your-google-client-id |
| 77 | +GOOGLE_CLIENT_SECRET=your-google-client-secret |
| 78 | +GITHUB_CLIENT_ID=your-github-client-id |
| 79 | +GITHUB_CLIENT_SECRET=your-github-client-secret |
| 80 | +NEXTAUTH_SECRET=your-secret |
| 81 | +NEXTAUTH_URL=http://localhost:3000 |
| 82 | +NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your-cloudinary-name |
| 83 | +NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your-cloudinary-upload-preset |
| 84 | +OPENAI_API_KEY=your-openai-key |
| 85 | +NEXT_PUBLIC_BACKEND_URL=http://localhost:3000 |
| 86 | +``` |
| 87 | +4. Run Prisma migrations |
| 88 | +```bash |
| 89 | +npx prisma migrate dev |
| 90 | +``` |
| 91 | +5. Start the dev server |
| 92 | +```bash |
| 93 | +npm run dev |
| 94 | +``` |
29 | 95 |
|
30 | | -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! |
| 96 | +🌍 Deployment |
| 97 | + • Frontend: Vercel |
| 98 | + • Database: Hosted PostgreSQL (Supabase) |
31 | 99 |
|
32 | | -## Deploy on Vercel |
| 100 | + 🛠️ Upcoming Features / TODO |
| 101 | + GitHub Integration |
| 102 | + • Push commits directly to GitHub. |
| 103 | + • Clone public repos into a room. |
| 104 | + Advanced AI Features |
| 105 | + • AI pair programming mode. |
| 106 | + • AI test case generation. |
| 107 | + Video Chat |
| 108 | + • In-room video calls (alongside voice chat). |
| 109 | + More Language Runtimes |
| 110 | + • Add runtime support for Python, Java, C/C++. |
| 111 | + Collaboration Enhancements |
| 112 | + • Commenting system (inline code comments). |
| 113 | + • @mentions and notifications. |
| 114 | + Mobile & Tablet Optimizations |
| 115 | + • Touch-based editing. |
| 116 | + • Mobile-friendly sidebar & preview. |
33 | 117 |
|
34 | | -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. |
35 | 118 |
|
36 | | -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. |
| 119 | +🤝 Contributing |
| 120 | +This project was built solo as a portfolio project, but contributions, feedback, and ideas are welcome. |
0 commit comments