Thank you for your interest in contributing to the OS Simulator!
- Fork the repository
- Clone your fork
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Submit a pull request
See Installation Guide for setting up your development environment.
- Use functional components with hooks
- Use
camelCasefor variables and functions - Use
PascalCasefor component names - Add JSDoc comments for complex functions
// Good
const handleProcessAdd = useCallback((process) => {
setProcesses([...processes, process]);
}, [processes]);
// Component
const MetricsPanel = ({ metrics }) => {
return <div className="metrics-panel">...</div>;
};- Follow PEP 8 style guide
- Use type hints
- Add docstrings for functions and classes
def calculate_waiting_time(process: Process) -> int:
"""
Calculate waiting time for a process.
Args:
process: The process to calculate for
Returns:
Waiting time in time units
"""
return process.completion_time - process.arrival_time - process.burst_time- Use CSS variables for colors and spacing
- Use BEM-like naming:
.component-name__element--modifier - Keep specificity low
.metrics-panel {
background: var(--card-bg);
}
.metrics-panel__item {
padding: var(--space-md);
}
.metrics-panel__item--highlighted {
border-color: var(--primary);
}├── frontend/src/
│ ├── pages/ # Main page components
│ ├── components/ # Reusable components
│ ├── services/ # API calls
│ └── utils/ # Helper functions
├── backend/
│ ├── schedulers/ # Scheduling algorithms
│ ├── memory/ # Memory management
│ ├── filesystem/ # File system
│ └── routes/ # API endpoints
- Create
backend/schedulers/your_algorithm.py - Extend
BaseSchedulerclass - Implement
schedule()method - Register in
schedulers/__init__.py - Add to frontend algorithm selector
- Add tests
- Create backend logic in
backend/memory/ - Create API routes in
backend/routes/ - Create frontend page in
frontend/src/pages/ - Add navigation from Memory Management page
- Document in
docs/modules/
cd backend
pytest tests/ -v- Test all algorithms with demo scenarios
- Verify metrics calculations
- Check responsive design
- Test keyboard shortcuts
- Title: Clear, descriptive title
- Description: Explain what and why
- Testing: Describe how you tested
- Screenshots: Include for UI changes
- Documentation: Update docs if needed
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
## Testing
How was this tested?
## Screenshots
(if applicable)Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Browser/OS version
- Screenshots if applicable
- Additional scheduling algorithms
- More memory management features
- Enhanced visualizations
- Mobile responsiveness
- Improve error messages
- Add tooltips
- Fix typos in documentation
- Add preset scenarios
- Tutorials
- Video guides
- Translations
- Be respectful and constructive
- Help others learn
- Share your educational use cases
Educational project - contributions remain open for learning purposes.