Skip to content

Latest commit

 

History

History
199 lines (154 loc) · 4.84 KB

File metadata and controls

199 lines (154 loc) · 4.84 KB

Contributing to Collaborative Notepad

Welcome to Collaborative Notepad! We're excited to have you contribute to this real-time collaboration project. 🚀

Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • Git
  • A GitHub account

Setting Up Your Development Environment

  1. Fork the repository

    • Click the "Fork" button on the top right of this repository
  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/Collaborative-Notepad.git
    cd Collaborative-Notepad
  3. Install dependencies

    npm install
  4. Start the development server

    npm start
  5. Open your browser

    • Navigate to http://localhost:3000

How to Contribute

1. Find an Issue

  • Check the Issues tab
  • Look for issues labeled good-first-issue for beginners
  • Comment on the issue to request assignment - Wait for a maintainer to assign you
  • Do not create PRs for unassigned issues unless they're labeled help-wanted or good-first-issue
  • If an issue is already assigned, please find another issue to work on

2. Create a Branch

# Important: Always branch from main, not v2.0.0
git checkout main
git pull origin main
git checkout -b feature/your-feature-name

⚠️ Branch Naming Convention:

  • Features: feature/description or feat/issue-number
  • Bug fixes: fix/description or fix/issue-number
  • Documentation: docs/description

3. Make Your Changes

  • Write clean, readable code
  • Follow the existing code style
  • Test your changes locally
  • Make sure the application still works

4. Commit Your Changes

git add .
git commit -m "Add: brief description of your changes"

5. Push and Create a Pull Request

git push origin feature/your-feature-name
  • Go to your fork on GitHub
  • Click "New Pull Request"
  • Important: Ensure your PR targets the main branch (not v2.0.0)
  • Provide a clear description of what you've changed
  • Link to the issue you're solving (e.g., "Closes #123")

Review Process

  • Maintainers will review your PR within 2-3 days
  • You may be asked to make changes
  • Once approved, a maintainer will merge your PR

Types of Contributions We Welcome

🎨 Frontend Improvements

  • UI/UX enhancements
  • Responsive design improvements
  • Accessibility features
  • Theme/styling updates

⚡ Backend Features

  • Real-time collaboration enhancements
  • Performance optimizations
  • Database improvements
  • API enhancements

🔧 General Improvements

  • Bug fixes
  • Documentation updates
  • Code refactoring
  • Testing improvements

💡 New Features

  • Export functionality (PDF, Markdown, etc.)
  • User authentication
  • File management
  • Collaborative cursors
  • Syntax highlighting
  • Auto-save features

Code Style Guidelines

JavaScript

  • Use ES6+ features where appropriate
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Keep functions small and focused

HTML/CSS

  • Use semantic HTML elements
  • Follow BEM methodology for CSS classes
  • Ensure responsive design
  • Test on different browsers

General

  • Use 2 spaces for indentation
  • Add newline at end of files
  • Remove trailing whitespace

Testing

Before submitting your PR:

  1. Test your changes locally
  2. Ensure the app starts without errors
  3. Test basic functionality (creating notes, real-time updates)
  4. Check for console errors

Pull Request Guidelines

Title Format

Use one of these prefixes:

  • Add: for new features
  • Fix: for bug fixes
  • Update: for improvements to existing features
  • Docs: for documentation changes

Description

Include:

  • What you changed and why
  • How to test your changes
  • Screenshots (if UI changes)
  • Any breaking changes

Example

Add: Dark mode toggle

- Added dark/light theme switcher in header
- Persists user preference in localStorage
- Updated CSS variables for theme colors

To test: Click the theme toggle button in the top-right corner

Getting Help

  • 💬 Open an issue for questions
  • 📧 Contact maintainers if you need guidance
  • 🔍 Check existing issues and PRs for similar work

Code of Conduct

  • Be respectful and inclusive
  • Help others learn and grow
  • Focus on constructive feedback
  • Celebrate contributions of all sizes

Recognition

All contributors will be:

  • Added to our contributors list
  • Mentioned in release notes
  • Part of the Collaborative Notepad community! 🎉

Hacktoberfest Specific

For Hacktoberfest participants:

  • Issues labeled hacktoberfest count toward your goal
  • Quality over quantity - make meaningful contributions
  • Help review other contributors' PRs
  • Share your experience and learnings

Thank you for contributing to Collaborative Notepad! Every contribution, no matter how small, helps make this project better for everyone. 🌟

Happy coding! 🚀