Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Tracker Flask Web App

🚀 A full-stack Task Management application powered by Flask, SQLite, Docker, and Azure.

This project utilizes Flask for the backend, SQLite for lightweight database storage, and a frontend built with HTML Jinja Template for user interaction. It is Dockerized for portability, with images stored in Azure Container Registry (ACR) and deployed via Azure App Service. Authentication and deployment are managed through Azure Service Principal, while GitHub Actions automates CI/CD workflows. 🚀

This ensures a scalable, cloud-deployed task tracker with seamless user interaction and backend integration. Let me know if you'd like any refinements! 🔥

Screenshots

✅ APP Interface App1 App2

✅ Azure Web App

Azure_app

✅ Github Actions pipeline

actions

✅ API Call output

api_call

⚙️ Tech Stack

Backend: Flask:

  • Handles API requests for task management.
  • Provides CRUD operations for tasks (Add, View, Delete, Reset).
  • Uses SQLite as a lightweight database.

Frontend: HTML

  • UI for viewing all tasks and adding new tasks.
  • Allows users to delete all tasks and reset Task IDs.
  • Styled for clean and intuitive interactions.

Database: SQLite

  • Stores Task ID and Task Name.
  • Provides a simple yet efficient task management system.

Containerization: Docker

  • Encapsulates the backend API within a Docker container.
  • Ensures portability and easy deployment across environments.

Cloud Deployment: Azure

  • Hosted on Azure App Service with a container-based deployment.
  • Docker images stored in Azure Container Registry (ACR).
  • Uses Azure Service Principal for secure authentication.

CI/CD: GitHub Actions

  • Automates Docker image builds & deployments to Azure.
  • Pushes updates seamlessly from GitHub.

🔹 Features

  • View all tasks from the frontend UI
  • Add new tasks through the interface
  • Reset Task ID numbering after deletion of all tasks
  • Fully responsive UI for intuitive task management

🚀 Setup & Deployment

1️⃣ Clone the repository:

  git clone https://github.com/XPRX77/Personal-Task-Tracker.git
  cd TaskTrackerApp

2️⃣ Run the Flask app:

   python main.py

🔹 Docker Setup

1️⃣ Build the Docker image:

   docker build -t flask-task-tracker .

2️⃣ Run the container:

   docker run -p 5000:5000 flask-task-tracker

3️⃣ Open the Frontend (index.html) in your browser.

   http://127.0.0.1:5000/

🔹 Azure Deployment

1️⃣ Push the Docker image to Azure:

   docker push <YOUR_ACR_NAME>.azurecr.io/flask-task-tracker:latest

2️⃣ GitHub Actions automates deployment to Azure App Service.

API Reference

Get all tasks

  GET http://<YOUR SERVER FQDN>/tasks
Parameter Type Description
task Json task field

Add tasks

  POST http://<YOUR SERVER FQDN>/add -H "Content-Type: application/json" -d '{"task": "<YOUR TASK VALUE>"}'
Parameter Type Description
task json Required. Input value for task

Update tasks

  PUT http://<YOUR SERVER FQDN>/update/5 -H "Content-Type: application/json" -d '{"task": "<YOUR TASK VALUE"}'
Parameter Type Description
task json Required. Input value for task

Delete tasks

  DELETE http://<YOUR SERVER FQDN>/delete/<taskID>
Parameter Type Description
id string Required. Id of item to delete

🚀 Future Enhancements

  • Add user authentication for secure access
  • Expand task fields beyond Task ID & Task Name
  • Deploy frontend separately on Azure Static Web Apps

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages