DEV Community

Vivian Okose
Vivian Okose

Posted on

Running a Mini Sprint in Jira + Deploying a Website Update to AWS EC2 with Nginx (DevOps Workflow)

In this article, I’ll walk you through how I executed a mini Agile sprint using Jira and shipped a real website improvement deployed to AWS EC2 using Nginx.

This was a practical DevOps workflow that covered sprint planning, daily execution, Git version control, deployment, verification, and sprint reporting.

🔗 Repo: https://github.com/vivianokose/project-management-using-Jira.git

🌍 Live URL: http://54.91.12.141/


Project Summary

Goal: Deliver a visible website update and track the entire workflow using Jira Sprint management.

What I shipped

  • Footer displaying: > Pravin Mishra Portfolio v1.0 — Deployed on
    — By Vivian Chiamaka Okose
  • Deploy date made dynamic using JavaScript
  • Footer styling improvements for accessibility and responsiveness
  • Homepage tagline replaced with a Discord onboarding link
  • Verified deployment on live AWS EC2 URL

Tools Used

  • Jira Software (Sprint planning, backlog, subtasks, burndown)
  • Git & GitHub (branching, commits, version control)
  • AWS EC2 (Ubuntu Server)
  • Nginx
  • HTML, CSS, JavaScript
  • SSH & SCP for deployment

Sprint Planning in Jira

1. Jira Workflow Setup

I created a Jira project and ran a sprint using a structured Agile workflow:

Steps taken

  • Opened Jira project dashboard
  • Went to Backlog
  • Clicked Create Sprint
  • Created Sprint 1
  • Added a story to the sprint backlog
  • Set sprint goal and started sprint

Sprint Goal

Ship a visible website footer (version + deploy date + author) and document progress daily.


2. Creating Story + Subtasks

Jira Story Created

Summary: Add footer with version and deploy date

Description: Footer should show version, deploy date, and author attribution.

Subtasks Created (Day 1–Day 5)

  • Day 1 — Implement footer & deploy
  • Day 2 — Make deploy date dynamic
  • Day 3 — Polish & accessibility
  • Day 4 — Provenance / health signal
  • Day 5 — Demo + retro + burndown

This helped me track progress like a real engineering sprint.


Sprint Execution (Day-by-Day Breakdown)


Day 1 — Implement Footer & Deploy

Git Workflow

git clone https://github.com/pravinmishraaws/Pravin-Mishra-Portfolio-Template.git
cd Pravin-Mishra-Portfolio-Template
git checkout -b feature/footer-v1
Enter fullscreen mode Exit fullscreen mode


`

Footer Added (Static Version)

`html

Pravin Mishra Portfolio v1.0 — Deployed on 04 Feb 2026 — By Vivian Chiamaka Okose

`

Commit

bash
git add .
git commit -m "feat(footer): add version, deploy date, and author"


Day 2 — Make Deploy Date Dynamic

Instead of hardcoding the date, I made the deploy date update automatically using JavaScript.

Updated Footer Code

`html

Pravin Mishra Portfolio v1.0 — Deployed on — By Vivian Chiamaka Okose

`

JavaScript Logic

`html

const dateElem = document.getElementById("deployDate"); const options = { day: "2-digit", month: "short", year: "numeric" }; dateElem.textContent = new Date().toLocaleDateString("en-GB", options);

`

Commit

bash
git add .
git commit -m "feat(footer): generate deploy date automatically"

README Evidence Update

I updated README.md to include:

  • Footer requirement explanation
  • How the date is generated
  • Code snippet evidence

Day 3 — Polish & Accessibility Improvements

This stage was focused on usability and accessibility.

Improvements Made

  • Increased padding for spacing
  • Adjusted font size for readability
  • Improved contrast for visibility
  • Tested on desktop + mobile using Chrome DevTools

Example CSS Improvement

css
footer {
padding: 15px;
font-size: 14px;
text-align: center;
color: #ffffff;
background-color: #111;
}

Commit

bash
git add .
git commit -m "style(footer): improve spacing and accessibility"


Day 4 — Homepage Tagline Update

On the homepage, I replaced the existing tagline text with a Discord onboarding link.

Updated HTML

`html

Join DMI Cohort 3 on Discord and start your DevOps journey

`

Commit

bash
git add .
git commit -m "feat(homepage): update tagline with discord link"


Day 5 — Sprint Demo + Retro + Burndown

Demo Evidence

I recorded a short demo video showing:

  • Live EC2 URL
  • Footer version + dynamic deploy date
  • Tagline update
  • Jira sprint completion

Retrospective Notes

I documented:

  • What went well
  • What I can improve
  • DevOps principle demonstrated (continuous delivery & verification)

Sprint Reporting

I generated the Burndown Report in Jira:

  • Jira → Reports → Burndown Chart
  • Verified that tasks were completed progressively over sprint duration

Daily Scrum Updates (Jira Comments)

Each day I updated the Jira story using the Daily Scrum format:

text
Yesterday: ...
Today: ...
Blockers: ...

Example

text
Yesterday: Implemented footer and deployed to EC2.
Today: Make deploy date dynamic and update README evidence.
Blockers: None.

This improved sprint clarity and made progress traceable.


Git Commit History Tracking

A key part of proof-based delivery is maintaining clear commit messages.

Commit Pattern Used

  • feat(...) for new features
  • style(...) for UI improvements
  • Clear messages tied to sprint deliverables

Example History

bash
git log --oneline

Example output format:

text
a1b2c3d feat(footer): add version, deploy date, and author
d4e5f6g feat(footer): generate deploy date automatically
h7i8j9k style(footer): improve spacing and accessibility
l0m1n2o feat(homepage): update tagline with discord link


Deployment to AWS EC2 (Using SCP + Nginx)

After each daily improvement, I deployed changes to EC2.


Step 1: Copy Files to EC2

bash
scp -i your-key.pem -r . ubuntu@54.91.12.141:/tmp/portfolio


Step 2: SSH into the Server

bash
ssh -i your-key.pem ubuntu@54.91.12.141


Step 3: Replace Website Files in Nginx Web Root

bash
sudo rm -rf /var/www/html/*
sudo cp -r /tmp/portfolio/* /var/www/html/


Step 4: Validate Nginx Configuration

bash
sudo nginx -t


Step 5: Reload Nginx

bash
sudo systemctl reload nginx


Verification Steps (Production-Style Checks)

After every deployment, I verified the changes like a production release.

Checklist

  • Opened live URL in browser: http://54.91.12.141/
  • Confirmed footer appears correctly
  • Confirmed dynamic deploy date displays
  • Confirmed link is clickable
  • Checked mobile responsiveness using DevTools
  • Ensured page loads without broken styling

Burndown Report (Sprint Evidence)

The Jira Burndown Chart helped confirm the sprint execution was realistic.

What the burndown helped me validate

  • Sprint progress was consistent
  • Tasks were completed daily
  • No scope creep was introduced
  • Sprint was completed within planned timeline

This is a strong Agile reporting artifact and is useful for recruiters and project stakeholders.


Lessons Learned

This sprint reinforced several important DevOps principles:

Key takeaways

  • Small incremental changes are easier to deploy and validate than large changes
  • Jira sprint tracking provides strong visibility and accountability
  • Deploying manually improves understanding of production processes
  • Verification is as important as deployment
  • Documentation is a key part of professional engineering delivery

Quick Recap (Summary)

What I accomplished

  • Planned a sprint in Jira (Sprint Goal + Story + Subtasks)
  • Executed daily tasks with Daily Scrum updates
  • Used Git branching and clean commit history
  • Deployed changes repeatedly to AWS EC2
  • Served website via Nginx
  • Verified deployment using live URL checks
  • Generated burndown report and sprint evidence

🔗 Repo: https://github.com/vivianokose/project-management-using-Jira.git
🌍 Live URL: http://54.91.12.141/


Final Thoughts

This mini sprint gave me hands-on exposure to how real Agile + DevOps delivery works:
plan → execute → commit → deploy → verify → report.

It was a small project, but it followed the same workflow used in professional engineering teams.

If you’re learning DevOps, I highly recommend practicing this approach because it builds real delivery confidence.


Top comments (0)