First off, thank you for considering contributing! 🎉
This project follows the GraTech Philosophy:
"We build AI that serves humans, not controls them."
Be respectful, be inclusive, be awesome.
- Check if the bug is already reported
- Open an issue with:
- Clear title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Open an issue with
[Feature Request]prefix - Describe the feature
- Explain why it's useful
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Make changes
- Test thoroughly
- Commit with meaningful messages
- Push and create a PR
# Clone
git clone https://github.com/GrAxOS/GraTechCommander.git
cd GraTechCommander
# Open in browser
start index.htmlnpm install
npm start# Open GraTechCommander.sln in Visual Studio
# Build > Build Solution (Ctrl+Shift+B)- Use ES6+ features
- Prefer
constoverlet - Use meaningful variable names
- Comment complex logic
// ✅ Good
const userPreferences = loadUserPrefs();
// ❌ Bad
const x = loadUserPrefs();- Use CSS variables from
:root - Mobile-first approach
- RTL support always
/* ✅ Good */
.button {
background: var(--accent-primary);
padding: 10px 20px;
}
/* ❌ Bad */
.button {
background: #00d4ff;
padding: 10px 20px;
}- Always test RTL layouts
- Use Arabic comments for Arabic-specific code
Use this format:
<type>: <short description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Formattingrefactor: Code restructuringtest: Adding testschore: Maintenance
Examples:
feat: add voice input support
fix: resolve RTL alignment in notes view
docs: update README with new features
Contributors will be:
- Listed in README
- Mentioned in release notes
- Forever appreciated! 💜
Questions? Open an issue or email admin@gratech.sa
شكراً! 🇸🇦