Skip to content

KyleMit/RemindJames

Repository files navigation

Remind James

Azure Functions + Azure Table Storage + Azure Blob Storage + Azure CDN + Twilio API + Vue SPA to send hourly, crowd-sourced, text-based reminders, updated simultaneously by everyone in the world, to one person in particular in need of reminding.

Resources

View the resources.md for some of the tutorials, quickstarts, documentation, and troubleshooting used in working on this project.

SaaS Providers

Tools

Project Setup

  1. Add a local.settings.json file (contains keys so removed by .gitignore)

    {
        "IsEncrypted": false,
        "Values": {
            "AzureWebJobsStorage": "", // Azure > Function Apps > Application Settings
            "AzureSignalRConnectionString": "", // Azure > Signal R > Keys
            "TwilioAccountSid": "",    //https://www.twilio.com/console
            "TwilioAuthToken": "",     //https://www.twilio.com/console
            "TwilioPhoneNumber": "",   //https://www.twilio.com/console/phone-numbers/incoming
            "FUNCTIONS_WORKER_RUNTIME": "dotnet"
        },
        "Host": {
            "CORS": "*"
        }
    }

SDK Dependencies

Download and install the SDK for .NET Core 2.1.0+

CLI Dependencies

macOS - Use Homebrew

brew tap azure/functions
brew install azure-functions-core-tools

Windows - Use npm

npm install -g azure-functions-core-tools@core

Package Dependencies

Install via

dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage
dotnet add package Microsoft.Azure.WebJobs.Extensions.Twilio
dotnet add package Microsoft.Azure.WebJobs.Extensions.SignalRService -v 1.0.0-preview1-10025

Run Locally

Running Functions

dotnet restore
dotnet build
func start

Running Website

cd wwwroot
#python -m SimpleHTTPServer 8002
live-server --host=localhost --port=8002

Publishing

Azure Functions

  1. Deploy to Azure using Azure Functions

    Azure Extension - Publish

  2. Copy any params from local.settings.json to Functions > Settings

    Azure Functions - App Settings

Website

  1. Add files to blob storage container
  2. Cache bust the CDN
  3. Should be visible on Custom Domain

Releases

No releases published

Packages

No packages published