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
`
Footer Added (Static Version)
`html
`
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
`
JavaScript Logic
`html
`
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)