Thank you for your interest in contributing to SimpleAccounts UAE! This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Preferred Qualifications
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Commit Messages
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository
- Clone your fork locally
- Set up the development environment (see below)
- Create a new branch for your feature or bug fix
- Make your changes
- Submit a pull request
While we welcome contributors from all backgrounds, the following qualifications are particularly valuable for this project:
-
Software Development: Experience in software development or AI engineering
- Frontend: React, JavaScript/TypeScript, modern web development
- Backend: Java, Spring Boot, RESTful APIs
- Full-stack development experience
- Understanding of software architecture and design patterns
-
Automation & AI: Experience with RPA (Robotic Process Automation) or automation tools
- Familiarity with AI/ML concepts and implementations
- Experience building intelligent agents or automated workflows
- Understanding of agentic AI systems
- Accounting & Finance: Background in accounting, finance, or consulting
- Understanding of accounting principles and financial reporting
- Experience with accounting software or financial systems
- Knowledge of VAT, tax compliance, and regulatory requirements
- Familiarity with UAE accounting standards and practices
-
Open Source: Interest in open-source projects and contributing to the community
- Experience contributing to open-source projects
- Understanding of open-source development workflows
- Commitment to collaborative development
-
Agentic AI: Interest in Agentic AI and intelligent automation
- Curiosity about how AI agents can transform business processes
- Enthusiasm for exploring cutting-edge AI technologies
- Interest in building practical AI solutions for real-world problems
- Experience with monorepo structures and npm workspaces
- Knowledge of Docker and containerization
- Understanding of PostgreSQL and database design
- Experience with testing frameworks (Jest, JUnit)
- Familiarity with CI/CD pipelines and DevOps practices
Note: These qualifications are preferred but not required. We value diverse perspectives and welcome contributors at all skill levels. If you're passionate about accounting software, automation, or open-source development, we'd love to have you contribute!
- Node.js 20.x (check
apps/frontend/.nvmrcfor exact version) - npm
- Java JDK 11+ (for backend)
- Maven (for backend)
# Clone the repository
git clone https://github.com/YOUR_USERNAME/SimpleAccounts-UAE.git
cd SimpleAccounts-UAE
# Install dependencies
npm install
# Install frontend dependencies
cd apps/frontend
npm install --legacy-peer-deps
cd ../..# Run frontend (development mode)
npm run frontend
# Run backend
npm run backend:run
# Build frontend
npm run frontend:build
# Build backend
npm run backend:buildSimpleAccounts-UAE/
├── apps/
│ ├── frontend/ # React frontend application
│ ├── backend/ # Java Spring Boot backend
│ └── agents/ # Agent applications
├── packages/ # Shared packages
├── deploy/ # Deployment configurations
└── docs/ # Documentation
- Use the bug report template
- Check if the bug has already been reported
- Include detailed steps to reproduce
- Include screenshots if applicable
- Specify your environment (OS, browser, versions)
- Use the feature request template
- Describe the problem you're trying to solve
- Explain your proposed solution
- Consider alternatives you've thought about
- Find an issue to work on, or create one
- Comment on the issue to let others know you're working on it
- Fork and branch from
develop - Write tests for your changes
- Follow coding standards (see below)
- Submit a PR against the
developbranch
- Update documentation if needed
- Add tests for new functionality
- Ensure all tests pass
- Follow the PR template
- Request review from maintainers
- Address review feedback
- Squash commits if requested
feature/- New features (e.g.,feature/invoice-export)fix/- Bug fixes (e.g.,fix/login-validation)docs/- Documentation changes (e.g.,docs/api-guide)refactor/- Code refactoring (e.g.,refactor/user-service)test/- Test additions (e.g.,test/auth-unit-tests)
- Use ESLint configuration provided
- Use Prettier for formatting
- Follow React best practices
- Write meaningful component names
- Use functional components with hooks
- Follow Java naming conventions
- Use meaningful variable and method names
- Write JavaDoc for public methods
- Keep methods focused and small
- Use dependency injection
- Write self-documenting code
- Keep functions/methods small and focused
- DRY (Don't Repeat Yourself)
- KISS (Keep It Simple, Stupid)
- Write tests for new functionality
Follow the Conventional Commits specification:
<type>(<scope>): <description>
[optional body]
[optional footer]
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(invoice): add PDF export functionality
fix(auth): resolve session timeout issue
docs(readme): update installation instructions
- Open a discussion
- Contact the team at support@simpleaccounts.com
Thank you for contributing!