- Added "Last Updated" date to multiple documentation files for better tracking. - Enhanced the README with quick navigation indexes for guides, references, and architecture documentation. - Updated titles in Keycloak deployment and testing guide for consistency.
2.1 KiB
2.1 KiB
Contributing to Sankofa
Last Updated: 2025-01-09
Thank you for your interest in contributing to Sankofa! This document provides guidelines and instructions for contributing to the Sankofa ecosystem and Sankofa Phoenix cloud platform.
Code of Conduct
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Respect different viewpoints and experiences
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/Sankofa.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Commit your changes:
git commit -m "Add your feature" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
Development Setup
See DEVELOPMENT.md for detailed setup instructions.
Pull Request Process
- Ensure your code follows the project's style guidelines
- Add tests for new features
- Ensure all tests pass:
pnpm test - Update documentation as needed
- Ensure your branch is up to date with the main branch
- Submit your PR with a clear description
Coding Standards
TypeScript/JavaScript
- Use TypeScript for all new code
- Follow the existing code style
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Avoid
anytypes - use proper typing
React Components
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use proper prop types or TypeScript interfaces
Git Commits
- Use clear, descriptive commit messages
- Follow conventional commits format when possible
- Keep commits focused on a single change
Testing
- Write tests for all new features
- Ensure existing tests still pass
- Aim for >80% code coverage
- Test both success and error cases
Documentation
- Update README.md if needed
- Add JSDoc comments for new functions
- Update API documentation for backend changes
- Keep architecture docs up to date
Questions?
Feel free to open an issue for questions or reach out to the maintainers.