Welcome to Collaborative Notepad! We're excited to have you contribute to this real-time collaboration project. 🚀
- Node.js (v14 or higher)
- Git
- A GitHub account
-
Fork the repository
- Click the "Fork" button on the top right of this repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/Collaborative-Notepad.git cd Collaborative-Notepad -
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser
- Navigate to
http://localhost:3000
- Navigate to
- Check the Issues tab
- Look for issues labeled
good-first-issuefor 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-wantedorgood-first-issue - If an issue is already assigned, please find another issue to work on
# Important: Always branch from main, not v2.0.0
git checkout main
git pull origin main
git checkout -b feature/your-feature-name- Features:
feature/descriptionorfeat/issue-number - Bug fixes:
fix/descriptionorfix/issue-number - Documentation:
docs/description
- Write clean, readable code
- Follow the existing code style
- Test your changes locally
- Make sure the application still works
git add .
git commit -m "Add: brief description of your changes"git push origin feature/your-feature-name- Go to your fork on GitHub
- Click "New Pull Request"
- Important: Ensure your PR targets the
mainbranch (not v2.0.0) - Provide a clear description of what you've changed
- Link to the issue you're solving (e.g., "Closes #123")
- Maintainers will review your PR within 2-3 days
- You may be asked to make changes
- Once approved, a maintainer will merge your PR
- UI/UX enhancements
- Responsive design improvements
- Accessibility features
- Theme/styling updates
- Real-time collaboration enhancements
- Performance optimizations
- Database improvements
- API enhancements
- Bug fixes
- Documentation updates
- Code refactoring
- Testing improvements
- Export functionality (PDF, Markdown, etc.)
- User authentication
- File management
- Collaborative cursors
- Syntax highlighting
- Auto-save features
- Use ES6+ features where appropriate
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions small and focused
- Use semantic HTML elements
- Follow BEM methodology for CSS classes
- Ensure responsive design
- Test on different browsers
- Use 2 spaces for indentation
- Add newline at end of files
- Remove trailing whitespace
Before submitting your PR:
- Test your changes locally
- Ensure the app starts without errors
- Test basic functionality (creating notes, real-time updates)
- Check for console errors
Use one of these prefixes:
Add:for new featuresFix:for bug fixesUpdate:for improvements to existing featuresDocs:for documentation changes
Include:
- What you changed and why
- How to test your changes
- Screenshots (if UI changes)
- Any breaking changes
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
- 💬 Open an issue for questions
- 📧 Contact maintainers if you need guidance
- 🔍 Check existing issues and PRs for similar work
- Be respectful and inclusive
- Help others learn and grow
- Focus on constructive feedback
- Celebrate contributions of all sizes
All contributors will be:
- Added to our contributors list
- Mentioned in release notes
- Part of the Collaborative Notepad community! 🎉
For Hacktoberfest participants:
- Issues labeled
hacktoberfestcount 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! 🚀