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
If you find a bug or have a feature request, please open an issue with a clear description and steps to reproduce.