Welcome Contributors
Thank you for your interest in contributing to the Odontologia Frontend project! This guide will help you understand our development process and how to submit contributions.Getting Started
1. Set Up Your Environment
Follow the Development Setup guide to configure your local development environment.2. Understand the Codebase
Familiarize yourself with:- Angular 21: Modern Angular with standalone components
- TypeScript 5.9: Strict type checking enabled
- Angular SSR: Server-side rendering with Express
- Vitest: Testing framework
3. Find Something to Work On
Look for:- Open issues in the issue tracker
- Features marked as “good first issue”
- Documentation improvements
- Bug reports
Development Workflow
1. Fork and Clone
Fork the repository and clone your fork:2. Create a Branch
Create a feature branch frommain:
feature/- New featuresfix/- Bug fixesdocs/- Documentation updatesrefactor/- Code refactoringtest/- Test additions or updates
3. Make Your Changes
Follow these practices:- Write clean, readable code
- Follow the Code Style Guidelines
- Add tests for new functionality
- Update documentation as needed
4. Test Your Changes
Run the test suite:5. Commit Your Changes
Write clear, descriptive commit messages:feat:- New featurefix:- Bug fixdocs:- Documentation changestyle:- Code style/formattingrefactor:- Code refactoringtest:- Test updateschore:- Build/tooling changes
6. Push and Create Pull Request
Push your changes:- Clear title and description
- Reference to related issues
- Screenshots (if applicable)
- Test results
Code Review Process
What We Look For
- Code Quality: Clean, maintainable code
- Testing: Adequate test coverage
- Documentation: Updated docs for new features
- Style: Follows project conventions
- Functionality: Works as intended
Review Timeline
We aim to review pull requests within:- Bug fixes: 1-2 days
- New features: 3-5 days
- Documentation: 1-2 days
Testing Requirements
Unit Tests
All new code should include unit tests:Test Coverage
Maintain test coverage above 80% for new code.Documentation
Code Documentation
Document complex logic with comments:User Documentation
Update relevant documentation pages when adding features.Component Guidelines
Use Standalone Components
The project uses Angular’s standalone component API:Component Structure
Organize components with:*.component.ts- Component logic*.component.html- Template*.component.css- Styles*.component.spec.ts- Tests
Accessibility
Ensure all UI components are accessible:- Semantic HTML elements
- ARIA labels where needed
- Keyboard navigation support
- Sufficient color contrast
- Screen reader compatibility
Performance
Optimize for performance:- Use OnPush change detection where possible
- Lazy load routes and components
- Optimize images and assets
- Monitor bundle size (see Building)
Security
Follow security best practices:- Sanitize user input
- Use Angular’s built-in security features
- Avoid direct DOM manipulation
- Keep dependencies updated
Getting Help
Questions
- Check existing documentation
- Search closed issues
- Ask in issue discussions
Reporting Bugs
Include:- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, Node version, etc.)
- Screenshots or error logs
Suggesting Features
Describe:- The problem it solves
- Proposed solution
- Alternatives considered
- Implementation ideas
Code of Conduct
Be Respectful
- Use welcoming and inclusive language
- Respect differing viewpoints
- Accept constructive criticism gracefully
- Focus on what’s best for the community
Be Professional
- Keep discussions on topic
- Avoid personal attacks
- Assume good intentions
- Help others learn and grow
License
By contributing, you agree that your contributions will be licensed under the same license as the project.Next Steps
- Review Code Style Guidelines
- Learn about Testing
- Explore SSR Configuration