Skip to content

DaZZler12/My-FRT-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

LinkedIn


Table of Contents
  1. About The Project
  2. Getting Started
  3. My-WebApp
  4. AboutUs
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Covid19 Self-Checker

A Quick Overview-

In this project, I attempted to build a web application that capable of recognizing whether a person is Covid19 positive or negative to a reasonable degree by taking some basic symptoms as input. I've set the boundary value to 50%, which means that if the predicted probability value is greater than or equal to 0.5, the system will classify that person as Covid19 positive, and the user will be redirected from the home page to the result display page, where he or she will be instructed to book a slot for the Covid19 test (for confirmation) by entering the necessary information.

This system will be able to show its potential in the undermentioned scenario:-

1. When a big number of people seek to schedule a slot for a Covid19 test, this system will do a primary classification to prevent a mass gathering at the Covid19 centers.

2. A user can also subscribe to the newsletter using their email address, and the subscribed user will receive daily Covid19 updates at a specific time.

How the entire system is working ?

The technology used -

1. For making Prediction, I had created a model using simple Logistic regression, as it’s clear from the data set (sample2.csv) we have 5 independent variables – [runnyNose, fever, sorethroat, diffBreath, headache], and one dependent variable categorical variable i.e corona_result. Thus by using those independent variables the best possible and simple way to perform a categorical classification is to perform a Logistic Regression. One can test the result in the web app also. For input = [1,0,1,1,1] ==> output = 64% and the system will classify the case as covid +ve.

2. I created a storage account in the Azure platform to store the subscribed user mail id. When a user clicks the subscribe button, the related HTTP-TRIGGER function will be responsible for pushing the mail id to the table, however when a user clicks the unsubscribe button, then that particular id will simply be popped out. (*)

3. To send regular mail to all subscribed users, I created a TIMER-TRIGGER function that is linked to the Twilio SendGrid API. To create and access this SendGrid API, one must first create a SaaS subscription through the Azure Portal, from which one will receive a URL to redirect to the SendGrid portal. Now, the Timer Trigger function will take all of the email addresses stored in the table and, using the SendGrid API, send emails to all of the subscribers at a predetermined time. (*)

4. Lastly, to host the web application, I have used Azure App Service and to host the NewsLetter website I have used the Azure Static web App.

(*)(Unfortunately, My Azure for students' credit expired, thus the storage account is not accessible as well as the associated HttpTrigger and TimerTrigger Functions are out of service! Sorry for the inconvenience!)

  • subscription

    Flowchart for the prediction system

    flow1

    Flowchart of the NewsLetter System

    flow2

(Move Up!)

Built With

(Move Up!)

Getting Started

Do the following needful in order to setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

  1. Install Python and the below mentioned packeges

    flask, sendgrid, scikit-learn, azure.functions, azure.cosmosdb.table.tableservice, json, datetime, logging, requests
  2. Clone the repo

    git clone https://github.com/DaZZler12/My-FRT-Project/tree/master.git
  3. Create a newsletter like website which will be a static website take ref from (https://github.com/DaZZler12/covid19-info-frt)

    https://red-beach-0fec6a200.1.azurestaticapps.net/
  4. Create a flask application take ref from (https://github.com/DaZZler12/My-FRT-Project/tree/master)

    https://mycovid19selfchecker.azurewebsites.net/
  5. Create a stourage account in azure platform with fileds

    emailid | partitionkey = 1
  6. Create a HttpTrigger Function take ref from (https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=csharp)

    https://github.com/DaZZler12/My-FRT-Project/tree/Functions/HttpTrigger%20Function
  7. Create a TimerTrigger Function take ref from (https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp)

    https://github.com/DaZZler12/My-FRT-Project/tree/TimerFunction/TimerTrigger
  8. Create a web app and host your flask application, go thorugh the below documation by Microsoft Learning to host your web app

https://docs.microsoft.com/en-us/learn/modules/host-a-web-app-with-azure-app-service/
  1. Create a static web app to host your newsletter website
https://docs.microsoft.com/en-us/learn/paths/azure-static-web-apps/

(Move Up!)

My-WebApp

subscription subscription subscription subscription subscription subscription

To know more about Azure, please refer to the Documentation

(Move Up!)

See the open issues for a full list of proposed features (and known issues).

(Move Up!)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star!✨✨ Thanks again! 🙂🙂🙂

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(Move Up!)

License

Distributed under the MIT License. See MIT License for more information.

(Move Up!)

Contact

Abhirup Bhattacharya - @_A_bhirup

Important Project Link:

  1. Flask Complete Web Application
  2. HttpTrigger Function
  3. TimerTrigger Function
  4. Covid19 NewsLetter Static Website

(Move Up!)

Acknowledgments

(Move Up!)