Contributing
Thank you for your interest in contributing to Budgetzilla! This guide will help you get started.
Getting Started
Section titled “Getting Started”1. Fork and Clone
Section titled “1. Fork and Clone”git clone https://github.com/Skyline-9/budgetzilla.gitcd budget2. Set Up Development Environment
Section titled “2. Set Up Development Environment”cd webappnpm installnpm run dev3. Create a Branch
Section titled “3. Create a Branch”git checkout -b feature/your-feature-nameDevelopment Guidelines
Section titled “Development Guidelines”Code Style
Section titled “Code Style”- TypeScript — Use strict types, avoid
any - React — Functional components with hooks
- Tailwind — Use utility classes, avoid custom CSS
- Formatting — Run Prettier before committing
Commit Messages
Section titled “Commit Messages”Use conventional commit format:
feat: add budget notificationsfix: correct date parsing in importdocs: update installation guiderefactor: simplify transaction queriesTesting
Section titled “Testing”Run tests before submitting:
npm run test # Unit testsnpm run lint # Lintingnpm run typecheck # Type checkingTypes of Contributions
Section titled “Types of Contributions”Bug Fixes
Section titled “Bug Fixes”- Check existing issues for duplicates
- Create an issue describing the bug
- Reference the issue in your PR
New Features
Section titled “New Features”- Open an issue to discuss the feature first
- Wait for maintainer feedback
- Implement once approach is agreed upon
Documentation
Section titled “Documentation”- Fix typos and clarify explanations
- Add examples and use cases
- Translate to other languages
UI/UX Improvements
Section titled “UI/UX Improvements”- Accessibility enhancements
- Performance optimizations
- Mobile responsiveness
Pull Request Process
Section titled “Pull Request Process”1. Before Submitting
Section titled “1. Before Submitting”- Tests pass (
npm run test) - Linting passes (
npm run lint) - Types check (
npm run typecheck) - Documentation updated if needed
- Commit messages follow convention
2. PR Description
Section titled “2. PR Description”Include:
- What changed and why
- Screenshots for UI changes
- Link to related issue
3. Review Process
Section titled “3. Review Process”- Maintainers will review within a few days
- Address feedback promptly
- Be open to suggestions
Project Structure
Section titled “Project Structure”Key directories for contributors:
webapp/src/├── components/ # UI components (most contributions here)├── pages/ # Page-level components├── api/ # Data layer├── db/ # Database operations├── hooks/ # Custom React hooks└── services/ # External integrationsRunning the Full Stack
Section titled “Running the Full Stack”Browser Development
Section titled “Browser Development”cd webappnpm run devmacOS App Development
Section titled “macOS App Development”# Frontend changes onlyDEV_MODE=1 ./build_mac_app.sh
# Full rebuild (Swift changes)./build_mac_app.shGetting Help
Section titled “Getting Help”- Questions: Open a GitHub Discussion
- Bugs: Open a GitHub Issue
- Feature Ideas: Open a GitHub Issue with [Feature] prefix
Code of Conduct
Section titled “Code of Conduct”- Be respectful and inclusive
- Provide constructive feedback
- Help others learn and grow
Thank you for contributing to Budgetzilla!