Welcome to the Intelligent Mobility Systems Lab (SIMOVI) at the University of Costa Rica! We appreciate your interest in contributing to our open-source public transportation research projects.
Important
Research Context: Our projects focus on intelligent mobility systems, public transportation data analysis, and GTFS-based solutions. All contributions should align with our mission of improving transit accessibility and operational efficiency through digital technologies.
By participating in this project, you agree to abide by our research ethics and maintain professional standards in all interactions. We foster an inclusive environment that welcomes contributors from the global transportation and software development communities.
Before contributing, please:
- 🗺️ Review the SIMOVI Roadmap
- 📚 Read our System Design Principles
- 📚 Read our Data Principles
- 🚀 Familiarize yourself with our Technology Stack.
- 🏗️ Understand our system architecture in the Organization Profile
- 📊 Familiarize yourself with Technology Readiness Levels
- Python: Use Python 3.9+ for backend services
- Node.js: Use Node.js 18+ for frontend applications
- Django: Follow Django 4.2+ best practices for web applications
- GTFS: Understand GTFS and GTFS-Realtime specifications
- API Standards: Follow REST API design principles
All SIMOVI projects MUST follow Semantic Versioning 2.0.0:
MAJOR.MINOR.PATCH
- MAJOR: Breaking changes to APIs or core functionality
- MINOR: New features that are backward compatible
- PATCH: Bug fixes and maintenance updates
1.0.0→2.0.0: Breaking change to GTFS API structure1.0.0→1.1.0: New real-time vehicle tracking feature1.0.0→1.0.1: Fix for stop time calculation bug
We use Conventional Commits specification:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
feat: New feature (MINOR version)fix: Bug fix (PATCH version)docs: Documentation changesstyle: Code formatting, no logic changesrefactor: Code restructuring without feature changesperf: Performance improvementstest: Adding or updating testsbuild: Build system or dependency changesci: CI/CD configuration changeschore: Maintenance tasks
gtfs: GTFS data handlingrealtime: Real-time data processingapi: API endpointsmobile: Mobile applicationsweb: Web interfacesdata: Data analysis componentsmcp: Model Context Protocol features
feat(gtfs): add stop time estimation algorithm
fix(realtime): resolve vehicle position accuracy issue
docs(api): update endpoint documentation for v2.1
perf(data): optimize route calculation queriesUse descriptive branch names with prefixes:
feature/- New featuresfix/- Bug fixesdocs/- Documentation updatesrefactor/- Code refactoringrelease/- Release preparation
feature/gtfs-realtime-integration
fix/stop-time-calculation-error
docs/api-endpoint-examples
refactor/database-query-optimization
release/v2.1.0Every repository MUST maintain a CHANGELOG.md file following Keep a Changelog format:
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- New GTFS-Realtime vehicle position tracking
### Changed
- Improved stop time estimation accuracy
### Fixed
- Route calculation performance issues
## [2.1.0] - 2025-01-15
### Added
- Real-time vehicle tracking dashboard
- MCP server integration for AI agents
### Changed
- Updated API response format for better compatibility
### Deprecated
- Legacy v1 API endpoints (will be removed in v3.0.0)
### Fixed
- Memory leak in data processing pipeline- Added: New features
- Changed: Changes in existing functionality
- Deprecated: Features to be removed in future versions
- Removed: Features removed in this version
- Fixed: Bug fixes
- Security: Security improvements
- ✅ Tests: Ensure all tests pass
- ✅ Documentation: Update relevant documentation
- ✅ CHANGELOG: Add entry to
CHANGELOG.md - ✅ Version: Update version if applicable
- ✅ TRL: Update Technology Readiness Level if changed
## Description
Brief description of changes and motivation.
## Type of Change
- [ ] Bug fix (PATCH)
- [ ] New feature (MINOR)
- [ ] Breaking change (MAJOR)
- [ ] Documentation update
- [ ] Performance improvement
## Transportation Context
- [ ] GTFS data handling
- [ ] Real-time vehicle tracking
- [ ] User interface improvement
- [ ] Data analysis enhancement
- [ ] API endpoint modification
## Testing
- [ ] Unit tests added/updated
- [ ] Integration tests pass
- [ ] Manual testing completed
## Documentation
- [ ] Code comments updated
- [ ] API documentation updated
- [ ] README.md updated if needed
- [ ] CHANGELOG.md updated
## TRL Impact
Current TRL: [X] → New TRL: [Y]
Justification: Brief explanation of readiness level change.- Automated Checks: CI/CD pipeline must pass
- Code Review: At least one maintainer approval required
- Research Alignment: Verify alignment with SIMOVI research goals
- Documentation Review: Ensure adequate documentation
- Testing Verification: Confirm test coverage and quality
- 📝 Update CHANGELOG.md with release notes
- 🏷️ Tag release with semantic version
- 📦 Package release (if applicable)
- 📢 Announce release in appropriate channels
- 📊 Update TRL if technology readiness changed
## SIMOVI [Project Name] v2.1.0
### 🚌 Public Transportation Features
- Enhanced GTFS-Realtime vehicle position accuracy
- New stop time prediction algorithms
### 🔧 Technical Improvements
- Optimized database queries for route calculations
- Updated API response formats
### 📊 Research Impact
- TRL advancement from 4 to 5 (validated in relevant environment)
- Integration with University of Costa Rica transit system
### 🐛 Bug Fixes
- Fixed memory leak in data processing pipeline
- Resolved calculation errors in arrival time estimates- Style: Follow PEP 8 with Black formatter
- Type Hints: Use type annotations for all functions
- Documentation: Docstrings for all public methods
- Testing: Minimum 80% code coverage
- Style: Use Prettier and ESLint
- TypeScript: Prefer TypeScript over JavaScript
- Documentation: JSDoc comments for public APIs
- Testing: Jest for unit tests, Cypress for E2E
- Models: Clear field names and relationships
- Views: Use class-based views when appropriate
- URLs: RESTful URL patterns
- Settings: Environment-based configuration
- README.md: Clear setup and usage instructions
- API Documentation: OpenAPI/Swagger specifications
- Architecture: System design documentation
- Examples: Working code examples for key features
- Methodology: Document research methods used
- Data Sources: Cite transportation data sources
- Algorithms: Explain custom algorithms developed
- Validation: Document testing with real transit data
Use our issue templates:
- Language: Primary language is English for global collaboration
- Respectful: Maintain professional academic discourse
- Constructive: Provide actionable feedback
- Research-Focused: Keep discussions aligned with transportation research goals
- Research: Cite relevant academic sources
- Code: Acknowledge code contributors
- Data: Credit transportation data providers
- Collaboration: Recognize institutional partnerships
- 📧 Email: Contact SIMOVI lab maintainers
- 💬 Issues: Use GitHub issues for technical questions
- 📚 Documentation: Check project README and wiki
- 🎓 Research: Review published papers and documentation
Thank you for contributing to advancing intelligent mobility systems research! Your contributions help improve public transportation accessibility and efficiency worldwide.
Universidad de Costa Rica - SIMOVI Lab
Intelligent Mobility Systems Laboratory