Skip to content

Commit 364ce15

Browse files
authored
Docs: Update setup guides and add contribution guidelines (#24)
* Update Development Setup Documentation Add standardized project documentation: - Create root CONTRIBUTING.md with quick reference - Add detailed contribution guidelines with security focus - Create commit convention standards for consistency - Add professional CODE_OF_CONDUCT.md - Remove incorrect technology assumptions across all documents - Standardize project structure descriptions - Ensure consistent security information - Improve cross-references between documentation files
1 parent ed0aba1 commit 364ce15

File tree

11 files changed

+1225
-114
lines changed

11 files changed

+1225
-114
lines changed

CODE_OF_CONDUCT.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in the BitVault project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to creating a positive environment include:
10+
11+
* Using welcoming and inclusive language
12+
* Being respectful of differing viewpoints and experiences
13+
* Gracefully accepting constructive criticism
14+
* Focusing on what is best for the community and project
15+
* Showing empathy towards other community members
16+
17+
Examples of unacceptable behavior include:
18+
19+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
20+
* Trolling, insulting/derogatory comments, and personal or political attacks
21+
* Public or private harassment
22+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
23+
* Other conduct which could reasonably be considered inappropriate in a professional setting
24+
25+
## Our Responsibilities
26+
27+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28+
29+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30+
31+
## Scope
32+
33+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account,

CONTRIBUTING.md

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# Contributing to BitVault Wallet
2+
3+
Thank you for your interest in contributing to BitVault Wallet! This document provides guidelines and instructions for contributing to this project.
4+
5+
## Code of Conduct
6+
7+
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md). We expect all contributors to adhere to these guidelines to ensure a positive and respectful community.
8+
9+
## Security Considerations
10+
11+
BitVault is a Bitcoin wallet application that handles sensitive cryptographic operations and user funds. Security is our highest priority.
12+
13+
**Before contributing, please review our [Security Policy](SECURITY.md).**
14+
15+
When working on features that involve:
16+
- Cryptographic operations
17+
- Key management
18+
- Transaction handling
19+
- Network communication
20+
- Data storage
21+
22+
Please pay special attention to the security implications of your changes and document any security considerations in your pull requests.
23+
24+
For security issues, please follow the responsible disclosure process outlined in our [Security Policy](SECURITY.md) rather than filing a public issue.
25+
26+
## Project Overview
27+
28+
### Project Structure
29+
30+
BitVault is a Rust workspace project with the following crates:
31+
- `bitvault-app` - Main application crate that ties everything together
32+
- `bitvault-core` - Core wallet functionality and cryptographic operations
33+
- `bitvault-common` - Shared utilities and types
34+
- `bitvault-ipc` - Inter-process communication between components
35+
- `bitvault-ui` - User interface components
36+
37+
### Prerequisites
38+
39+
- Rust (latest stable)
40+
- Cargo (Rust package manager)
41+
- Familiarity with Bitcoin concepts (for core functionality)
42+
43+
### Setting Up Development Environment
44+
45+
1. Fork the repository
46+
2. Clone your fork locally
47+
3. Install dependencies with `make setup`
48+
4. Start the development server with `make dev`
49+
50+
## Development Workflow
51+
52+
### Branching Strategy
53+
54+
- `main` branch is always deployable
55+
- Create feature branches from `main` using the format `feature/your-feature-name`
56+
- Create bugfix branches using `fix/issue-description`
57+
58+
### Commit Messages
59+
60+
Follow conventional commits format:
61+
```
62+
type(scope): short description
63+
64+
Longer description if needed
65+
```
66+
67+
Types include:
68+
- `feat`: New feature
69+
- `fix`: Bug fix
70+
- `docs`: Documentation changes
71+
- `style`: Formatting changes
72+
- `refactor`: Code refactoring
73+
- `test`: Adding or updating tests
74+
- `chore`: Maintenance tasks
75+
76+
### Pull Requests
77+
78+
1. Update your feature branch with the latest changes from `main`
79+
2. Ensure tests pass with `make test`
80+
3. Ensure linting passes with `make lint`
81+
4. Open a PR against the `main` branch
82+
5. Fill out the PR template completely
83+
84+
### Code Review Process
85+
86+
All submissions require review before being merged. Reviewers will check for:
87+
- Functionality
88+
- Security considerations
89+
- Code quality
90+
- Test coverage
91+
- Documentation
92+
93+
## Quality Assurance
94+
95+
### Testing
96+
97+
- Write unit tests for new functionality
98+
- Ensure existing tests continue to pass
99+
- Include integration tests for components
100+
- For Bitcoin-specific functionality, include test vectors from the Bitcoin Core test suite where applicable
101+
102+
Run tests with:
103+
```
104+
make test
105+
```
106+
107+
### Documentation
108+
109+
- Update documentation when changing functionality
110+
- Document APIs using standard formats
111+
- Include examples where appropriate
112+
- Document security considerations explicitly
113+
114+
### Style Guide
115+
116+
- Rust: Follow Rustfmt conventions
117+
- Follow project-specific coding conventions
118+
119+
## License
120+
121+
By contributing to BitVault Wallet, you agree that your contributions will be licensed under the project's [Apache 2.0 License](LICENSE).

Makefile

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
.PHONY: dev build release test core-test ui-test security-test clean lint check all wasm docs
2+
3+
# Primary development targets
4+
dev:
5+
cargo run -p bitvault-app
6+
7+
build:
8+
cargo build --workspace
9+
10+
release:
11+
cargo build --workspace --release
12+
13+
# Test targets
14+
test:
15+
cargo test --workspace
16+
17+
core-test:
18+
cargo test -p bitvault-core
19+
20+
ui-test:
21+
cargo test -p bitvault-ui
22+
23+
security-test:
24+
cargo test -p bitvault-core --features security_tests
25+
./scripts/test-security-boundary.sh
26+
27+
# Security validation
28+
security-check:
29+
cargo audit
30+
cargo clippy --workspace -- -D warnings
31+
./scripts/check-security-boundaries.sh
32+
33+
# Cleanup
34+
clean:
35+
cargo clean
36+
find . -type f -name "*.rs.bk" -delete
37+
38+
# Code quality
39+
lint:
40+
cargo clippy --workspace -- -D warnings
41+
cargo fmt --all -- --check
42+
43+
check: lint security-check test
44+
45+
# Build wasm version (for future web interface)
46+
wasm:
47+
cd bitvault-ui && trunk build
48+
49+
# Run in development mode with security boundary logging
50+
dev-debug:
51+
BITVAULT_LOG=debug cargo run -p bitvault-app
52+
53+
# Run with process isolation verification
54+
dev-secure:
55+
BITVAULT_VERIFY_ISOLATION=1 cargo run -p bitvault-app
56+
57+
# Generate documentation
58+
docs:
59+
cargo doc --workspace --no-deps
60+
@echo "Documentation available at target/doc/bitvault_core/index.html"
61+
62+
# Build all variants
63+
all: clean build release wasm
64+
65+
# Default target
66+
.DEFAULT_GOAL := build

README.md

Lines changed: 77 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,104 @@
1-
# BitVault
1+
# BitVault Wallet
22

3-
A secure multi-signature wallet
3+
BitVault is a secure Bitcoin wallet built with Rust, focusing on security, reliability, and proper isolation of cryptographic operations.
44

5-
## Architecture
5+
## Project Structure
66

7-
BitVault uses a workspace structure with the following components:
8-
9-
- **bitvault-ui**: Leptos-based frontend (WASM)
10-
- **bitvault-app**: Tauri application shell
11-
- **bitvault-ipc**: IPC layer between app and core
12-
- **bitvault-core**: Secure cryptographic core
13-
- **bitvault-common**: Shared types and utilities
7+
BitVault is a Rust workspace project with the following crates:
8+
- `bitvault-app` - Main application crate that ties everything together
9+
- `bitvault-core` - Core wallet functionality and cryptographic operations
10+
- `bitvault-common` - Shared utilities and types
11+
- `bitvault-ipc` - Inter-process communication between components
12+
- `bitvault-ui` - User interface components
1413

1514
## Development Setup
1615

1716
### Prerequisites
1817

19-
Make sure you have installed the prerequisites for your OS: https://v2.tauri.app
20-
21-
For Arch Linux users, refer to the [Development Environment Setup](./docs/setup/arch-linux-setup.md) guide.
18+
- Rust (latest stable)
19+
- Cargo (Rust package manager)
20+
- Familiarity with Bitcoin concepts (for core functionality)
2221

23-
### Repository Access
22+
### Installation
2423

25-
To access the private repository, follow the [SSH setup instructions](./docs/setup/ssh-guide.md).
24+
1. Clone the repository:
25+
```
26+
git clone https://github.com/yourusername/BitVaultWallet.git
27+
cd BitVaultWallet
28+
```
2629

27-
### Recommended IDE Setup
30+
2. Install dependencies:
31+
```
32+
make setup
33+
```
2834

29-
[VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
35+
### Development
3036

31-
## Build and Run
37+
To start the development server:
38+
```
39+
make dev
40+
```
3241

33-
The project uses a Rust workspace structure. You can build and run using the Makefile or from individual component directories.
42+
This will launch the application in development mode.
3443

35-
### Using the Makefile
44+
### Building
3645

37-
Run the desktop app in development mode:
38-
```bash
39-
make dev
46+
To build the application for production:
4047
```
41-
42-
Run the UI only:
43-
```bash
44-
make ui
48+
make build
4549
```
4650

47-
Build the UI with trunk:
48-
```bash
49-
make trunk
50-
```
51+
This will create platform-specific binaries in the release directory.
52+
53+
### Testing
5154

52-
Run the Android app in development mode:
53-
```bash
54-
make android
55+
To run tests:
56+
```
57+
make test
5558
```
5659

57-
### From the Root Directory
60+
### Linting
5861

59-
Build all components:
60-
```bash
61-
cargo build --workspace
62+
To lint the codebase:
63+
```
64+
make lint
6265
```
6366

64-
Run tests for all components:
65-
```bash
66-
cargo test --workspace
67+
To automatically fix linting issues:
68+
```
69+
make lint-fix
6770
```
6871

69-
Then access at: http://localhost:1777
72+
## Documentation
73+
74+
For detailed documentation on the BitVault architecture, API, and security model, please refer to the [docs/](docs/) directory.
75+
76+
## Contributing
77+
78+
We welcome contributions to BitVault! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to make contributions.
79+
80+
This includes information on:
81+
- Code style and standards
82+
- Pull request process
83+
- Development workflow
84+
- Testing requirements
85+
86+
## Code of Conduct
87+
88+
This project adheres to a [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) that all contributors are expected to follow. Please read it before participating.
89+
90+
## Security
91+
92+
BitVault prioritizes security in handling Bitcoin keys and transactions. The wallet implements proper security isolation between UI components and core cryptographic operations.
93+
94+
Key security features include:
95+
- Separation of cryptographic operations from UI code
96+
- Secure entropy generation for key creation
97+
- Encrypted storage of sensitive data
98+
- Memory protection for private key operations
99+
100+
If you discover a security vulnerability, please refer to our [SECURITY.md](SECURITY.md) for the responsible disclosure process.
101+
102+
## License
103+
104+
[Apache License 2.0](LICENSE)

0 commit comments

Comments
 (0)