Skip to content

Hemant2335/OneDraw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

166 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OneDraw 🎨

A Modern Collaborative Designing Tool

OneDraw is a powerful, web-based collaborative designing tool that enables multiple users to create, edit, and design together in real-time. Built with modern web technologies, it provides an intuitive interface for teams, educators, and creative professionals to collaborate seamlessly on visual projects.

🌟 Features

Core Functionality

  • Real-time Collaboration - Multiple users can draw and design simultaneously
  • Vector-based Drawing - Scalable graphics using modern web standards
  • Comprehensive Design Tools - Complete toolkit for creating professional designs
  • Live User Presence - See who's online and track real-time cursors
  • Project Management - Save, load, and organize your design projects
  • Cross-platform - Works seamlessly across all modern web browsers

Design Tools

  • πŸ–ŠοΈ Freehand Drawing - Pen and brush tools with pressure sensitivity
  • πŸ“ Shape Tools - Rectangles, circles, lines, arrows, and custom shapes
  • πŸ“ Text Editor - Rich text editing with typography controls
  • 🎨 Color Management - Advanced color palettes and picker
  • πŸ“š Layer System - Organize elements with professional layer management
  • ↩️ Undo/Redo - Full history tracking for all operations

Collaboration Features

  • πŸ‘₯ Multi-user Editing - Simultaneous editing without conflicts
  • πŸ’¬ Real-time Communication - Built-in chat and commenting system
  • πŸ” Access Control - Granular permissions and sharing options
  • πŸ‘€ Live Cursors - See other users' cursors and selections in real-time
  • πŸ”„ Conflict Resolution - Smart handling of simultaneous edits

πŸ—οΈ Technical Architecture

Frontend Stack

React 18+ with TypeScript
β”œβ”€β”€ 19 TSX Components - React UI components
β”œβ”€β”€ 14 TS Modules - Business logic and utilities
β”œβ”€β”€ 5 JS Files - Additional functionality
└── Modern CSS - Responsive and accessible styling

Backend Infrastructure

Node.js + TypeScript
β”œβ”€β”€ Prisma ORM - Type-safe database operations
β”œβ”€β”€ SQL Database - Persistent data storage
β”œβ”€β”€ WebSocket Server - Real-time communication
└── REST/GraphQL APIs - Frontend-backend communication

Key Technologies

  • Frontend: React, TypeScript, Modern CSS, Canvas/SVG
  • Backend: Node.js, Prisma ORM, WebSockets
  • Database: SQL with Prisma migrations
  • Build Tools: Modern bundling and optimization
  • Development: Hot reload, TypeScript checking, ESLint

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn package manager
  • Modern web browser
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/Hemant2335/OneDraw.git
    cd OneDraw
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Set up the database

    npx prisma generate
    npx prisma db push
  4. Configure environment variables

    cp .env.example .env
    # Edit .env with your configuration
  5. Start the development server

    npm run dev
    # or
    yarn dev
  6. Access the application

    Open http://localhost:3000 in your browser
    

πŸ“ Project Structure

OneDraw/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # React components (TSX)
β”‚   β”‚   β”œβ”€β”€ Canvas/         # Drawing canvas components
β”‚   β”‚   β”œβ”€β”€ Tools/          # Design tool components
β”‚   β”‚   β”œβ”€β”€ UI/             # Interface components
β”‚   β”‚   └── Collaboration/  # Real-time features
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   β”œβ”€β”€ utils/              # Utility functions
β”‚   β”œβ”€β”€ types/              # TypeScript type definitions
β”‚   β”œβ”€β”€ services/           # API and business logic
β”‚   └── styles/             # CSS and styling
β”œβ”€β”€ prisma/
β”‚   β”œβ”€β”€ schema.prisma       # Database schema
β”‚   └── migrations/         # Database migrations
β”œβ”€β”€ public/                 # Static assets
β”œβ”€β”€ docs/                   # Documentation
└── tests/                  # Test suites

🎯 Use Cases

Professional Teams

  • Design Collaboration - Teams working on visual projects
  • Brainstorming Sessions - Visual ideation and planning
  • Prototyping - Quick mockups and wireframes
  • Client Presentations - Interactive design reviews

Educational

  • Teaching Tool - Visual learning and instruction
  • Student Projects - Collaborative assignments
  • Workshops - Interactive design sessions
  • Remote Learning - Online collaborative exercises

Creative Projects

  • Artistic Collaboration - Multi-artist creative projects
  • Community Art - Open collaborative artworks
  • Design Challenges - Competitive design events
  • Personal Projects - Individual creative expression

πŸ”§ Configuration

Environment Variables

# Database
DATABASE_URL="your-database-connection-string"

# Authentication
JWT_SECRET="your-jwt-secret"
AUTH_PROVIDER="your-auth-provider"

# Real-time Features
WEBSOCKET_PORT=3001
REDIS_URL="your-redis-connection"

# File Storage
STORAGE_PROVIDER="local|aws|gcp"
STORAGE_PATH="/uploads"

Customization Options

  • Theme Configuration - Custom colors and styling
  • Tool Presets - Default tool configurations
  • Collaboration Settings - User limits and permissions
  • Performance Settings - Optimization parameters

πŸš€ Deployment

Production Build

npm run build
npm run start

Docker Deployment

docker build -t onedraw .
docker run -p 3000:3000 onedraw

Cloud Platforms

  • Vercel: One-click deployment with automatic scaling
  • Netlify: Static site deployment with serverless functions
  • AWS/GCP: Full infrastructure deployment
  • Docker: Containerized deployment anywhere

πŸ§ͺ Development

Running Tests

npm run test              # Run all tests
npm run test:unit         # Unit tests only
npm run test:integration  # Integration tests
npm run test:e2e          # End-to-end tests

Code Quality

npm run lint              # ESLint checking
npm run type-check        # TypeScript validation
npm run format            # Prettier formatting

Database Operations

npx prisma studio         # Database GUI
npx prisma migrate dev    # Create migration
npx prisma db seed        # Seed database

πŸ“Š Performance Features

Optimization Strategies

  • Efficient Rendering - Optimized canvas operations and updates
  • State Management - Minimized re-renders and memory usage
  • Network Optimization - Compressed real-time updates
  • Caching - Intelligent caching for faster loading
  • Code Splitting - Lazy loading for optimal bundle size

Scalability

  • Horizontal Scaling - Multi-server deployment support
  • Database Optimization - Efficient queries and indexing
  • CDN Integration - Global asset distribution
  • Load Balancing - Traffic distribution across servers

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Getting Involved

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes with proper tests
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Contribution Guidelines

  • Follow the existing code style and conventions
  • Write comprehensive tests for new features
  • Update documentation for any API changes
  • Ensure all tests pass before submitting
  • Be respectful and constructive in discussions

Areas for Contribution

  • πŸ› Bug Fixes - Help resolve issues and improve stability
  • ✨ New Features - Add exciting new functionality
  • πŸ“– Documentation - Improve guides and API docs
  • 🎨 UI/UX - Enhance the user experience
  • ⚑ Performance - Optimize speed and efficiency

πŸ“„ License

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

πŸ™ Acknowledgments

  • React Team - For the amazing React framework
  • Prisma Team - For the excellent ORM and database tools
  • TypeScript Team - For type safety and developer experience
  • Open Source Community - For inspiration and contributions

πŸ“ž Support & Contact

πŸ—ΊοΈ Roadmap

Version 1.0 (Current)

  • βœ… Basic drawing tools and canvas
  • βœ… Real-time collaboration
  • βœ… User authentication
  • βœ… Project management

Version 1.1 (Upcoming)

  • πŸ”„ Advanced shape tools
  • πŸ”„ Enhanced text editing
  • πŸ”„ Mobile responsiveness
  • πŸ”„ Performance optimizations

Version 2.0 (Future)

  • πŸ“… Plugin system
  • πŸ“… Advanced animation tools
  • πŸ“… AI-powered features
  • πŸ“… Enterprise features

Made with ❀️ by the OneDraw team

OneDraw - Where ideas come to life through collaboration

About

This is the Official repo for OneDraw : A Collorative Designing Tool

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages