Thank you for your interest in contributing to this project!
- Code of Conduct
- Getting Started
- Development Workflow
- Coding Standards
- Commit Guidelines
- Pull Request Process
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the project
- Show empathy towards other contributors
-
Fork the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/Travel-Recommend.git cd Travel-Recommend -
Set up development environment
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt
-
Configure secrets
- Copy
.streamlit/secrets.toml.exampleto.streamlit/secrets.toml - Add your credentials
- Copy
main- Production-ready codedevelop- Integration branchfeature/*- New featuresfix/*- Bug fixesdocs/*- Documentation updates
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name- Make your changes
- Test thoroughly
- Update documentation if needed
- Commit with descriptive messages
- Follow PEP 8
- Use type hints where applicable
- Maximum line length: 100 characters
- Use docstrings for all functions and classes
def calculate_distance(lat1: float, lon1: float, lat2: float, lon2: float) -> float:
"""
Calculate distance between two points using Haversine formula.
Args:
lat1: Latitude of first point
lon1: Longitude of first point
lat2: Latitude of second point
lon2: Longitude of second point
Returns:
Distance in miles
"""
# Implementation here
pass- Pages: Streamlit pages in
pages/ - Core Logic: Business logic in
src/ - Utilities: Helper functions in
utils/ - Tests: Test files in
tests/ - SQL: Database scripts in
sql/ - Config: Configuration in
config/ - Docs: Documentation in
docs/
<type>: <subject>
<body>
<footer>
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat: Add spatial proximity query support
- Implement point.distance() for Neo4j queries
- Add "near" keyword detection
- Update LLM prompts with spatial examples
Closes #123fix: Resolve indentation error in Smart Recommendations
- Fixed expander indentation
- Updated rec_tab1, rec_tab2, rec_tab3 blocks
- All syntax errors resolved- Code follows style guidelines
- All tests pass
- Documentation is updated
- No merge conflicts with
develop - Commits are clean and descriptive
-
Push your branch
git push origin feature/your-feature-name
-
Create Pull Request on GitHub
- Base:
develop - Compare:
feature/your-feature-name - Fill in the PR template
- Base:
-
PR Template
## Description Brief description of changes ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Documentation update - [ ] Refactoring ## Testing - [ ] Tested locally - [ ] All pages work correctly - [ ] No console errors ## Screenshots (if applicable) Add screenshots here ## Checklist - [ ] Code follows style guidelines - [ ] Documentation updated - [ ] Tests added/updated
- All PRs require 1 approval
- Hotragn is the primary reviewer
- Address review comments promptly
- Be open to feedback
git checkout develop
git pull origin develop
git merge feature/your-feature-name
git push origin develop
git branch -d feature/your-feature-name# Run all tests
python -m pytest tests/
# Run specific test
python -m pytest tests/test_auth.py
# Run with coverage
python -m pytest --cov=src tests/- Place tests in
tests/directory - Name test files
test_*.py - Use descriptive test names
def test_user_authentication_success():
"""Test successful user login"""
result = authenticate_user("testuser", "password123")
assert result is not None
assert result['username'] == "testuser"- Update README.md for major changes
- Update relevant docs in
docs/folder - Add docstrings to new functions
- Update TECHNICAL_DOCUMENTATION.md for architecture changes
- Use Markdown for all documentation
- Include code examples where helpful
- Add diagrams for complex concepts (Mermaid)
- Keep documentation up-to-date
**Describe the bug**
Clear description of the bug
**To Reproduce**
Steps to reproduce:
1. Go to '...'
2. Click on '...'
3. See error
**Expected behavior**
What you expected to happen
**Screenshots**
If applicable
**Environment**
- OS: [e.g., Windows 11]
- Python version: [e.g., 3.14]
- Browser: [e.g., Chrome 120]**Feature Description**
Clear description of the feature
**Use Case**
Why is this feature needed?
**Proposed Solution**
How should it work?
**Alternatives Considered**
Other approaches you've thought aboutCurrent focus areas:
- Performance optimization
- Enhanced AI features
- Multi-state support
- Mobile responsiveness
- Additional visualizations
- Email: pettugani.h@northeastern.edu
- GitHub Issues: For bugs and features
- GitHub Discussions: For questions
Your contributions make this project better. We appreciate your time and effort!
Project Team: Hotragn, Tirdesh, Amantha
Last Updated: December 2025
