Thank you for your interest in contributing to SinSo-API — the open-source Sinhala Song Lyrics API 🇱🇰!
Your contributions help promote Sinhala music, culture, and open-source development.
This guide will help you get started with contributing, reporting issues, or suggesting improvements.
- How to Contribute
- Setting Up the Project
- Database Setup
- Branch, Commit & Comment Conventions
- Ways to Contribute
- Coding Guidelines
- Commit & PR Guidelines
- Community Rules
- Contact
Contributing is simple!
- Fork the repository
- Create a branch for your changes
- Make your edits (fix bugs, add features, write docs, etc.)
- Commit and push your branch
- Open a Pull Request (PR)
Once reviewed, your contribution will be merged if it fits the project goals.
We encourage all kinds of contributions — code, docs, ideas, testing, or even just feedback!
git clone https://github.com/<your-username>/SinSo-API.git
cd SinSo-APIOpen the project in your preferred IDE (e.g., IntelliJ IDEA, VS Code, Eclipse).
Make sure you have Java 17+ and Maven installed.
mvn clean installThe main production database (SinSo.db) is encrypted using git-crypt for security reasons. For development and testing, you can use the unencrypted sample database. 🔽 Steps to Set Up the Development Database
wget http://sinso-api.github.io/SinSo_Dev.db -O SinSo_Dev.dbOr manually download it from : http://sinso-api.github.io/SinSo_Dev.db
SinSo-API/src/main/resources/db/Update your configuration In src/main/resources/application.properties, change the database reference:
spring.datasource.url=jdbc:sqlite::resource:db/SinSo_Dev.dbmvn spring-boot:runYou’re now ready to start developing with the sample database 🎵
Before pushing your changes to GitHub:
- Revert the application.properties file
- Change the database path back to the original:
spring.datasource.url=jdbc:sqlite:src/main/resources/db/SinSo.db
Do NOT stage or commit the sample/Dev database
Make sure the following file is not added to Git:
src/main/resources/db/SinSo_Dev.db
Check before committing:
- git status
- Never commit decrypted or development database files — they will be rejected during PR review.
The main database (SinSo.db) is encrypted using git-crypt to protect original copyrighted song data. If you’re a core contributor or require access to the real dataset:
- Generate a new GPG key pair.
- Send your public key file (publickey.asc) to: 📧 vishal@vishalrashmika.com
- Send a small note of what you're planning to update in the database.
Once approved, your key will be added to the project’s git-crypt keyring, allowing you to decrypt secure files automatically.
To maintain a clean and consistent git history, we use the following conventions:
- Create branches using the format specified in : https://conventional-branch.github.io/
- Create commits using the format specified in : https://www.conventionalcommits.org/en/v1.0.0/
- Create issues and code reviews using the format specified in : https://conventionalcomments.org/
- Add new features or API endpoints
- Improve documentation or README files
- Report bugs or suggest enhancements
- Help with testing and performance improvements
- Create examples or tutorials using the API
- Follow Java naming conventions and Spring Boot best practices
- Keep your code clean, modular, and well-documented
- Use meaningful commit messages
- Avoid hardcoding secrets or credentials
- Add comments or Javadoc for public methods
- Be respectful and supportive of others
- Avoid spam or irrelevant content
- Follow open-source ethics and licensing
- Credit original authors where applicable
For questions, suggestions, or to request git-crypt access: 📧 vishal@vishalrashmika.com