Skip to content

Contributing to CurisJS

Thank you for your interest in contributing to CurisJS! This document provides guidelines for contributing.

Code of Conduct

Be respectful and inclusive. We want CurisJS to be a welcoming community for everyone.

How to Contribute

Reporting Bugs

  • Use the GitHub issue tracker
  • Include a clear title and description
  • Provide code examples and steps to reproduce
  • Include system information (OS, Node.js version, etc.)

Suggesting Features

  • Open a GitHub issue with the "feature request" label
  • Clearly describe the feature and its use case
  • Explain why this feature would be useful

Pull Requests

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Write or update tests
  5. Run the test suite (pnpm test)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to your branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Development Setup

bash
# Clone the repository
git clone https://github.com/Ameriq8/curisjs.git
cd curisjs

# Install dependencies
pnpm install

# Run tests
pnpm test

# Build all packages
pnpm build

# Run dev mode
pnpm dev

Project Structure

curisjs/
├── packages/
│   ├── core/          # Core framework
│   ├── db/            # Database ORM
│   └── cli/           # CLI tools
├── docs/              # Documentation
├── examples/          # Example applications
└── template/          # Project templates

Coding Guidelines

TypeScript

  • Use TypeScript for all code
  • Enable strict mode
  • Provide type annotations for public APIs
  • Avoid any types

Code Style

  • Use Prettier for formatting
  • Follow existing code patterns
  • Write descriptive variable names
  • Add comments for complex logic

Testing

  • Write tests for new features
  • Maintain test coverage above 80%
  • Use descriptive test names
  • Test edge cases

Commits

  • Use conventional commits format
  • Keep commits focused and atomic
  • Write clear commit messages

Example:

feat(core): add rate limiting middleware
fix(db): resolve transaction rollback issue
docs(cli): update command examples

Testing

bash
# Run all tests
pnpm test

# Run tests in watch mode
pnpm test:watch

# Run tests with coverage
pnpm test:coverage

# Test specific package
pnpm --filter @curisjs/core test

Documentation

  • Update documentation for new features
  • Include code examples
  • Update the changelog
  • Add JSDoc comments for public APIs

Questions?

Feel free to open a GitHub issue with your question or join our community discussions.

License

By contributing, you agree that your contributions will be licensed under the MIT License.

Released under the MIT License.