A full-stack web application for editing and sharing code with support for multiple languages and Jupyter notebooks (.ipynb files).
- Multi-language support: JavaScript, Python, HTML, CSS, and many more
- Jupyter Notebook (.ipynb) support: Edit and visualize Jupyter notebooks directly in the browser
- Real-time collaboration: Share your projects with collaborators
- File system: Create, edit, and organize files and folders
- User authentication: Secure login and registration system
- Project management: Create, edit, and delete projects
- Responsive design: Works on desktop and mobile devices
- React
- Monaco Editor (code editor)
- Styled Components (styling)
- React Router (navigation)
- Axios (API requests)
- Node.js
- Express
- MongoDB (database)
- Mongoose (ODM)
- JSON Web Tokens (authentication)
- Vercel (hosting)
- MongoDB Atlas (database hosting)
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (local or Atlas)
-
Clone the repository
git clone https://github.com/yourusername/code-editor-project.git cd code-editor-project -
Install dependencies for client and server
# Install client dependencies cd client npm install # Install server dependencies cd ../server npm install -
Set up environment variables
- Create a
.envfile in the server directory based on the provided.env.example - Fill in your MongoDB URI, JWT secret, and other required variables
- Create a
-
Start the development servers
# Start the backend server cd server npm run dev # In a separate terminal, start the frontend cd client npm run dev -
Open your browser and navigate to
http://localhost:3000
code-editor-project/
├── client/ # Frontend React application
│ ├── public/ # Static files
│ └── src/ # Source code
│ ├── assets/ # Images, icons, etc.
│ ├── components/ # Reusable UI components
│ ├── contexts/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Page components
│ ├── services/ # API service calls
│ └── utils/ # Utility functions
│
│
├── api/ # Serverless functions for Vercel
│ └── index.js # API entry point
│
└── vercel.json # Vercel deployment configuration
This project is configured for deployment on Vercel. Follow these steps to deploy:
- Create a Vercel account if you don't have one
- Install the Vercel CLI:
npm install -g vercel - Run
vercel loginand follow the prompts - From the project root, run
vercelto deploy - Set up the required environment variables in Vercel's dashboard
See DEPLOYMENT.md for detailed deployment instructions.
For detailed API documentation, see API.md.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Monaco Editor for the code editing capabilities
- React Split for resizable panel layouts