n7 0.8.87

Mass Effect Knowledge Base Terminal UI - Explore the lore of the Mass Effect trilogy
# Contributing to N7 Knowledge Base

Thank you for your interest in contributing to the N7 Knowledge Base! This document provides guidelines and information for contributors.

## How to Contribute

### Reporting Bugs

If you find a bug, please open an issue with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Your environment (OS, terminal, Rust version)
- Screenshots if applicable

### Suggesting Features

Feature suggestions are welcome! Please open an issue with:
- A clear description of the feature
- Why it would be useful
- How it might work
- Any implementation ideas you have

### Adding Content

One of the easiest ways to contribute is by adding more Mass Effect lore content:

1. **Races** - Add new species from the Mass Effect universe
2. **Places** - Add more locations and planets
3. **Ships** - Add more vessels and fleets
4. **Characters** - Add more characters from the trilogy

To add content:
1. Fork the repository
2. Edit the appropriate JSON file in `data/`
3. Follow the existing format exactly
4. Ensure all information is accurate to Mass Effect canon
5. Submit a pull request

### Code Contributions

#### Getting Started

1. Fork the repository
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/n7.git`
3. Create a branch: `git checkout -b feature/your-feature-name`
4. Make your changes
5. Test your changes: `cargo test && cargo build --release`
6. Commit with clear messages
7. Push to your fork
8. Open a pull request

#### Code Style

- Follow Rust conventions and idioms
- Use `cargo fmt` to format your code
- Run `cargo clippy` and address warnings
- Add comments for complex logic
- Keep functions focused and small
- Use meaningful variable and function names

#### Project Structure

```
src/
├── main.rs          # Entry point
├── app.rs           # Main application loop
├── state.rs         # State management
├── events.rs        # Input handling
├── ui/              # UI components
│   ├── mod.rs       # Main rendering logic
│   ├── theme.rs     # Color theme
│   └── widgets.rs   # Custom widgets
└── data/            # Data models and loading
    ├── mod.rs
    ├── models.rs
    └── loader.rs

data/                # Content files
├── races.json
├── places.json
├── ships.json
└── characters.json
```

#### Pull Request Guidelines

- Keep PRs focused on a single feature or fix
- Update documentation if needed
- Add tests for new functionality
- Ensure all tests pass
- Update CHANGELOG.md
- Reference related issues

### Testing

```bash
# Run tests
cargo test

# Check compilation
cargo check

# Build release version
cargo build --release

# Check code style
cargo clippy
```

## Development Setup

### Prerequisites

- Rust 1.70 or higher
- Git
- A terminal that supports 256 colors

### Building from Source

```bash
git clone https://github.com/x8code/n7.git
cd n7
cargo build
cargo run
```

## Code of Conduct

### Our Standards

- Be respectful and inclusive
- Welcome newcomers
- Accept constructive criticism
- Focus on what's best for the project
- Show empathy towards others

### Unacceptable Behavior

- Harassment or discriminatory language
- Trolling or insulting comments
- Personal or political attacks
- Publishing others' private information
- Other unprofessional conduct

## Questions?

Feel free to open an issue with the question label, or reach out to the maintainers.

## License

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

---

Thank you for contributing to the N7 Knowledge Base! Every contribution helps make this project better for the Mass Effect community.