Skip to content

jcocchi/HannahHackathon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hannah the Hackathon Helper

Who is She

Hannah was built to assist with hackathons! She has 3 main capabilities:

  • Handing out Azure Passes to students
  • Introducing students to the hack team members onsite
  • Answering questions about specific MS Technologies

Customize Her to Your Needs

You can customize the technologies and team members for each hackathon so Hannah can be more reusable.

Hannah's hackathon specific settings are in the data/hackSpecificData.js file. You can customize the data for each hackathon by modifying the data in the following format. Please make sure you keep the appropriate article preceding the hack prize and the appropriate preposition preceding the booth location for the bot's grammar to make sense. Each team member will be picked up by the app/dialogs/teamInfo dialog and added to the card of team members automatically.

{
  hackName: 'CalHacks',
  surveyLink: 'aka.ms/CalHacksSurvery',
  teamEmail: '[email protected]',
  prize: 'an XBox One',
  boothLocation: 'near the support desk on the first floor',
  teamMembers: [
    {
      name: 'Jane Doe',
      techFocus: ['Azure', 'Bot Framework'],
      photoLink: 'samplelink.com'
    },
    ...
  ]
}

You can also customize the technologies Hannah knows how to help with by edititng the data/techResources file. Add, delete or modify the technologies listed here to change how the bot responds in the app/dialogs/techHelp dialog.

[
  {
    name: 'ChatBots',
    prompt: 'You want to know how to build a bot like me? Head to https://docs.botframework.com/en-us/. You can also head to booth where various team members can help you!'
  },
  ...
]

Setup

Create an Azure Storage Account

Follow this guide to create your storage account. Once it is created, add two tables with the naming specified below. Changes to capitalization and spelling might break the existing code so be sure to create the correct tables.

Create a table to store all of the azure codes for the event.

  • Name: AzureCredits
  • Required Columns
    • Partition Key The values here will always be Credit
    • Row Key The azure code, it is primary key for the table
    • Used Boolean value to represent whether the credit has been given out or not
    • Timestamp

Create a second table to store the student information.

  • Name: AzureCreditStudents
  • Required Columns
    • Partition Key The values here will always be Student
    • Row Key The student's email, it is the primary key for the table
    • AzureCode The code that was assigned to the student
    • Name
    • University
    • PhoneNumber
    • ProjectDetails
    • Timestamp

Set up Your Environment Variables

There are several variables that need to be set in order for the app to run properly. For local testing, start by creating a .env file in the root directory, use the .env.example as a template for the values you need. When you deploy the bot to Azure be sure to enter these key value pairs in Application Settings to be configured as environment variables in your deployed app as the .env file only works locally.

  • APP_ID= The app id that you got after you register your bot on botframework.com
  • APP_PASS= The app password that you got after you register your bot on botframework.com
  • LUIS_ID= The id for your https://luis.ai model
  • LUIS_KEY= The subscription key for your https://luis.ai model
  • LUIS_ENDPOINT= The endpoint for your https://luis.ai model
  • EMAIL_PASS= The password for the email account you will send confirmation emails from
  • EMAIL_USERNAME= The email account you will send confirmation emails from
  • AZURE_STORE_CONNSTR= The primary connection string for your storage account (obtainment and setup info above)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.4%
  • HTML 8.6%