How to contribute
Getting Started
- Fork the repository and clone your fork locally
- Follow the setup instructions provided in the README
Branching
- Create a new branch from master for any of your work
- Use the following naming convention for the branches:
- feature/xyz (for features)
- bugfix/xyz (for bugs)
Development Standards
Code Style: Use Prettier/ESLint for consistent formatting. Run the following command before each commit:
npm run lintSmall, Focused changes: Keep PRs focused on a single topic. Smaller PRs are easier to review
Documentation: Update the README or any of the other docs if your changes setup, usage or architecture
Database Changes
Accessibility Tools uses Sequelize + SQLite to manage the database. The folder structure for the database related files is as follows:
- src/electron/db/
- models/ : stores all the sequelize models that are translated into sqlite tables
- system/ : stores all the system models. The tables created are prefixed with
system_
- system/ : stores all the system models. The tables created are prefixed with
- migrations/ : stores sequelize migration files
- models/ : stores all the sequelize models that are translated into sqlite tables
For any updates to the database structure, the following steps need to be followed:
Create a new migration file under src/electron/db/migrations/. This file should have an incremental version based on the existing migration files
Update the relevant model files under src/electron/db/models/.
Update the package.json version.
Run the app using:
npm run devThis will run the migration file, sync the models and update the system data locally, if there are any changes there.
Pull Request Process
- Push your branch
- Open a Pull Request (PR) to master
- Respond to review feedback promptly
- Your PR will be merged once it's approved and passes CI checks
Community
All contributors are expected to follow our Code of conduct to ensure a welcoming environment for everyone.
