Welcome Contributors
Thank you for your interest in contributing to Sistema Financiero! This guide will help you get started with contributing to the project, whether you’re fixing bugs, adding features, or improving documentation.Getting Started
Set Up Environment
Copy the example environment file and configure your local environment:Add your Supabase credentials and API keys as needed.
Development Workflow
Running the Development Server
Start the Next.js development server:Building for Production
Test your changes with a production build:Always test your changes with a production build before submitting a pull request to catch any build-time errors.
Commit Conventions
We follow Conventional Commits for clear and structured commit messages:Commit Types
| Type | Description | Example |
|---|---|---|
feat | New feature | feat: add expense category filter |
fix | Bug fix | fix: resolve date picker timezone issue |
docs | Documentation only | docs: update API reference |
style | Formatting, missing semicolons | style: format components with prettier |
refactor | Code refactoring | refactor: simplify chart data processing |
test | Adding tests | test: add unit tests for KPI calculations |
chore | Maintenance tasks | chore: update dependencies |
perf | Performance improvements | perf: optimize transaction queries |
Commit Message Format
Pull Request Process
Ensure Quality
Before submitting, make sure:
- All tests pass (if applicable)
- Code builds successfully
- No console errors or warnings
- Code follows existing style patterns
Create Pull Request
Go to GitHub and create a pull request with:
- Clear title: Summarize the change in one line
- Description: Explain what changed and why
- Screenshots: Include visual changes (if applicable)
- Testing: Describe how you tested the changes
Pull Request Template
Code Style Guidelines
TypeScript
- Use TypeScript for all new files
- Define proper interfaces and types
- Avoid using
anytype when possible
React Components
- Use functional components with hooks
- Keep components focused and single-purpose
- Extract reusable logic into custom hooks
File Naming
- Components:
PascalCase.tsx(e.g.,KPICard.tsx) - Hooks:
camelCase.tswithuseprefix (e.g.,useEnhancedChat.ts) - Utilities:
camelCase.ts(e.g.,supabase.ts) - API Routes:
route.ts(Next.js convention)
Testing Your Changes
Manual Testing Checklist
- Test in development mode (
npm run dev) - Test production build (
npm run build && npm run start) - Test on different screen sizes (mobile, tablet, desktop)
- Test with dark mode enabled
- Verify no console errors or warnings
- Test edge cases and error scenarios
Feature-Specific Testing
For Dashboard Changes:- Verify KPIs calculate correctly
- Check charts render properly
- Test date range filters
- Test natural language parsing
- Verify transactions are saved correctly
- Check error handling for failed requests
- Test all endpoints with different parameters
- Verify error responses
- Check database queries are optimized
Common Contribution Areas
Good First Issues
Perfect for newcomers:
- Fix typos in documentation
- Add new expense/income categories
- Improve error messages
- Add input validation
- Enhance mobile responsiveness
Feature Additions
More involved contributions:
- Add new chart types
- Implement transaction filters
- Add export functionality (CSV, PDF)
- Create recurring transactions
- Add budget tracking
Performance Improvements
Optimization opportunities:
- Optimize database queries
- Implement caching strategies
- Reduce bundle size
- Improve loading states
- Add pagination for large datasets
Need Help?
If you’re stuck or have questions:- GitHub Issues: Ask questions or report bugs
- GitHub Discussions: General questions and ideas
- Documentation: Check the Code Structure guide
Don’t be afraid to ask for help! We’re here to support contributors at all skill levels.
Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the code, not the person
- Welcome newcomers and help them learn
- Follow the project’s technical standards