Thank you for your interest in contributing to Case! We welcome contributions from the community.
- Fork the repository
- Clone your fork
- Create a new branch for your feature/fix
- Make your changes
- Submit a pull request
-
Install dependencies
npm install
-
Set up test database
createdb case_test
-
Configure test environment
cp .env.example .env.test # Edit .env.test with your test database URL -
Run tests
npm test
- TypeScript: All code must be written in TypeScript
- Testing: New features must include tests
- Linting: Code must pass ESLint checks
- Coverage: Maintain or improve test coverage (currently 80%+)
- One feature per PR: Keep pull requests focused
- Clear description: Explain what and why
- Tests required: Include tests for new functionality
- Documentation: Update README if adding features
- Conventional commits: Use clear commit messages
Run the test suite:
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportWe use ESLint and Prettier. Your code will be automatically formatted on commit.
npm run lint # Check for issues
npm run lint:fix # Auto-fix issues- Use GitHub Issues
- Include reproduction steps
- Provide error messages/logs
- Mention your environment (Node version, OS, etc.)
If you discover a security vulnerability, please use GitHub's private vulnerability reporting feature or contact the maintainers directly instead of using the public issue tracker.
Feel free to open a discussion in GitHub Discussions for any questions about contributing.
By contributing, you agree that your contributions will be licensed under the same MIT License that covers this project.