electron_cloud_visualizer / CONTRIBUTING.md
AK51's picture
Upload 20 files
cdfc1f1 verified
# Contributing to Electron Cloud Visualizer
Thank you for your interest in contributing to the Electron Cloud Visualizer project!
## How to Contribute
### Reporting Bugs
If you find a bug, please create an issue with:
- A clear description of the problem
- Steps to reproduce the issue
- Expected vs actual behavior
- Browser and OS information
- Screenshots if applicable
### Suggesting Features
Feature suggestions are welcome! Please create an issue describing:
- The feature you'd like to see
- Why it would be useful
- How it might work
### Code Contributions
1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/your-feature-name`
3. **Make your changes**
4. **Test thoroughly** in multiple browsers
5. **Commit with clear messages**: `git commit -m "Add feature: description"`
6. **Push to your fork**: `git push origin feature/your-feature-name`
7. **Create a Pull Request**
### Code Style
- Use clear, descriptive variable and function names
- Add comments for complex logic
- Follow existing code formatting
- Keep functions focused and modular
- Document public APIs with JSDoc comments
### Testing
Before submitting a PR:
- Test in Chrome, Firefox, and Safari
- Verify all features work correctly
- Check console for errors
- Test with different atomic numbers
- Verify performance with high particle counts
## Development Setup
1. Clone the repository
2. Open `index.html` in a web browser
3. No build process required - it's vanilla JavaScript!
## Project Structure
- `js/constants.js` - Physical constants and configuration
- `js/math-utils.js` - Mathematical utilities
- `js/quantum-mechanics.js` - Wave function calculations
- `js/particle-sampler.js` - Particle generation
- `js/electron-configuration.js` - Electron configuration logic
- `js/visualization-renderer.js` - Three.js rendering
- `js/gui-controller.js` - User interface
- `js/app-controller.js` - Application coordination
- `js/main.js` - Entry point
## Questions?
Feel free to open an issue for any questions about contributing!