Thank you for your interest in contributing to BottleCRM! We're excited to have you join our community of developers working to make high-quality CRM software accessible to everyone.
This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- Development Workflow
- Pull Request Process
- Reporting Bugs
- Feature Requests
- Coding Standards
- Community
We are committed to providing a welcoming and inspiring community for all.
- Node.js (v16 or newer)
- npm, pnpm, or yarn package manager
- Git
- A database (PostgreSQL recommended)
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/bottlecrm.git cd bottlecrm - Install dependencies:
npm install # or pnpm install # or yarn
- Configure your environment variables:
- Copy
.env.exampleto.env - Update the variables as needed for your local environment
- Copy
- Run database migrations:
npx prisma migrate dev
- Start the development server:
npm run dev
-
Create a new branch for your work:
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-you-are-fixing -
Make your changes and commit them using descriptive commit messages:
git commit -m "feat: add new feature X that does Y"We follow the Conventional Commits standard for commit messages.
-
Push your branch to GitHub:
git push origin feature/your-feature-name
-
Create a pull request from your branch to the main project repository.
- Ensure your code follows the project's coding standards.
- Update the documentation as needed.
- Add tests for new functionality.
- Ensure the test suite passes by running:
npm run test - Your pull request will be reviewed by maintainers, who may request changes or provide feedback.
- Once approved, your pull request will be merged by a maintainer.
Please report bugs by opening an issue on our GitHub repository. When filing a bug report, please include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Environment information (OS, browser, etc.)
We welcome suggestions for new features! To suggest a feature:
- Check if the feature has already been requested or is in development.
- Open a new issue describing:
- The feature you'd like to see
- The problem it solves
- How it should work
- Why it would be valuable to most users
- We use ESLint and Prettier for code formatting and linting.
- Run
npm run lintbefore submitting pull requests. - Write meaningful comments and documentation.
- Follow the existing code style and patterns.
- Write tests for new functionality.
- Each component should have a clear, single responsibility.
- Use Svelte's reactivity system effectively.
- Keep components reasonably sized; consider breaking large components into smaller ones.
- Use TypeScript for type safety when possible.
- Follow RESTful principles.
- Return consistent response structures.
- Handle errors gracefully and return appropriate status codes.
- Document new endpoints.
Join our community to discuss the project, get help, or just hang out with other BottleCRM contributors:
- GitHub Discussions
- Community Forum (coming soon)
- Discord Server (coming soon)
By contributing to BottleCRM, you agree that your contributions will be licensed under the project's MIT License.
Thank you for contributing to make CRM software accessible to everyone! ❤️