MinerPass Application

by yarhir in Teachers > 12

257 Views, 0 Favorites, 0 Comments

MinerPass Application

Screenshot 2023-05-25 124131.png
Screenshot 2023-05-25 124400.png
Screenshot 2023-05-25 124556.png
Screenshot 2023-05-25 124638.png

This is an application developed to monitor, track, and create passes for students' many potential visits during school hours. High school students need to visit certain teachers to take tests during their study halls, may visit a teacher after school hours to get help on a subject, visit a counselor to discuss college opportunities, or simply need the bathroom. This is a system that sends student requests to the teachers and administration for approval. It also sends email notifications to notify teachers to check the incoming passes. This addresses the issue of a disorganized system where students may need to visit somewhere, but they aren't able to because of a clunky system, and teachers may also be bombarded with students, or simply can't even allow the student to visit because the communication was not clear.

Supplies

download.png

The only online source used is AppSheet, a free Google program that allows you to craft your own application that intelligently processes information.

Create a Google Sheets Document

1.png

AppSheet has it's own data storage source but it is clunky and can very easily break your app if mishandled, leading to having to restart your app - hence "MinerPass 2.0." Make a Google Sheets Document instead and title it related to your the application you are creating. It is a better and more trustworthy data source.

Make Your Different Data Columns in the First Row

1.png

In the first row of the Google Sheets document, add each type of data you intend on storing and processing in your application. These are the different types of data that are going to have different variable and information pertaining to them. They are also the different "columns" of data in your app.

Change the Data in Your Table to Their Respective Types

1.png

Different columns of data will have different types pertaining to them. The most commonly used is "Enum," which is one that allows the user to access things such as buttons or a "drop-down menu" to select or search through a variety of options. Others are self-explanatory such as "Date," "Time," and "LongText." Toggle all of the types to the ones depicted in the image.

SAVE YOUR PROGRESS!

1.png
1.png

This is an extremely important step that can easily be missed. If you don't save your progress, you risk losing everything you have worked hard for. This is a step that needs to be repeated pretty much from this point on after EVERY STEP to ensure the welfare of your application. Saving also refreshes the App and presents you with any Errors or Warnings so you can address them through the "Caution Symbol" beside the "Save" button before they have the potential to do damage to your app.

Edit Each Enum

1.png
1.png
1.png
1.png

Each Enum must be edited so that there are actually different values to be selected from for each column of data. Press the "Edit" button next to the column name. Go to Type Details > Values > Add. Add as many values as you wish. For example, under the column "Type," there is "Test Makeup," "Bathroom," etc. and many other options. You can add as many as you like and whichever options fit your students visitation needs. You'll need to do this for each separate Enum.

Make Separate Table in Google Sheets and AppSheet for Teacher Access

1.png
1.png
1.png

A large part of the function of the app is to have a table of information accessed differently specifically for teachers so that they can quickly view, approve, or deny passes as they come into their feed. To begin this process, duplicate your initial table in Google Sheets and rename it to "TeacherPass" (the other one should already be "MinerPass" or whatever you intend on naming it). Now you must do the same in AppSheet, right click "MinerPass," and duplicate it. Then, go to Table Settings > Storage > Worksheet Name/Qualifier and link it to the correct table (if you rename the table in Google Sheets, you will have to redo this step) for both tables. This way, if you do it after all the Enums are filled, you won't have to copy it over again. ONLY on the "TeacherPass" schema, press the "Regenerate Schema" button next to the "Table Settings" button to make sure that your columns are in order correctly.

Change the Themes and Brand of the App

1.png
1.png

Go to Settings > Theme and Brand. Go to "Primary Color," select the green, and change the app logo to an image link of the school logo. Do the same for the "Launch Image." Scroll down to "Header & Footer" and toggle "Show view name in header" and "Show logo in header" both on. For "Style," select the middle button (the solid color option). For fonts, I used Open Sans but this is up to preference. Keep the font size at 18.

Edit the System Generated "Details" and "forms" Under Views

1.png
1.png
1.png

Go to "Views > (under "System Generated") > MinerPass_Form (or similar name) > Column Order. This is where you will adjust the appearance of the forms students will be filling out for their visits / trips. It's important that all the information is in an sensible order. Click "Add" and adhere to the order depicted in the picture, clicking "Add" for each column of data you are adding to the order. Go to Sheet1_Form / TeacherPass_Form (or similar name) under the "TeacherPass" drop-down and do the same to the column order. This will ensure the consistency between the forms.

Adjust the Primary Navigation Views of MinerPass and TeacherPass

1.png
1.png
1.png
1.png
1.png
1.png

In order to get the desired effect of visuals, first, you'll want to go to "Views" underneath "Data" > View Type > Card. Once "Card" has been selected, scroll down to View Options > Layout > Large. Now, click on "Title Goes Here," > Column to Show (drop-down to the right) and select "Date." Click "Subtitle Goes Here," > Column to Show > "Time." Click "Header Goes Here," > Column to Show > "Type." Click "Subheader Goes Here," > Column to Show > "Limit." Finally, click the "long piece of text" beneath > Column to Show > "Notes." Scroll down to the "Display" section, and change the icon to "ticket."

Now, go to TeacherPass. Select "Detail" as the "View Type." Scroll down to "Display" and change the icon to "graduation-cap."

(included are also images of how the style should look and the difference between the "MinerPass" and "TeacherPass" views.)

Add Actions "Approved," "Denied," and "Pending."

1.png
1.png
1.png
1.png
1.png
1.png
1.png
1.png

Navigate to Actions (lightning symbol on left side bar). You'll see a list of actions split between the two different tables, MinerPass and TeacherPass. You aren't adding any actions to MinerPass (all you should see under MinerPass is "Add," "Delete," and "Edit"). Hover over the "TeacherPass" drop-down and select the plus button. Select "Create New Action." You will do this three times, one for the Approved, one for the Denied, and one for the Pending action, which all apply to the "Status.

  1. For "Approved," name the action "Approved," make sure it is for the record of "TeacherPass." Navigate to the "Do This" option and the drop-down beside it, and select the option that is "Data: set the values of some columns in this row." Now, you should see the "Set these columns" prompt appear below. Select "Add," then select "Status" as the column. Set the formula to = "Approved". Scroll down to appearance and select "check" for the action icon. Select "Display Prominently" for "Prominence." Under "Behavior," set the "Only if this condition is true" to = [Status] <> "Approved"
  2. For "Denied," name the action "Denied," make sure it is for the record of "TeacherPass." Navigate to the "Do This" option and the drop-down beside it, and select the option that is "Data: set the values of some columns in this row." Now, you should see the "Set these columns" prompt appear below. Select "Add," then select "Status" as the column. Set the formula to = "Denied". Scroll down to appearance and select "times" (x-mark) for the action icon. Select "Display Prominently" for "Prominence." Under "Behavior," set the "Only if this condition is true" to = [Status] <> "Denied"
  3. For "Pending," name the action "Pending," make sure it is for the record of "TeacherPass." Navigate to the "Do This" option and the drop-down beside it, and select the option that is "Data: set the values of some columns in this row." Now, you should see the "Set these columns" prompt appear below. Select "Add," then select "Status" as the column. Set the formula to = "Pending". Scroll down to appearance and select "pause" for the action icon. Select "Display Prominently" for "Prominence." Under "Behavior," set the "Only if this condition is true" to = [Status] <> "Pending"

Make Email Notification Automation

1.png
1.png
1.png
1.png

Go the the little bot symbol on the navigation bar on the left side called "Bots," click on it. Click the plus button to "Create a New Bot." Under "When this EVENT occurs," (the cause) select "A new <App Title> record is created." Now, scroll under "Run this PROCESS." This is your effect, or your dependent variable. Type notification into the search bar and select the "Send an SMS option." Now click on this selection and navigate to the settings tab on the right side. Select the "Send an email" card, and "Custom Template" for the "Email Type." Select "MinerPass" for the "Table Name." Under "To," type the email that you want the notifications to be sent to. Multiple automations can be set up for each teacher email with another step to the automation stating "If <teacher name / email> is included," and then routing it to that specific teacher. However, in this case, we route the notifications to one email to keep things decluttered and not spam the teachers when testing the application. Under "Email Subject," type the following (without quotations):

"<<_UPDATEMODE>> to application '<<_APPNAME>>' table '<<_TABLENAME>>' by '<<USEREMAIL()>>' at <<NOW()>>"

Under "Email Body," type the following (without quotations):

"MinerPass <<[Type]>> created by '<<USEREMAIL()>>` at <<NOW()>>. Will visit <<[Teacher]>> in <<[Room #]>> at <<[Time]>> for <<[Limit]>>."

This will form an email that informs the teacher upon creation of a pass of what kind of pass has been by created by which User, at which time, and where they plan to visit, with whom, at what time, and for how long.

Finished!

1.png
1.png
1.png

It's as quick an easy as that! Remember that AppSheet isn't always a very reliable app and can become frustrating to tinker with, but the point is to mess with the settings and try your best to find a solution to get your desired outcome. It'll take many attempts, even following the instructions, because AppSheet isn't particularly consistent in outcomes.