Skip to content
Merged
Show file tree
Hide file tree
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
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: Bug Report
about: Report a bug to help us improve
title: "[BUG] "
labels: bug
assignees: ''

---

## Description

A clear and concise description of what the bug is.

## Steps to Reproduce

Steps to reproduce the behavior:

1.
2.
3.

## Expected Behavior

A clear and concise description of what you expected to happen.

## Actual Behavior

A clear and concise description of what actually happened.

## Environment

- **OS**: (e.g., macOS, Linux, Windows)
- **Node.js version**: (if applicable)
- **Python version**: (if applicable)
- **Rust version**: (if applicable)
- **Docker version**: (if applicable)

## Screenshots

If applicable, add screenshots to help explain your problem.

## Logs

If applicable, paste relevant error logs or stack traces:

```
[paste logs here]
```

## Additional Context

Add any other context about the problem here.

## Possible Solution

If you have a suggestion for how to fix this, please describe it here.
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''

---

## Description

A clear and concise description of what the feature is.

## Problem Statement

Is your feature request related to a problem? Please describe the problem you're trying to solve.

## Proposed Solution

Describe the solution you'd like in detail.

## Alternative Solutions

Describe any alternative solutions or features you've considered.

## Use Cases

Describe the use cases for this feature. Who would benefit from it?

## Additional Context

Add any other context or screenshots about the feature request here.

## Acceptance Criteria

- [ ]
- [ ]
- [ ]

## Priority

- [ ] Low
- [ ] Medium
- [ ] High
- [ ] Critical
48 changes: 48 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## Description

Please include a summary of the changes and related context.

Closes #(issue number)

## Type of Change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update

## Changes Made

-
-
-

## Testing

Please describe the tests you ran and how to reproduce them:

- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed

**Test Coverage:**
-

## Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests passed locally with my changes
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

If your changes include UI modifications, please add screenshots here.

## Additional Notes

Any additional information that reviewers should know.
226 changes: 218 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,224 @@

Thank you for your interest in contributing to VacciChain! This document provides guidelines and instructions for contributing to our project.

## Table of Contents

- [Local Setup](#local-setup)
- [Branching Strategy](#branching-strategy)
- [Pull Request Process](#pull-request-process)
- [Commit Conventions](#commit-conventions)
- [Code of Conduct](#code-of-conduct)
- [Docker Base Image Pinning](#docker-base-image-pinning)

## Local Setup

### Prerequisites

- Node.js 18+
- Python 3.11+
- Rust + `wasm32-unknown-unknown` target
- Soroban CLI
- Docker + Docker Compose
- Freighter Wallet (for testing)

### Installation Steps

1. **Clone the repository**
```bash
git clone https://github.com/dev-fatima-24/VacciChain.git
cd VacciChain
```

2. **Copy environment configuration**
```bash
cp .env.example .env
# Fill in your Stellar keys and contract IDs
```

3. **Install backend dependencies**
```bash
cd backend
npm install
cd ..
```

4. **Install frontend dependencies**
```bash
cd frontend
npm install
cd ..
```

5. **Install Python service dependencies**
```bash
cd python-service
pip install -r requirements.txt
cd ..
```

6. **Deploy smart contract (if needed)**
```bash
cd contracts
make build
make deploy
cd ..
```

7. **Run locally**
```bash
# Terminal 1: Backend
cd backend && npm run dev

# Terminal 2: Frontend
cd frontend && npm run dev

# Terminal 3: Python service
cd python-service && uvicorn main:app --port 8001
```

Or use Docker Compose:
```bash
docker compose up --build
```

## Branching Strategy

We follow a **feature branch** workflow:

- **main**: Production-ready code. Protected branch, requires PR review.
- **Feature branches**: `feature/<description>` or `issues/<issue-numbers>`
- Example: `feature/openapi-spec` or `issues/77-79-82-84`
- Branch from `main`
- Prefix with issue numbers if addressing GitHub issues

### Creating a Branch

```bash
git checkout main
git pull origin main
git checkout -b issues/77-79-82-84
```

## Pull Request Process

### Before Submitting

1. **Ensure tests pass**
```bash
# Backend
cd backend && npm test

# Contracts
cd contracts && cargo test

# Python service
cd python-service && pytest
```

2. **Run linters** (if configured)
```bash
cd backend && npm run lint # if available
```

3. **Update documentation** if your changes affect user-facing features

4. **Commit your changes** using [Conventional Commits](#commit-conventions)

### Submitting a PR

1. **Push your branch**
```bash
git push -u origin issues/77-79-82-84
```

2. **Create a pull request** on GitHub
- Use the PR template (auto-populated from `.github/pull_request_template.md`)
- Link related issues: `Closes #77, #79, #82, #84`
- Provide a clear description of changes
- Include testing notes

3. **Address review feedback**
- Make requested changes
- Push updates to the same branch
- Respond to comments

4. **Merge** once approved
- Use "Squash and merge" for single-commit PRs
- Use "Create a merge commit" for multi-commit PRs with logical separation

## Commit Conventions

We follow **Conventional Commits** for clear, semantic commit messages.

### Format

```
<type>(<scope>): <subject>

<body>

<footer>
```

### Types

- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation changes
- **style**: Code style changes (formatting, missing semicolons, etc.)
- **refactor**: Code refactoring without feature changes
- **perf**: Performance improvements
- **test**: Adding or updating tests
- **chore**: Build, dependency, or tooling changes

### Scope

Optional. Indicates the area affected:
- `backend`, `frontend`, `contracts`, `python-service`
- `auth`, `vaccination`, `verify`, `analytics`
- `#77`, `#79` (issue numbers)

### Examples

```bash
git commit -m "feat(backend): add OpenAPI spec generation"
git commit -m "fix(#77): resolve swagger endpoint routing"
git commit -m "docs(#79): add contributor onboarding guide"
git commit -m "test(contracts): add mint_vaccination tests"
git commit -m "chore: update dependencies"
```

## Code of Conduct

### Our Pledge

We are committed to providing a welcoming and inspiring community for all. We pledge to:

- Be respectful and inclusive
- Welcome diverse perspectives and experiences
- Focus on constructive feedback
- Respect confidentiality and privacy

### Expected Behavior

- Use welcoming and inclusive language
- Be respectful of differing opinions and experiences
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Show empathy towards other community members

### Unacceptable Behavior

- Harassment, discrimination, or intimidation
- Offensive comments related to personal characteristics
- Deliberate intimidation or threats
- Unwelcome sexual attention or advances
- Trolling, insulting, or derogatory comments

### Reporting Issues

If you witness or experience unacceptable behavior, please report it to the maintainers at [contact email]. All reports will be reviewed and investigated.

## Docker Base Image Pinning

### Why We Pin Docker Images
Expand Down Expand Up @@ -100,14 +318,6 @@ If you need to manually update a base image version:
**Problem**: Renovate is not creating PRs
- **Solution**: Check `renovate.json` configuration and ensure Renovate app is installed on the repository

## General Contributing Guidelines

- Follow the existing code style and conventions
- Write clear commit messages
- Test your changes before submitting a PR
- Update tests and documentation as needed
- Be respectful and inclusive in all interactions

## Questions?

If you have questions about contributing, please open an issue or reach out to the maintainers.
Loading