- β¨ Features
- π Quick Start
- βοΈ Installation
- π§ Development
- π§° Tech Stack
- π€ Contributing
- π License
- π§ Contact
- π Acknowledgments
- π Features Coming Soon
- π Stats
- Multi-user Canvas: Draw simultaneously with others in real-time
- Rich Toolset:
- Multiple brush types (pencil, marker, highlighter)
- Customizable colors and brush sizes
- Eraser with adjustable size
- Undo/Redo functionality
- Clear canvas option
- Responsive Canvas:
- Works on all device sizes
- Smooth zoom and pan functionality
- Auto-resize on window change
- Real-time messaging
- User presence indicators (online/offline)
- Message history with timestamps
- Typing indicators
- Emoji support
- User mentions
- Themes:
- Light and dark mode
- Custom theme support
- System preference detection
- Intuitive Interface:
- Clean, modern design
- Keyboard shortcuts for power users
- Tooltips and helpful hints
- Responsive layout for all devices
- Security Features:
- Input sanitization
- Rate limiting on API endpoints
- Secure WebSocket connections (WSS)
- CORS protection
- Performance Optimizations:
- Efficient canvas rendering
- WebSocket connection optimization
- Lazy loading of assets
- Client-side caching
- Comprehensive API documentation
- Environment-based configuration
- Linting and code formatting
- Detailed logging
- Error tracking integration
- Automated testing suite
Get started with Inscribe in under 5 minutes:
-
Clone the repository
git clone https://github.com/Keshabkjha/Inscribe.git cd Inscribe -
Install dependencies
npm install
-
Set up environment
cp .env.example .env # Edit .env with your configuration -
Start the development server
npm run dev
-
Open in browser Visit
http://localhost:3000to start using Inscribe!
npm start- Start the production servernpm run dev- Start the development server with hot-reloadnpm run prod- Start in production modenpm run lint- Run ESLintnpm run lint:fix- Fix linting issuesnpm run format- Format code with Prettiernpm test- Run tests (coming soon)
Inscribe/
βββ .github/ # GitHub configuration files
β βββ workflows/ # GitHub Actions workflows
β βββ ISSUE_TEMPLATE/ # Issue templates
βββ docs/ # Documentation files
βββ public/ # Static files
β βββ css/ # Stylesheets
β βββ js/ # Client-side JavaScript
β βββ images/ # Image assets
βββ .editorconfig # Editor configuration
βββ .env.example # Example environment variables
βββ .eslintrc.json # ESLint configuration
βββ .gitignore # Git ignore rules
βββ CHANGELOG.md # Version history
βββ CODE_OF_CONDUCT.md # Community guidelines
βββ CONTRIBUTING.md # Contribution guide
βββ LICENSE # MIT License
βββ package.json # Project configuration
βββ README.md # Project documentation
βββ ROADMAP.md # Development roadmap
βββ SECURITY.md # Security policy
βββ server.js # Main application file
Inscribe/
βββ public/ # Static files
β βββ index.html # Main HTML file
β βββ script.js # Client-side JavaScript
β βββ styles.css # Main stylesheet
βββ server/ # Server-side code
β βββ config/ # Configuration files
β βββ controllers/ # Request handlers
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ utils/ # Utility functions
βββ test/ # Test files
βββ .env.example # Example environment variables
βββ .eslintrc.json # ESLint configuration
βββ .gitignore # Git ignore file
βββ package.json # Project dependencies and scripts
βββ README.md # Project documentation
See .env.example for all available environment variables.
-
Frontend:
- HTML5 Canvas API
- Vanilla JavaScript (ES6+)
- CSS3 with Flexbox/Grid
- Responsive Design
-
Backend:
- Node.js
- Express.js
- Socket.IO
- MongoDB with Mongoose
-
Dev Tools:
- ESLint
- Prettier
- Nodemon
- Git
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow existing code style and formatting
- Write meaningful commit messages
- Update documentation as needed
- Add tests for new features
Found a bug? Please open an issue with:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
For more details, please check out our Contributing Guide.
This project is licensed under the MIT License - see the LICENSE file for details.
Keshab Kumar Jha
Email: keshabkumarjha876@gmail.com
GitHub: @Keshabkjha
LinkedIn: keshabkjha
Project Link: https://github.com/Keshabkjha/Inscribe
- Node.js - JavaScript runtime
- Express - Web framework
- Socket.IO - Real-time communication
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Canvas API - Drawing graphics
- Font Awesome - Icons and UI toolkit
- Google Fonts - Free, open-source fonts
For a detailed view of our development roadmap, please check out our ROADMAP.md file.
Special thanks to these amazing projects and communities:
- Socket.IO - For enabling real-time communication
- Fabric.js - For the powerful canvas library
- Shields.io - For the beautiful badges
- The entire open-source community for their invaluable contributions
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
npm start- Start the production servernpm run dev- Start the development server with hot-reloadnpm run prod- Start in production modenpm run lint- Run ESLintnpm run lint:fix- Fix linting issuesnpm run format- Format code with Prettier
See .env.example for all available environment variables. RATE_LIMIT_WINDOW_MS=900000 RATE_LIMIT_MAX=100
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please make sure to update tests as appropriate and follow the Code of Conduct.
Distributed under the MIT License. See LICENSE for more information.
Keshab Kumar Jha
- Email: keshabkumarjha876@gmail.com
- GitHub: @keshabkjha
- LinkedIn: keshabkjha
Project Link: https://github.com/Keshabkjha/Inscribe
Special thanks to the following projects and communities:
- Socket.IO - For enabling real-time communication
- Express - For the minimalist web framework
- MongoDB - For the powerful NoSQL database
- Fabric.js - For the amazing canvas library
- Render - For the generous hosting
- Shields.io - For the beautiful badges
- The entire open-source community for their invaluable contributions