Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combining components description #270

Merged
merged 1 commit into from
Jan 26, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 66 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,22 @@ Embark on a journey of exploration, experimentation, and innovation with Asv.Dro
<img src="img/screenshot-settings.png" alt="settings" width="650" />
</p>

## 2. Getting Started
## 2. Different sets of components
Combine needed plugins and components to make application for your needs.
### Combining example:
#### Asv.Drones + SDR
<div align="center">
![image](https://github.com/asv-soft/asv-drones/assets/151620493/a241bccd-02bd-483a-8d19-fada6b7eb712)
![image](https://github.com/asv-soft/asv-drones/assets/151620493/b82dada0-f485-4458-a404-3c12cd6982b3)
</div>
#### Asv.Drones + GBS
<div align="center">
![image](https://github.com/asv-soft/asv-drones/assets/151620493/c21adb5f-e927-46b1-b003-1adbdee198f8)
![image](https://github.com/asv-soft/asv-drones/assets/151620493/0e3dcc47-02ac-4a77-ad2c-8ac36b9c1e1c)
![image](https://github.com/asv-soft/asv-drones/assets/151620493/17a86dc3-6fde-45c4-bb6e-0c51fe3b54d0)
</div>

## 3. Getting Started

### Setting Up the Development Environment

Expand Down Expand Up @@ -119,11 +134,11 @@ To ensure a smooth development experience, follow the steps below to set up your

Congratulations! Your development environment is now set up, and you are ready to start contributing to the project. If you encounter any issues during the setup process, refer to the project's documentation or reach out to the development team for assistance.

## 3. Code Structure
## 4. Code Structure

The organization of the codebase plays a crucial role in maintaining a clean, scalable, and easily understandable project. This section outlines the structure of our codebase, highlighting key directories and their purposes.

### 3.1 Solution Organization
### 4.1 Solution Organization

Our solution is organized the following way:

Expand Down Expand Up @@ -166,21 +181,21 @@ Our solution is organized the following way:
├── Shell/
└── ...

### 3.2 Naming Conventions
### 4.2 Naming Conventions

Consistent naming conventions are essential for code readability. Throughout the codebase, we follow the guidelines outlined [in our documentation](https://docs.asv.me/use-cases/for-developers)

These conventions contribute to a unified and coherent codebase.

By adhering to this organized structure and naming conventions, we aim to create a codebase that is easy to navigate, scalable, and conducive to collaboration among developers.

## 4. Coding Style
## 5. Coding Style

Maintaining a consistent coding style across the project enhances readability, reduces errors, and facilitates collaboration. The following guidelines outline our preferred coding style for C#:

### 4.1 C# Coding Style
### 5.1 C# Coding Style

#### 4.1.1 Formatting
#### 5.1.1 Formatting

- **Indentation:** Use tabs for indentation. Each level of indentation should consist of one tab.
- **Brace Placement:** Place opening braces on the same line as the statement they belong to, and closing braces on a new line.
Expand All @@ -198,7 +213,7 @@ Maintaining a consistent coding style across the project enhances readability, r
}
```

#### 4.1.2 Naming Conventions
#### 5.1.2 Naming Conventions

- **Pascal Case:** Use Pascal case for class names, method names, and property names.

Expand All @@ -214,7 +229,7 @@ Maintaining a consistent coding style across the project enhances readability, r
}
```

#### 4.1.3 Language Features
#### 5.1.3 Language Features

- **Expression-bodied Members:** Utilize expression-bodied members for concise one-liners.

Expand All @@ -239,9 +254,9 @@ Maintaining a consistent coding style across the project enhances readability, r
int length = (text != null) ? text.Length : 0;
```

### 4.2 Documentation
### 5.2 Documentation

#### 4.2.1 Comments
#### 5.2.1 Comments

- **XML Documentation:** Include XML comments for classes, methods, and properties to provide comprehensive documentation.

Expand All @@ -264,19 +279,19 @@ Maintaining a consistent coding style across the project enhances readability, r
}
```

#### 4.2.2 Code Comments
#### 5.2.2 Code Comments

- Use comments sparingly and focus on explaining complex or non-intuitive code sections.

By adhering to these coding style guidelines, we aim to create code that is easy to read, understand, and maintain.

## 5. Version Control
## 6. Version Control

Version control is a fundamental aspect of our development process, providing a systematic way to track changes, collaborate with team members, and manage the evolution of our codebase. We utilize Git as our version control system.

### 5.1 Branching Strategy
### 6.1 Branching Strategy

#### 5.1.1 Feature Branches
#### 6.1.1 Feature Branches

For each new feature or bug fix, create a dedicated feature branch. The branch name should be descriptive of the feature or issue it addresses.

Expand All @@ -285,7 +300,7 @@ For each new feature or bug fix, create a dedicated feature branch. The branch n
git checkout -b feature/my-new-feature
```

#### 5.1.2 Hotfix Branches
#### 6.1.2 Hotfix Branches

In case of critical issues in the production environment, create a hotfix branch. This allows for a quick resolution without affecting the main development branch.

Expand All @@ -294,7 +309,7 @@ In case of critical issues in the production environment, create a hotfix branch
git checkout -b hotfix/1.0.1
```

### 5.2 Commit Messages
### 6.2 Commit Messages

Write clear and concise commit messages that convey the purpose of the change. Follow these guidelines:

Expand All @@ -311,15 +326,15 @@ git commit -m "Add user authentication feature"
git commit -m "Updated stuff"
```

### 5.3 Pull Requests
### 6.3 Pull Requests

Before merging changes into the main branch, create a pull request (PR). This allows for code review and ensures that changes adhere to coding standards.

- Assign reviewers to the PR.
- Include a clear description of the changes.
- Ensure that automated tests pass before merging.

### 5.4 Merging Strategy
### 6.4 Merging Strategy

Adopt a merging strategy based on the nature of the changes:

Expand All @@ -332,17 +347,17 @@ git checkout main
git merge --no-ff feature/my-new-feature
```

### 5.5 Repository Hosting
### 6.5 Repository Hosting

Our Git repository is hosted on [GitHub](https://github.com/asv-soft/asv-drones-sdr). Ensure that you have the necessary permissions and follow best practices for repository management.

By following these version control practices, we aim to maintain a well-organized and collaborative development process.

## 6. Build and Deployment
## 7. Build and Deployment

The build and deployment processes are crucial components of our development workflow. This section outlines the steps for building the project and deploying it using GitHub Releases.

### 6.1 Build Process
### 7.1 Build Process

To compile the project, use the following command:

Expand All @@ -352,17 +367,17 @@ dotnet build

This command compiles the code and produces executable binaries.

### 6.2 Deployment using GitHub Releases
### 7.2 Deployment using GitHub Releases

Our application is deployed using [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases).

Latest release can be found [here](https://github.com/asv-soft/asv-drones-sdr/releases).

## 7. Contributing
## 8. Contributing

We welcome contributions from the community to help enhance and improve our project. Before contributing, please take a moment to review this guide.

### 7.1 Code Reviews
### 8.1 Code Reviews

All code changes undergo a review process to ensure quality and consistency. Here are the steps to follow:

Expand All @@ -387,7 +402,7 @@ All code changes undergo a review process to ensure quality and consistency. Her

6. **Merge:** Once the code review is complete and the changes are approved, your pull request will be merged into the main branch.

### 7.2 Submitting Changes
### 8.2 Submitting Changes

Before submitting changes, ensure the following:

Expand All @@ -397,25 +412,25 @@ Before submitting changes, ensure the following:

- **Documentation:** Update relevant documentation, including code comments and external documentation, to reflect your changes.

### 7.3 Communication
### 8.3 Communication

For larger changes or feature additions, it's beneficial to discuss the proposed changes beforehand. Engage with the community through:

- **Opening an Issue:** Discuss your proposed changes by opening an issue. This provides an opportunity for community input before investing significant time in development.

- **Joining Discussions:** Participate in existing discussions related to the project. Your insights and feedback are valuable.

### 7.4 Contributor License Agreement (CLA)
### 8.4 Contributor License Agreement (CLA)

By contributing to this project, you agree that your contributions will be licensed under the project's license. If a Contributor License Agreement (CLA) is required, it will be provided in the repository.

We appreciate your contributions, and together we can make this project even better!

## 8. Code Documentation
## 9. Code Documentation

Clear and comprehensive code documentation is essential for ensuring that developers can easily understand, use, and contribute to the project. Follow these guidelines for documenting your code:

### 8.1 Inline Comments
### 9.1 Inline Comments

Use inline comments to explain specific sections of your code, especially for complex logic or non-intuitive implementations. Follow these principles:

Expand All @@ -435,7 +450,7 @@ int CalculateSum(int a, int b)
}
```

### 8.2 XML Documentation
### 9.2 XML Documentation

For classes, methods, properties, and other significant code elements, use XML documentation comments to provide comprehensive information. Follow these guidelines:

Expand Down Expand Up @@ -468,19 +483,19 @@ public class MathUtility
}
```

### 8.3 Consistency
### 9.3 Consistency

Ensure consistency in your documentation style across the codebase. Consistent documentation makes it easier for developers to navigate and understand the project.

By following these documentation guidelines, we aim to create a codebase that is not only functional but also accessible and easily maintainable for all contributors.

## 9. Security
## 10. Security

Ensuring the security of our software is paramount to maintaining the integrity and confidentiality of user data. Developers should adhere to best practices and follow guidelines outlined in this section.

### 9.1 Code Security Practices
### 10.1 Code Security Practices

#### 9.1.1 Input Validation
#### 10.1.1 Input Validation

Always validate and sanitize user input to prevent injection attacks and ensure the integrity of your application.

Expand All @@ -497,39 +512,39 @@ public ActionResult ProcessUserInput(string userInput)
}
```

#### 9.1.2 Authentication and Authorization
#### 10.1.2 Authentication and Authorization

Implement secure authentication and authorization mechanisms to control access to sensitive functionalities and data. Leverage industry-standard protocols like OAuth when applicable.

#### 9.1.3 Secure Communication
#### 10.1.3 Secure Communication

Ensure that communication between components, APIs, and external services is encrypted using secure protocols (e.g., HTTPS).

### 9.2 Dependency Security
### 10.2 Dependency Security

#### 9.2.1 Dependency Scanning
#### 10.2.1 Dependency Scanning

Regularly scan and update dependencies to identify and address security vulnerabilities. Leverage tools and services that provide automated dependency analysis.

#### 9.2.2 Minimal Dependencies
#### 10.2.2 Minimal Dependencies

Keep dependencies to a minimum and only include libraries and packages that are actively maintained and have a good security track record.

### 9.3 Data Protection
### 10.3 Data Protection

#### 9.3.1 Encryption
#### 10.3.1 Encryption

Sensitive data, both at rest and in transit, should be encrypted. Utilize strong encryption algorithms and ensure proper key management.

#### 9.3.2 Data Backups
#### 10.3.2 Data Backups

Implement regular data backup procedures to prevent data loss in the event of security incidents or system failures.

### 9.4 Secure Coding Standards
### 10.4 Secure Coding Standards

Adhere to secure coding standards to mitigate common vulnerabilities. Follow principles such as the [OWASP Top Ten](https://owasp.org/www-project-top-ten/) to address security concerns in your codebase.

### 9.5 Reporting Security Issues
### 10.5 Reporting Security Issues

If you discover a security vulnerability or have concerns about the security of the project, please report it immediately to our team at [our telegram channel](https://t.me/asvsoft). Do not disclose security-related issues publicly until they have been addressed.

Expand All @@ -539,7 +554,7 @@ Encourage ongoing security training for all team members to stay informed about

By incorporating security practices into our development process, we aim to create a robust and secure software environment for our users.

## 10. License
## 11. License

This project is licensed under the terms of the MIT License. A copy of the MIT License is provided in the [LICENSE](https://github.com/asv-soft/asv-drones-sdr?tab=MIT-1-ov-file) file.

Expand Down Expand Up @@ -577,29 +592,29 @@ By contributing to this project, you agree that your contributions will be licen

For more details about the MIT License, please visit [opensource.org/licenses/MIT](https://opensource.org/licenses/MIT).

## 11. Contact
## 12. Contact

If you have questions, suggestions, or need assistance with the project, we encourage you to reach out through the following channels:

### 11.1 Telegram Channel
### 12.1 Telegram Channel

Visit our Telegram channel: [ASVSoft on Telegram](https://t.me/asvsoft)

Feel free to join our Telegram community to engage in discussions, seek help, or share your insights.

### 11.2 GitHub Issues
### 12.2 GitHub Issues

For bug reports, feature requests, or any project-related discussions, please use our GitHub Issues:

[Project Issues on GitHub](https://github.com/asv-soft/asv-drones-sdr/issues)

Our GitHub repository is the central hub for project-related discussions and issue tracking. Please check existing issues before creating new ones to avoid duplication.

### 11.3 Security Concerns
### 12.3 Security Concerns

If you discover a security vulnerability or have concerns about the security of the project, please report it immediately to our telegram channel: [ASVSoft on Telegram](https://t.me/asvsoft). Do not disclose security-related issues publicly until they have been addressed.

### 11.4 General Inquiries
### 12.4 General Inquiries

For general inquiries or if you prefer email communication, you can reach us at [me@asv.me](mailto:me@asv.me).

Expand Down