# Classroom Attendance App - Track Absentees

**URL:** <https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204>\
**Category:** Ask for Help\
**Created:** [January 28, 2023, 6:18am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204 "2023-01-28T06:18:37Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 6:18am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/1 "2023-01-28T06:18:37Z")

</div>

Hi there, I’m in the process of designing a self check-in app for my students allowing them to check in when they are within the vicinity. Most of the functionality is working smoothly except it requires a user to trigger the ‘add row’ to log the student’s attendance.

As of now, a student can be present (on time), late (past class start time), or absent (self apply for leave of absence). BUT if the student doesn’t use the app to report that they are not showing up, the student would not be reflected in the Attendance table.

I currently have an Attendance table that collates all their attendance data with these columns

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/f/1f23aab281b37e36f8d39660673762dd91a5045c.png)

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/c/7c104c9d7a4f6f78da603e0df59647a985b9fbab.png)

I thought of maybe using a script to auto generate an empty row with “today’s date” logged in the datestamp for each student but I’m wondering if there is a smarter way to do this. Or maybe I should structure my data differently.

Open to ideas! Thanks

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 6:36am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/3 "2023-01-28T06:36:40Z")

</div>

> [@Jireh\_Lee](#):
>
> I thought of maybe using a script to auto generate an empty row with “today’s date” logged in the datestamp for each student but I’m wondering if there is a smarter way to do this.

Yeah, that seems a bit superfluous and wasteful.  
My question would be how do you intend to use and present the attendance data in the App?

When a user views a Student record, should they see an entire history of their attendance?  
Or a week at a time, or a month at a time?  
What sort of reporting requirements do you have?  
Do you need to aggregate data for all students, or just report on individual students?

My thinking is that this is where a helper table could be useful.  
Imagine a table with a fixed number of rows. 100, 200, whatever.  
You dynamically generate a list of dates in this table, one date for each row, going back in time, starting at today (or some user selected date). If weekends aren’t relevant, you could set it up so that weekends are skipped. Now when a user views a Student record, you write a StudentID to a User Specific Column, and then apply it to all rows in your helper table. You can then use that to build a relation to your Attendance table. Where ever that relation is empty, it means there is no row in the Attendance table, and so you can assume non-attendance for that day (or some other default status).

The above may or may not work well for your use case, but might be one option.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 6:37am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/4 "2023-01-28T06:37:16Z")

</div>

I think a possible solution Glide can provide is an automation to add a row upon a defined time of day to automatically with a field set to ‘Absent’. Not sure how this can be achieved.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 6:43am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/5 "2023-01-28T06:43:13Z")

</div>

Hi Darren,

The student would also be able to preview their attendance record (i.e. how many present VS absent days) as they would need to monitor how many more times can they be absent before they forfeit graduating.

Ideally it would be an instant report as they log daily. Would you suggest a weekly report instead?

Also for the sake of the administrator overseeing all the students in that class, they would need to aggregate the data on their backend as well so that they can follow up with the student (especially when approaching critical).

rdg your suggestion: I’m not entirely sure i know how that looks like… would you be able to provide a screenshot of the table so that i can get a clearer idea?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 6:46am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/6 "2023-01-28T06:46:56Z")

</div>

If you can share a sheet with some dummy attendance data, I can make a simple concept App to demonstrate how it could work.

30 or 40 rows of data should be enough.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 6:53am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/7 "2023-01-28T06:53:58Z")

</div>

Here is an empty sheet. Not sure what sort of data you need from me. I have a table containing the course names, and another table for the topics within each course, and a table with the number of classes and their dates for each topic. I can provide these if it is useful for your reference.

> **[Attendance App](https://docs.google.com/spreadsheets/d/1ag763dlTtdnGDQZGKWpxEV-MvnNNlJBFt24mfd7ssKo/edit#gid=0)**
>
> Attendance Data
> 
> Student ID,Timestamp,Datestamp,🔒 Attendance ID,Status,LOA,LOA Reason
> THC1003,2023-01-28T10:12:12.000Z,2023-01-28T06:12:12.125Z,Ihuoe4WQSTiIhLmACbhFzA,Checked...

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 7:09am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/8 "2023-01-28T07:09:05Z")

</div>

Just looking at your sheet, it seems that Students will check in and check out on the same day?  
Do you use both for determining their overall status, or do you just look for a check in?

Anyway, never mind. I can generate enough random data using ChatGPT to be able to make a concept.

Give me a little while to do that.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 7:11am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/9 "2023-01-28T07:11:01Z")

</div>

The check in and check out is on the same day. Think of it like a punch card. We do that because it is a part time program with only 2 classes each day. The clock in shows that the student was present for class #1 and the clock out shows that they were there till the end of class #2.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 8:14am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/10 "2023-01-28T08:14:27Z")

</div>

@Jireh_Lee - here you go. The way I have set this up is a bit different to how I understand your App works, but the idea is just to demonstrate the general concept. Hopefully the video does that.

The video is a bit lengthy, but I’ve tried to explain as much as possible.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 8:26am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/11 "2023-01-28T08:26:27Z")

</div>

That was absolutely brilliant! Thanks Darren!

I do have 1 question. So for the helper table, do I have to create a row for every day of the 9 months of this program or is this auto generated month to month?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 8:34am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/12 "2023-01-28T08:34:18Z")

</div>

It depends how much data you need to be able to view at a single time.

As I alluded to at the end of the video, you could extend it by adding two User Specific Columns to the helper table - one for a start date and one for an end date. Then you could have a couple of date pickers to allow a user to select a date range. Then in the helper table you’d use the Start Date as the first row and add the index to that to get a list of dates (instead of starting from today). Then it’s just a bit of extra logic to only include rows that fall within the selected date range.

With that approach you just need to decide the maximum number of rows you want to be able to view at a time, and that’s how many rows you need in the helper table.

The nice thing about this approach is that it’s fully dynamic, and every user gets a unique experience. For example, you could have 10 users viewing data for different students at the same time. They’d all be using the same helper table, but the data they’d be seeing would be specific to the student they’d selected.

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 8:36am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/13 "2023-01-28T08:36:59Z")

</div>

last request, I know you mentioned at the beginning about the index row being a common question. Could you please point me in the direction of the post with the relevant information or could you screenshot your column setting for the 2nd and 3rd columns?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [January 28, 2023, 8:40am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/14 "2023-01-28T08:40:15Z")

</div>

You need the second use case from the below.

> [@How do I create an auto-incrementing row number with Glide Tables?](https://community.glideapps.com/t/how-do-i-create-an-auto-incrementing-row-number-with-glide-tables/39572):
>
> This is a question that comes up a lot, so creating this topic to use as a reference. Typically, there are two distinct use cases when it comes to auto-incrementing row numbers. Use Case 1: – We need to generate a Part Number, or an Order Number, or an Employee ID. Once the number is generated, it should never change, even if rows are deleted. – The general approach for this use case is to maintain a static counter, use it to craft a suitably formatted ID, and increment it by one every time…

---

<div class="post-metadata">

**Author:** ![Jireh\_Lee](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jireh_lee/32/52727_2.png) [@Jireh\_Lee](https://community.glideapps.com/u/Jireh_Lee)\
**Post date:** [January 28, 2023, 9:00am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/15 "2023-01-28T09:00:07Z")

</div>

Got it. Super helpful! Cheers mate!

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [January 29, 2023, 9:00am UTC](https://community.glideapps.com/t/classroom-attendance-app-track-absentees/57204/16 "2023-01-29T09:00:26Z")

</div>

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
