CONTRIBUTING.md
Rama master · réplica de lectura del repositorio original.
# Contributing to SteamSelfGifter
Thank you for considering contributing to SteamSelfGifter!
The maintainer builds this project with [Conclave](https://github.com/kernelcoffee/Conclave), a Claude Code agent team that plans, reviews and tests every change against the project's conventions. You do not need it to contribute: a pull request written by hand is reviewed the same way.
## Getting Started
1. Fork the repository
2. Clone your fork
3. Set up development environment (see README.md)
4. Create a feature branch
5. Make your changes
6. Submit a pull request
## Development Setup
### Backend
```bash
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest # Verify setup
```
### Frontend
```bash
cd frontend
npm install
npm test # Verify setup
```
### Data directory
The backend picks its data directory at runtime (`get_data_dir()` in
`backend/src/core/config.py`): `/config` if it exists (the Docker volume,
mounted from `./config` by the compose file), otherwise `./data` relative to
the working directory — i.e. `backend/data/` when running uvicorn from
`backend/`. Each holds a `steamselfgifter.db` and `app.log`, and both are
gitignored, so a checkout that has seen both local and container runs will
have two databases; check which one your process is using before inspecting
data.
## Guidelines
### Code Style
- **Python**: Follow PEP 8, use type hints
- **TypeScript**: Use strict mode, define interfaces
### Pull Requests
- One feature/fix per PR
- Include tests for new functionality
- Update documentation if needed
- Keep commits focused and well-described
### Commit Messages
Use clear, descriptive commit messages:
```
Add safety check toggle to settings page
Fix timezone handling in giveaway end times
Update API documentation for new endpoints
```
## Testing
### Backend
```bash
cd backend
pytest # All tests
pytest --cov=src # With coverage
```
### Frontend
```bash
cd frontend
npm test # All tests
npm run test:coverage # With coverage
```
## Reporting Issues
- Check existing issues first
- Include reproduction steps
- Provide environment details (OS, Python/Node version)
## Security
If you find a security vulnerability, please email the maintainer directly instead of opening a public issue.
## Questions?
Open an issue for questions or discussion.