Skip to main content

Covid Status Tracker Single page Application using Salesforce Force.com Sites

Step1:
Create Corona Cases Object with the below fields.
State__c,
State_Code__c,
Confirmed__c,
Active__c,
Recovered__c,
Deaths__c,
Today_New_Cases__c,
Today_Recovered__c,
Today_Deaths__c,
Last_Updated_Time__c

Step2:
Register the Open Source API site under Remote Site Settings















Step3:
Create a Callout class in Salesforce using REST API to call the Opensource API from https://api.covid19india.org/data.json

Callout Class:
https://github.com/NagarjunaKaipu/myLightning/blob/master/CovidInfoCallOuts.apxc
JSON2APEX Class.
https://github.com/NagarjunaKaipu/myLightning/blob/master/CovidJson.apxc
Sample JSON from Third-party Application.
https://github.com/NagarjunaKaipu/myLightning/blob/master/ThirdpartyRESTAPIJson.json

Step4:
Create a Schedulable class to run the callout class in the frequent intervals.
https://github.com/NagarjunaKaipu/myLightning/blob/master/ScheduleRefreshCovid.apxc

Step5:
Create Visualforce page to show the List of records on UI.

VF page:
https://github.com/NagarjunaKaipu/myLightning/blob/master/CovidStatus.vfp
Controller class:
https://github.com/NagarjunaKaipu/myLightning/blob/master/CovidStatusController.apxc

Step6:
Go to Sites and Configure the site as shown below 
Site Home Page as your Visulaforce  page
Go to Public Access Settings and give access to 
Corona Cases object
Visualforce page
Controller class













Step7:
Activate the Site and your site URL looks like below
https://covid19india-developer-edition.ap4.force.com/CovidStatus

Sample Output:





Comments

Popular posts from this blog

Get started with Simple Lightning Web Component(Bike Card)

Lightning web component HTML files all include the template tag. The template tag contains the HTML that defines the structure of your component. Let’s look at the HTML for a simplified version of the component. Paste the following into app.html (replacing any existing HTML in the file). bikeCard.html < template > < div id = "waiting" if : false = { ready } > Loading.. </ div > < div id = "dispaly" if : true = { ready } > < div > Name: {name} </ div > < div > Description: {description} </ div > < div > Category: {category} </ div > < div > Material: {material} </ div > < div > Price: {price} </ div > < div >< img src = { pictureURL } /></ div > </ div > </ template > The identifiers in the curly braces {} are bound to the fields of the same name in the corresponding JavaScript class. Here’s a JavaScript file to s...

Disable Document Download in Salesforce

Disable downloads for certain users based on the name of the file uploaded to Salesforce. We can use the following example code inside of a Apex class. This code essentially prevents files whose file name starts off with Kaipu- from being downloaded by anyone whose user role’s developer name is not Kaipu_Sales. Modify this code to suit your own purpose. Based on Role: public class ContentDownloadHandlerFactoryImpl implements Sfc.ContentDownloadHandlerFactory {    public Sfc.ContentDownloadHandler getContentDownloadHandler(List<ID> ids, Sfc.ContentDownloadContext context) {      // See if the user has the Kaipu Sales role (based on developer name field).      Boolean isSecretUser = [        SELECT Id        FROM UserRole        WHERE ID = :UserInfo.getUserRoleId()          AND DeveloperName = ' Kaip...

Display list of contacts using Lightning Datatable

Lightning datatable is a table that displays columns of data, formatted according to type. Important attributes includes data, columns, and keyField attributes.The keyField attribute is required for correct table behavior. It associates each row with a unique identifier. Component: ContactListDisplay.cmp Refer below link for the code on github https://github.com/NagarjunaKaipu/myLightning/blob/master/ContactListDisplay.cmp Client Side Controller: ContactListDisplayController.js ({ doInit : function (component, event, helper) { component. set ( "v.myColumns" ,[ {label: "Name" , fieldName: "Name" , type : "text" }, {label: "Title" , fieldName: "Title" , type : "text" }, {label: "Department" , fieldName: "Department" , type : "text" } ]); var conAction = component. get ( "c.getContacts" ); conAction.setCallb...