File size: 3,228 Bytes
2d190aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Contributing to Sampling & Quantization Demo

Thank you for your interest in contributing! This educational tool is designed for teaching image analysis concepts.

## How to Contribute

### Reporting Issues

If you find bugs or have suggestions:
1. Check if the issue already exists in the GitHub Issues
2. Create a new issue with:
   - Clear description of the problem
   - Steps to reproduce (if it's a bug)
   - Expected vs actual behavior
   - Screenshots if applicable

### Suggesting Enhancements

We welcome ideas for educational improvements:
- Additional visualization methods
- New image processing concepts to demonstrate
- Better explanations of existing concepts
- Interactive exercises or quizzes
- Support for additional image formats

### Code Contributions

1. **Fork the repository**

2. **Create a feature branch:**
   ```bash
   git checkout -b feature/your-feature-name
   ```

3. **Make your changes:**
   - Follow the existing code style
   - Add comments for complex logic
   - Update documentation if needed

4. **Test your changes:**
   ```bash
   streamlit run app.py
   ```
   - Test all interactive features
   - Verify calculations are correct
   - Check edge cases

5. **Commit your changes:**
   ```bash
   git add .
   git commit -m "Add: Brief description of your changes"
   ```

6. **Push and create a Pull Request:**
   ```bash
   git push origin feature/your-feature-name
   ```
   Then create a PR on GitHub with a clear description.

## Code Style Guidelines

### Python Code

- Follow PEP 8 style guide
- Use meaningful variable names
- Add docstrings to functions:
  ```python
  def function_name(param):
      """
      Brief description.
      
      Args:
          param: Description
      
      Returns:
          Description of return value
      """
  ```

### Streamlit UI

- Keep UI simple and intuitive
- Use consistent markdown formatting
- Add helpful tooltips (help parameter in widgets)
- Organize content in logical sections

### Documentation

- Update README.md for major features
- Keep QUICKSTART.md up to date
- Add inline comments for complex algorithms
- Include references to educational sources

## Educational Content Guidelines

This is an educational tool, so clarity is paramount:

1. **Explanations should be:**
   - Accurate and technically correct
   - Easy to understand for graduate students
   - Progressive (simple concepts first)
   - Include visual examples

2. **Interactive elements should:**
   - Provide immediate feedback
   - Show clear cause-and-effect
   - Include reasonable default values
   - Have helpful tooltips

3. **Calculations should:**
   - Be transparent and explainable
   - Show formulas when relevant
   - Include units
   - Be verifiable

## Testing

Before submitting a PR, please verify:

- [ ] App runs without errors
- [ ] All sliders and controls work correctly
- [ ] File size calculations are accurate
- [ ] Images display properly
- [ ] Compression comparison works
- [ ] Educational content is clear
- [ ] No typos in text

## Questions?

Feel free to open an issue for discussion before starting major work.

## License

By contributing, you agree that your contributions will be licensed under the MIT License.