Thanks for your interest in contributing to Avkash! This guide will help you get started.
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/<your-username>/avkash.git cd avkash
-
Set up the development environment by following the README
-
Create a branch for your change:
git checkout -b feat/your-feature-name
Use a prefix that matches the type of change:
feat/— New featuresfix/— Bug fixesdocs/— Documentation changesrefactor/— Code refactoringchore/— Maintenance tasks
This project uses commitlint to enforce conventional commits. Every commit message must follow this format:
type(scope): message
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
Scopes: setup, config, deps, feature, bug, docs, style, refactor, test, build, ci, release, other
Examples:
feat(feature): add bulk leave approval
fix(bug): fix timezone offset in timeline view
docs(docs): update environment variables table
refactor(refactor): extract leave validation logic
Pre-commit hooks run automatically via husky and lint-staged. They will:
- Run type checking (
tsc) - Format code with Prettier
- Lint with ESLint
You can also run these manually:
pnpm lint # Check for lint errors
pnpm lint-fix # Auto-fix lint errors
pnpm format # Check formatting
pnpm format:fix # Auto-fix formatting- Make sure your branch is up to date with
main - Ensure all checks pass (
pnpm lint,pnpm format,pnpm build) - Write a clear PR title following the commit convention (e.g.,
feat(feature): add bulk leave approval) - Describe what your PR does and why in the description
- Link any related issues
Avkash core is licensed under the GNU Affero General Public License v3.0. By contributing, you agree that your contribution is licensed under the same project license.
Zero8 Dot Dev Pvt Ltd may require a signed Contributor License Agreement before your pull request can be merged. The CLA preserves the open-core licensing model and allows commercial license exceptions for customers that cannot use AGPL software.
If you find a bug or have a feature request, please open an issue with a clear description and steps to reproduce.