Skip to content

nradhesh/code-sync

Repository files navigation

πŸš€ Edit-Me: AI-Powered Code Sharing Platform

Docker AWS Terraform React NodeJS Piston Pollinations

πŸ“ Overview

Edit-Me is a cutting-edge code sharing platform that revolutionizes the way developers collaborate and learn. By integrating AI capabilities through Pollinations API and real-time code execution via Piston Compiler, we provide a seamless environment for code sharing, execution, and AI-assisted development. Screenshot (426) Screenshot (427) Screenshot (428) Screenshot (429) Screenshot (431) Screenshot (432) Screenshot (433) Screenshot (434) Screenshot (434)

🌟 Key Features

  • 🎨 Modern UI/UX

    • Responsive React-based interface
    • Real-time code editing
    • Syntax highlighting
    • Dark/Light theme support
  • ⚑ Code Execution

    • Multi-language support via Piston API
    • Real-time compilation
    • Secure sandboxed environment
    • Custom runtime configurations
  • πŸ€– AI Integration

    • Code analysis and suggestions
    • Documentation generation
    • Bug detection and fixes
    • Code optimization via Pollinations API
  • πŸš€ DevOps & Infrastructure

    • Docker containerization
    • AWS cloud infrastructure
    • Terraform IaC
    • CI/CD pipeline
    • Automated testing

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    Frontend     β”‚     β”‚    Backend      β”‚     β”‚  Infrastructure β”‚
β”‚    (React)      │◄───►│   (Node.js)     │◄───►│    (AWS/TF)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β–²                       β–²                        β–²
        β”‚                       β”‚                        β”‚
        β–Ό                       β–Ό                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   User Browser  β”‚     β”‚   API Gateway   β”‚     β”‚  Cloud Services β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β–²                       β–²                        β–²
        β”‚                       β”‚                        β”‚
        β–Ό                       β–Ό                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Pollinations   β”‚     β”‚    Piston       β”‚     β”‚    Database     β”‚
β”‚     API         β”‚     β”‚   Compiler      β”‚     β”‚    (MongoDB)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Technology Stack

Frontend 🎯

  • Core: React.js 18.x
  • State Management: React Context API + Redux Toolkit
  • Styling:
    • Tailwind CSS
    • CSS Modules
    • Flexbox/Grid
  • Build Tools:
    • Vite
    • ESLint
    • Prettier
  • Testing:
    • Jest
    • React Testing Library
  • Code Editor: Monaco Editor
  • AI Integration: Pollinations API Client

Backend βš™οΈ

  • Runtime: Node.js 18.x
  • Framework: Express.js
  • Database:
    • MongoDB (Primary)
  • API:
    • RESTful Architecture
  • Real-time: Socket.io
  • External Services:
    • Piston API Integration
    • Pollinations API Integration

DevOps πŸš€

  • Containerization:
    • Docker
    • Docker Compose
  • Infrastructure:
    • AWS (EC2, S3, RDS)
  • IaC:
    • Terraform
  • CI/CD:
    • GitHub Actions
    • AWS CodePipeline

πŸš€ Getting Started

Prerequisites πŸ“‹

  • Node.js 18.x or later
  • Docker Desktop
  • AWS CLI configured
  • Terraform CLI
  • Git
  • MongoDB (local or Atlas)

Local Development Setup πŸ’»

  1. Clone the Repository

    git clone https://github.com/nradhesh/edit-me.git
    cd edit-me
  2. Install Dependencies

    # Root dependencies
    npm install
    
    # Frontend setup
    cd client
    npm install
    
    # Backend setup
    cd ../server
    npm install
  3. Environment Setup

    # Copy environment files
    cp .env.example .env
    cp client/.env.example client/.env
    cp server/.env.example server/.env
  4. Start Development Servers

    # Using Docker Compose (recommended)
    docker-compose up -d
    
    # Or start services individually
    # Backend (from server directory)
    npm run dev
    
    # Frontend (from client directory)
    npm start

Docker Deployment 🐳

# Build the image
docker build -t edit-me .

# Run the container
docker run -p 3000:3000 \
  -e NODE_ENV=production \
  -e MONGODB_URI=your_mongodb_uri \
  -e JWT_SECRET=your_jwt_secret \
  edit-me

AWS Deployment ☁️

  1. Configure AWS Credentials

    aws configure
  2. Deploy Infrastructure

    cd terraform
    terraform init
    terraform plan
    terraform apply

πŸ”§ Environment Configuration

Backend (.env)

# Server Configuration
NODE_ENV=development
PORT=3000
HOST=localhost

# Database
MONGODB_URI=mongodb://localhost:27017/edit-me

# AWS Configuration
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=your_aws_region
S3_BUCKET=your_s3_bucket

# API Keys
PISTON_API_KEY=your_piston_api_key
POLLINATIONS_API_KEY=your_pollinations_api_key

Frontend (.env)

# API Configuration
REACT_APP_API_URL=http://localhost:3000
REACT_APP_WS_URL=ws://localhost:3000

# AWS Configuration
REACT_APP_AWS_REGION=your_aws_region
REACT_APP_S3_BUCKET=your_s3_bucket
REACT_APP_CLOUDFRONT_URL=your_cloudfront_url

# External Services
REACT_APP_PISTON_API_URL=https://emkc.org/api/v2/piston
REACT_APP_POLLINATIONS_API_URL=https://api.pollinations.ai/v1

# Feature Flags
REACT_APP_ENABLE_AI=true
REACT_APP_ENABLE_CODE_EXECUTION=true

🎯 API Integration Details

Piston API Integration

  • Purpose: Secure code execution and compilation
  • Features:
    • Multi-language support (Python, JavaScript, Java, C++, etc.)
    • Secure sandboxed execution
    • Real-time compilation
    • Custom runtime environments
    • Resource limits and timeouts
  • Security:
    • Sandboxed execution environment
    • Resource usage monitoring
    • Network access restrictions
    • File system isolation

Pollinations API Integration

  • Purpose: AI-powered code assistance and optimization
  • Features:
    • Code analysis and suggestions
    • Documentation generation
    • Bug detection and fixes
    • Code optimization
    • Natural language code queries
    • Code style recommendations
  • Security:
    • API key authentication
    • Rate limiting
    • Data encryption
    • Privacy-focused processing

πŸ§ͺ Testing

# Run all tests
npm test

# Run frontend tests
cd client && npm test

# Run backend tests
cd server && npm test

πŸ“„ License

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

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages