Thank you for your interest in contributing! This guide will help you get started.
If you find a bug or have a suggestion:
- Check if the issue already exists in GitHub Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your environment (Node version, browser, OS)
- Any relevant error messages or screenshots
Documentation improvements are always welcome! This includes:
- Fixing typos or unclear explanations
- Adding more examples
- Improving code comments
- Adding troubleshooting tips
- Translating documentation
To contribute documentation:
- Fork the repository
- Make your changes
- Submit a pull request with a clear description
- Check existing issues and PRs to avoid duplicate work
- For large changes, open an issue first to discuss the approach
- Make sure you can run the project locally
# Clone your fork
git clone https://github.com/YOUR_USERNAME/data-api-quickstart.git
cd data-api-quickstart
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# Edit .env with your Neo4j credentials
# Start development server
npm run dev-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes following these guidelines:
- Write clear, concise code
- Follow existing code style
- Add TypeScript types
- Update documentation if needed
- Test your changes thoroughly
-
Commit your changes:
git add . git commit -m "Brief description of changes"
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request:
- Provide a clear title and description
- Reference any related issues
- Explain what changes you made and why
- Add screenshots for UI changes
- Use TypeScript for all new files
- Define proper interfaces for data structures
- Avoid using
anytype - Use meaningful variable names
- Use functional components with hooks
- Keep components focused and small
- Extract reusable logic into custom hooks
- Use proper TypeScript types for props
- Keep queries and mutations in
src/graphql/operations.ts - Use fragments for reusable field selections
- Include only necessary fields in queries
- Use descriptive operation names
- Follow existing naming conventions
- Keep selectors specific to avoid conflicts
- Use semantic class names
- Maintain responsive design
While this is a quick start project without formal tests, please:
- Test all functionality manually
- Verify the app works in multiple browsers
- Check responsive design on different screen sizes
- Ensure no console errors or warnings
- Ensure your code follows the style guidelines
- Update documentation if needed
- Your PR will be reviewed by maintainers
- Address any feedback or requested changes
- Once approved, a maintainer will merge your PR
Great contributions include:
- Additional CRUD operations
- Enhanced search functionality
- Pagination improvements
- Better error handling
- Loading states and skeletons
- Optimistic updates
- Data visualization
- Export/import features
- Performance optimizations
- Better TypeScript types
- Improved error messages
- Better accessibility
- Mobile responsiveness
- Code refactoring
- More examples
- Better explanations
- Video tutorials
- Blog posts
- Translations
- Fixing reported issues
- Improving edge cases
- Better error handling
- Neo4j DataAPI GraphQL Docs
- React Documentation
- TanStack Query Docs
- TypeScript Handbook
- graphql-request Docs
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what's best for the community
- Show empathy towards others
If you have questions about contributing:
- Open a GitHub Discussion
- Ask in the Neo4j Community Forum
- Join the Neo4j Discord
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to make this quick start better for everyone! 🎉