Skip to content
Open
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
170 changes: 170 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,173 @@ Here is a pre-start checklist:
## Implementation

** ADD YOUR IMPLEMENTATION DOCUMENTATION HERE **

# 🐝 HiveBox DevOps Project
**Phase 1 & 2 – Step-by-Step Instructions**

Welcome to the **HiveBox DevOps Project**!
This README will guide you through **Phase 1 (Kickoff & Preparation)** and **Phase 2 (Basic Implementation)** of your DevOps journey.

---

## 📍 Phase 1: Project Kickoff and Preparation
*Roadmap Module: Welcome to the DevOps World*

### 1.1 Kickoff

#### ✅ Step 1: Understand Your Role and Team Dynamics
- **Role**: DevOps Engineer for the HiveBox project
- **Mindset**: Work as if you're part of a collaborative team
- **Key Responsibilities**:
- Bridge development and operations
- Implement automation & CI/CD
- Ensure system reliability & scalability
- Maintain infrastructure as code

#### ✅ Step 2: Learn Agile Project Management
- **Read**: [Agile Project Management Overview](https://www.apm.org.uk/resources/find-a-resource/agile-project-management/)
- **Core Principles**: Iterations, collaboration, adaptability
- **Key Concepts**:
- User stories & acceptance criteria
- Sprint planning & retrospectives
- Continuous feedback loops

#### ✅ Step 3: Choose Your Agile Methodology
- **Recommended**: **Kanban** – visual board with *To Do → In Progress → Done*
- **Alternatives**: Scrum (sprint-based) or Scrumban (hybrid)

#### ✅ Step 4: Avoid Scope Creep
- **Mantra**: “Make it work, make it right, make it fast!”
- **Strategy**:
- Focus on MVP (Minimum Viable Product)
- Document extra feature requests for later
- Say “NO” to non-essential features
- **Read**: [Top Causes of Scope Creep](https://www.pmi.org/learning/library/top-five-causes-scope-creep-6675)

#### ✅ Step 5: Adopt "Manager of One" Mindset
- Take ownership
- Make informed decisions independently
- Communicate blockers proactively
- Set and meet realistic deadlines

---

### 1.2 Preparation

#### 🛠 Step 1: Set Up GitHub Account & Repository
1. [Create a GitHub Account](https://github.com)
2. Fork the HiveBox repository:
- **Repo**: [devops-hands-on-project-hivebox](https://github.com/DevOpsHiveHQ/devops-hands-on-project-hivebox)

#### 🛠 Step 2: Create GitHub Project Board
- Navigate to **Projects → New Project → Kanban Template**
- Name it `HiveBox DevOps Project`
- **Columns**:
- To Do
- In Progress
- Review
- Done

#### 🛠 Step 3: Set Up Branch Protection & Workflow
- Protect `main` branch (require PR reviews & status checks)
- Create feature branches (`phase-1`, `phase-2`, etc.)
- Always use PRs for merging changes

#### 🛠 Step 4: Documentation Setup
Recommended folder structure:
docs/
├── README.md
├── phase-1/
│ └── implementation-notes.md
├── phase-2/
│ └── implementation-notes.md
└── architecture/
└── overview.md

#### 🛠 Step 5: Collect SenseBox IDs
- Visit [openSenseMap](https://opensensemap.org/)
- Example IDs:
- 5eba5fbad46fb8001b799786
- 5c21ff8f919bf8001adf2488
- 5ade1acf223bd80019a1011c
- Verify and document them in your repo

---

## 📍 Phase 2: Basic Implementation
*Roadmap Module: Basics – DevOps Core*

### 2.1 Tools Setup

#### 🖥 Install Git
- **Windows**: Download from git-scm.com
- **macOS**: brew install git or download
- **Linux**: apt-get install git or yum install git
Verify: git --version

#### 🖥 Install VS Code
- Download VS Code
- Recommended extensions: Python, Docker, GitLens, YAML, Kubernetes

#### 🖥 Install Docker
- Windows/macOS: Download Docker Desktop
- Linux: Follow official guide

Verify: docker --version

---

### 2.2 Code Implementation

Clone and setup:
git clone https://github.com/YOUR_USERNAME/devops-hands-on-project-hivebox.git
cd devops-hands-on-project-hivebox
git checkout -b phase-2

Project structure:
hivebox/
├── app/
│ ├── __init__.py
│ ├── main.py
│ └── version.py
├── requirements.txt
├── Dockerfile
├── README.md
└── .gitignore

---

### 2.3 Containerization

Dockerfile, build & run steps provided in README.

---

### 2.4 Testing

Run local tests:
python -m app.main

Run Docker container:
docker run --rm hivebox:0.0.1

Verify output: HiveBox version: 0.0.1

---

### 2.5 Final Steps

Commit & push:
git add .
git commit -m "feat: implement Phase 2 - basic version app and Docker container"
git push origin phase-2

Create PR and update board.

---

## 🚀 Next Steps
- Build REST API
- Integrate with openSenseMap
- Add tests and CI/CD

9 changes: 9 additions & 0 deletions hivebox/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

/docs/phase-1/step-by-step.md
/docs/phase-2/step-by-step.md
/docs/phase-3/step-by-step.md
/docs/phase-4/step-by-step.md
/docs/phase-4/step-by-step.md
/docs/phase-5/step-by-step.md
/docs/phase-6/step-by-step.md
/docs/phase-7/step-by-step.md
23 changes: 23 additions & 0 deletions hivebox/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Use official Python runtime as base image
FROM python:3.11-slim

# Set working directory in container
WORKDIR /app

# Copy requirements and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy application code
COPY app/ ./app/

# Create non-root user for security
RUN useradd --create-home --shell /bin/bash app \
&& chown -R app:app /app
USER app

# Set environment variables
ENV PYTHONPATH=/app

# Run the application
CMD ["python", "-m", "app.main"]
Empty file added hivebox/README.md
Empty file.
2 changes: 2 additions & 0 deletions hivebox/app/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# app/__init__.py
from .version import __version__
Binary file added hivebox/app/__pycache__/__init__.cpython-313.pyc
Binary file not shown.
Binary file added hivebox/app/__pycache__/main.cpython-313.pyc
Binary file not shown.
Binary file added hivebox/app/__pycache__/version.cpython-313.pyc
Binary file not shown.
13 changes: 13 additions & 0 deletions hivebox/app/config/sensebox.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# config/senseboxes.yml
# List of senseBox IDs used by the HiveBox project
# These IDs are public and safe to commit.
senseboxes:
- id: "5eba5fbad46fb8001b799786"
alias: "Site A - Rooftop"
description: "Primary test senseBox"
- id: "5c21ff8f919bf8001adf2488"
alias: "Site B - Park"
description: "Secondary box for outdoor data"
- id: "5ade1acf223bd80019a1011c"
alias: "Site C - Lab"
description: "Indoor box for lab reference data"
11 changes: 11 additions & 0 deletions hivebox/app/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# app/main.py
import sys
from .version import print_version

def main():
"""Main function that prints version and exits"""
print_version()
sys.exit(0)

if __name__ == "__main__":
main()
9 changes: 9 additions & 0 deletions hivebox/app/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# app/version.py
__version__ = "0.0.1"

def get_version():
return __version__

def print_version():
print(f"HiveBox version: {get_version()}")
return get_version()
47 changes: 47 additions & 0 deletions hivebox/docs/phase-1/implementation-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 🐝 HiveBox DevOps Project
**Phase 1 – Step-by-Step Instructions**

Welcome to the **HiveBox DevOps Project**!
This README will guide you through **Phase 1 (Kickoff & Preparation)** of your DevOps journey.

---

## 📍 Phase 1: Project Kickoff and Preparation
*Roadmap Module: Welcome to the DevOps World*

### 1.1 Kickoff

#### ✅ Step 1: Understand Your Role and Team Dynamics
- **Role**: DevOps Engineer for the HiveBox project
- **Mindset**: Work as if you're part of a collaborative team
- **Key Responsibilities**:
- Bridge development and operations
- Implement automation & CI/CD
- Ensure system reliability & scalability
- Maintain infrastructure as code

#### ✅ Step 2: Learn Agile Project Management
- **Read**: [Agile Project Management Overview](https://www.apm.org.uk/resources/find-a-resource/agile-project-management/)
- **Core Principles**: Iterations, collaboration, adaptability
- **Key Concepts**:
- User stories & acceptance criteria
- Sprint planning & retrospectives
- Continuous feedback loops

#### ✅ Step 3: Choose Your Agile Methodology
- **Recommended**: **Kanban** – visual board with *To Do → In Progress → Done*
- **Alternatives**: Scrum (sprint-based) or Scrumban (hybrid)

#### ✅ Step 4: Avoid Scope Creep
- **Mantra**: “Make it work, make it right, make it fast!”
- **Strategy**:
- Focus on MVP (Minimum Viable Product)
- Document extra feature requests for later
- Say “NO” to non-essential features
- **Read**: [Top Causes of Scope Creep](https://www.pmi.org/learning/library/top-five-causes-scope-creep-6675)

#### ✅ Step 5: Adopt "Manager of One" Mindset
- Take ownership
- Make informed decisions independently
- Communicate blockers proactively
- Set and meet realistic deadlines
85 changes: 85 additions & 0 deletions hivebox/docs/phase-2/implementation-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# 🐝 HiveBox DevOps Project
**Phase 2 – Step-by-Step Instructions**

Welcome to the **HiveBox DevOps Project**!
This README will guide you through **Phase 2 (Basic Implementation)** of your DevOps journey.

---


## 📍 Phase 2: Basic Implementation
*Roadmap Module: Basics – DevOps Core*

### 2.1 Tools Setup

#### 🖥 Install Git
- **Windows**: Download from git-scm.com
- **macOS**: brew install git or download
- **Linux**: apt-get install git or yum install git
Verify: git --version

#### 🖥 Install VS Code
- Download VS Code
- Recommended extensions: Python, Docker, GitLens, YAML, Kubernetes

#### 🖥 Install Docker
- Windows/macOS: Download Docker Desktop
- Linux: Follow official guide

Verify: docker --version

---

### 2.2 Code Implementation

Clone and setup:
git clone https://github.com/YOUR_USERNAME/devops-hands-on-project-hivebox.git
cd devops-hands-on-project-hivebox
git checkout -b phase-2

Project structure:
hivebox/
├── app/
│ ├── __init__.py
│ ├── main.py
│ └── version.py
├── requirements.txt
├── Dockerfile
├── README.md
└── .gitignore

---

### 2.3 Containerization

Dockerfile, build & run steps provided in README.

---

### 2.4 Testing

Run local tests:
python -m app.main

Run Docker container:
docker run --rm hivebox:0.0.1

Verify output: HiveBox version: 0.0.1

---

### 2.5 Final Steps

Commit & push:
git add .
git commit -m "feat: implement Phase 2 - basic version app and Docker container"
git push origin phase-2

Create PR and update board.

---

## 🚀 Next Steps
- Build REST API
- Integrate with openSenseMap
- Add tests and CI/CD
Loading