First off, thank you for considering contributing to Journal App! It's people like you that make Journal App such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to rickaryadas@gmail.com.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots and animated GIFs if possible
- Include your environment details (Java version, OS, etc.)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and the expected behavior
- Explain why this enhancement would be useful
- Fill in the required template
- Follow the Java styleguides
- Include appropriate test cases
- End all files with a newline
- Avoid platform-dependent code
-
Fork the repository
-
Clone your fork:
git clone https://github.com/ridash2005/SpringBoot-Journal-App.git cd journalApp -
Add upstream remote:
git remote add upstream https://github.com/ridash2005/SpringBoot-Journal-App.git
-
Create a new branch for your feature:
git checkout -b feat/your-feature-name
-
Set up your development environment (see README.md)
We follow the Google Java Style Guide. Key points:
- Use 4 spaces for indentation
- Line length should not exceed 100 characters
- Use meaningful variable names
- Add comments for complex logic
- Document public methods with JavaDoc
We follow Conventional Commits:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (no logic change)refactor: Code refactoringperf: Performance improvementstest: Adding or updating testschore: Build process or dependenciesci: CI/CD configuration
Examples:
feat: add sentiment analysis for entries
fix: resolve JWT token validation error
docs: update API documentation
test: add unit tests for UserService
-
Write tests for all new features
-
Ensure all existing tests pass
-
Run tests locally before pushing:
mvn clean test -
Test coverage should be > 80% for new code
-
Use meaningful test names following pattern:
testWhenConditionThenExpectedResult
Example test:
@Test
public void testWhenValidUserThenReturnTrue() {
User user = new User();
user.setUserName("testuser");
user.setPassword("password123");
boolean result = userService.saveNewUser(user);
assertTrue(result);
}-
Keep your branch up to date:
git fetch upstream git rebase upstream/master
-
Push your changes:
git push origin feat/your-feature-name
-
Create a Pull Request with:
- Clear description of changes
- Reference to related issues (e.g., "Closes #123")
- Screenshots if UI-related
- Test results
-
PR Title format:
[TYPE] Brief descriptionExample:
[FEATURE] Add sentiment analysis for journal entries
- At least one maintainer must review the PR
- All CI checks must pass
- Code coverage should not decrease
- Discussion may be needed for architectural decisions
If you discover a security vulnerability, please email rickaryadas@gmail.com instead of using the issue tracker. Please do not publicly disclose the vulnerability until it has been addressed.
- Update README.md if adding new features
- Update CONTRIBUTING.md for process changes
- Add code comments for complex logic
- Include JavaDoc for public APIs
- Update CHANGELOG if it exists
bug: Confirmed bugs or reports that are very likely to be bugsenhancement: New feature or requestdocumentation: Improvements or additions to documentationgood first issue: Good for newcomershelp wanted: Extra attention is neededquestion: Further information is requestedwontfix: This will not be worked on
The project is maintained by Rickarya Das. Maintainers can merge PRs, manage issues, and make architectural decisions.
- GitHub Discussions for questions and ideas
- GitHub Issues for bugs and features
- Email for security concerns
By contributing to Journal App, you agree that your contributions will be licensed under its MIT License.
Contributors who have made significant contributions will be recognized in the project README.
Thank you for contributing to Journal App! 🎉