First off, thank you for considering contributing to GammaLedger! It's people like you who make GammaLedger such a great tool for options traders worldwide.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Coding Standards
- Testing Guidelines
- Documentation
This project and everyone participating in it is governed by respect, collaboration, and inclusiveness. By participating, you are expected to uphold this standard. Please report unacceptable behavior to the project maintainers.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples (screenshots, code snippets)
- Describe the behavior you observed and what you expected
- Include browser version and operating system
- Include any error messages from browser console
Feature suggestions are welcome! Please:
- Use a clear and descriptive title
- Provide a detailed description of the suggested feature
- Explain why this feature would be useful to most GammaLedger users
- List any alternative solutions or features you've considered
- Include mockups or examples if applicable
- Bug Fixes: Browse open issues with the
buglabel - New Strategy Support: Add support for butterflies, calendars, diagonals
- Broker Integrations: Add import support for TD Ameritrade, Schwab, E*TRADE
- UI/UX Improvements: Enhance the interface and user experience
- Documentation: Improve README, add tutorials, create video guides
- Testing: Write unit tests and integration tests
- Internationalization: Translate to other languages
- AI Coach Enhancements: Improve trade analysis and coaching features
- Performance Optimization: Speed up calculations and rendering
- Accessibility: Make the app more accessible to all users
- Modern web browser (Chrome, Firefox, or Edge)
- Text editor or IDE (VS Code recommended)
- Basic knowledge of HTML, CSS, and JavaScript
- Git for version control
-
Fork the repository on GitHub
-
Clone your fork to your local machine:
git clone https://github.com/YOUR-USERNAME/GammaLedger.git
cd GammaLedger- Create a branch for your feature:
git checkout -b feature/your-feature-name-
Open the application:
- Simply open
index.htmlin your browser - No build process required!
- Use browser DevTools for debugging
- Simply open
-
Make your changes and test thoroughly
-
Commit your changes:
git add .
git commit -m "Add: Brief description of your changes"- Push to your fork:
git push origin feature/your-feature-name- Create a Pull Request on GitHub
-
Ensure your code follows the coding standards (see below)
-
Update documentation for any changed functionality
-
Add tests if applicable
-
Test in multiple browsers:
- Chrome/Edge
- Firefox
- Safari (if possible)
-
Update the README.md if you've added features
-
Write a clear PR description:
- What changes you made
- Why you made them
- How to test them
- Screenshots/videos if UI changes
-
Link any related issues (e.g., "Fixes #123")
-
Be responsive to feedback and review comments
Your PR will be evaluated on:
- Code quality: Clean, readable, well-commented
- Functionality: Works as intended without bugs
- Testing: Adequately tested across browsers
- Documentation: Changes are documented
- Compatibility: Doesn't break existing features
- Performance: Doesn't negatively impact app speed
- Use vanilla JavaScript - no frameworks or heavy libraries
- ES6+ features are encouraged (const/let, arrow functions, template literals)
- Avoid global variables - use modules and closures
- Use meaningful variable names - descriptive over clever
Before submitting a PR, manually test:
-
Basic Functionality
- Can create new trades
- Can edit existing trades
- Can delete trades
- Can import/export data
-
Browser Compatibility
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest, if possible)
-
Responsiveness
- Desktop (1920x1080, 1366x768)
- Tablet (768px width)
- Mobile (375px width)
-
Performance
- Load time acceptable
- Smooth scrolling
- No lag with 1000+ trades
-
Error Handling
- Invalid inputs handled gracefully
- Import errors display helpful messages
- Database errors don't crash app
(Coming soon - help us build the test suite!)
- Add JSDoc comments to all public functions
- Explain complex algorithms with inline comments
- Keep comments up-to-date when code changes
When adding features, update:
- Feature list
- Usage instructions
- Screenshots (if UI changes)
- FAQ (if new common questions)
Help new users by creating:
- Video tutorials (upload to YouTube)
- Blog posts (add to
docs/folder) - Example workflows (common trading scenarios)
- Create an issue with the
questionlabel - Start a discussion in GitHub Discussions
- Review existing docs in the repository's Wiki
Contributors are recognized in:
- Release notes
- Contributors section (coming soon)
- Special mentions for significant contributions
Your contributions make GammaLedger better for thousands of options traders worldwide. Whether you're fixing a typo or adding a major feature, every contribution matters!
Happy coding & trading! 🚀