DEVOPS ENGINEER
To-Do List Web APP
PHASE 1- PROBLEM ANALYSIS
College Name: KCT Engineering College
Group Members:
• Name: Mohammad Ali Hamza
CAN ID Number: CAN_32962430
• Name: Mohammed Rehan
CAN ID Number: CAN_32969093
• Name: Mohd Zaid
CAN ID Number: CAN_33915533
Project Overview
• Title: Establishing a CI/CD Pipeline for Automated Deployments
• Application: To-Do List Web Application
• Objective: To implement a CI/CD pipeline that automates the deployment process,
ensuring faster, more reliable, and error-free deployments for the To-Do List application.
PC1: Identifying the Problem and Core Challenges
Problem Statement
The current process for deploying the To-Do List app faces several roadblocks:
1. Manual Deployments
Deployments are handled manually, leading to delays, human errors, and
interruptions in the app's performance.
2. No Automation
Without a proper CI/CD pipeline, processes like testing, building, and deploying
take longer, increasing the risk of bugs reaching production.
3. Inconsistent Environments
Configurations for development, staging, and production environments differ,
causing unexpected failures when moving code between them.
4. User Expectations
Users need a fast, reliable task management system, but the current setup slows
down our ability to roll out new features or fixes.
Key Areas to Focus On:
• Deployment Issues: Manual workflows cause errors and downtime, affecting
users.
• CI/CD Challenges: Lack of automation slows updates and creates bottlenecks.
• User Needs: Users demand a reliable, responsive app with real-time task
updates and minimal interruptions.
PC2: Application Needs and the Right Tools
What the App Needs to Do (Functional Requirements):
1. Task Management
Allow users to create, edit, and delete tasks, and categorize them (e.g., by
priority, deadlines).
2. User Accounts
Enable users to sign up, sign in, and manage their tasks, including personal
preferences like theme or notification settings.
3. Task Progress Tracking
Provide users with the ability to mark tasks as completed or pending and track
their progress.
4. Notifications
Send reminders or alerts for upcoming task deadlines or priority updates.
5. Task Synchronization
Sync tasks across different devices so that users have a consistent view of their
to-do list.
How the App Should Perform (Non-Functional Requirements):
1. Fast Performance
The app should load quickly, with minimal lag when adding, updating, or deleting
tasks.
2. Scalability
It should handle an increasing number of tasks and users as the app grows in
popularity.
3. Security
User data, such as account credentials and task information, should be
encrypted and kept secure.
4. Reliability
Ensure the app runs smoothly 24/7, with systems in place to monitor
performance and resolve issues quickly.
5. Ease of Maintenance
Automate updates and maintenance tasks, and keep the codebase clean and
modular for easy changes.
Tools and Technologies
Development Stack
• Backend: Python (Flask or Django) for handling task management logic and user
authentication.
• Frontend: React for a responsive, intuitive user interface.
• Database: PostgreSQL to store user data, tasks, and other relevant information.
Version Control
• Git and GitHub: For version control, tracking changes, and collaborating with
team members.
CI/CD Pipeline Tools
1. Automation and Orchestration:
o Jenkins or GitLab CI: To automate builds, tests, and deployments.
o Docker: To containerize the app and ensure consistent deployments
across different environments.
o Kubernetes: To manage containers, ensuring scalability and efficient
resource utilization.
2. Infrastructure as Code:
o Terraform: To automate the provisioning of cloud resources, such as
virtual machines or storage, as needed for the app.