Smart School Attendance: Virtual Solution to... | F1000Research "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r 3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://f1000research.com/js/vendor/ckeditor/' window.reactTheme = 'research'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2318163,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); search file_upload Submit your research search menu close search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Open Data, Software and Code Guidelines Open Data and Accessible Source Materials Guidelines (HSS) Open Data, Software and Code Guidelines (PSE) Prepublication Checks Production Process Posters and Slides Guidelines Document Guidelines Article Processing Charges Peer Review Finding Article Reviewers About How it Works For Reviewers Our Advisors Policies Glossary FAQs For Developers Newsroom Contact My Research Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://f1000research.com/articles/15-240" }, "headline": "Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary...", "datePublished": "2026-02-12T03:46:34", "dateModified": "2026-02-12T03:46:34", "author": [ { "@type": "Person", "name": "Juan Chávez-Saldaña" }, { "@type": "Person", "name": "Jesus Guevara-Ramos" }, { "@type": "Person", "name": "Alexander Leandro-Mendoza" }, { "@type": "Person", "name": "Alex Pacheco" } ], "publisher": { "@type": "Organization", "name": "F1000Research", "logo": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 480, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 1200, "width": 150 }, "description": " Background School attendance monitoring is an essential component of educational management in public schools, especially at secondary schools. In Peruvian rural regions such as Imperial-Cañete, attendance is registered manually, generating inefficiencies, human error, and lack of immediate traceability. This situation is amplified by digital divide: only 18.5% of rural houses have stable internet access, limiting the implementation platforms that depend on constant connectivity. Methods The study was realized using agile methodology (Scrum) with five phases to develop a web-based attendance system. Phase one involved analyzing requirements for the attendance system based on needs of school employees and parents. Phase two involved prioritizing requirements and defining tasks with deadlines. Implementation used modern web technologies (Next.js, Node.js, WebSockets) and hybrid data architecture (PostgreSQL, MongoDB, Redis, Google Drive) to ensure efficient and reliable operation. Finally, after completing previous phases, developed software was implemented and additional testing to ensure correct functionality. Results After implementation of the web platform, we identified significant improvements: complete automation of attendance registration using QR codes, which drastically reduced registration times and errors associated with manual methods; successful implementation of real-time parental monitoring, allowing parents access to their children’s daily and monthly attendance registers; integration of automatic email notifications to tutors and administrators in cases of consecutive absences or tardiness; and differentiated role-based access for school employees (assistants, teachers, and directors). The use of information technology ensured operational consistency even under poor connectivity conditions through local caching (IndexedDB) and synchronization. Conclusions This research focuses specifically on optimizing attendance management in rural secondary schools using information technology. The study is characterized by its personalized web platform designed to support the specific needs of educational institutions with limited connections. The results demonstrated the efficiency of this robust approach and its positive impact on school attendance management. " } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://f1000research.com/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://f1000research.com/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://f1000research.com/articles/15-240/v1", "name": "Smart School Attendance: Virtual Solution to Optimize Registration..." } } ] } Home Browse Smart School Attendance: Virtual Solution to Optimize Registration... ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Chávez-Saldaña J, Guevara-Ramos J, Leandro-Mendoza A and Pacheco A. Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.12688/f1000research.174659.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Software Tool Article Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] Juan Chávez-Saldaña 1 , Jesus Guevara-Ramos https://orcid.org/0000-0002-5102-0891 1 , Alexander Leandro-Mendoza https://orcid.org/0000-0002-8514-6804 1 , Alex Pacheco https://orcid.org/0000-0001-9721-0730 1 Juan Chávez-Saldaña 1 , Jesus Guevara-Ramos https://orcid.org/0000-0002-5102-0891 1 , Alexander Leandro-Mendoza https://orcid.org/0000-0002-8514-6804 1 , Alex Pacheco https://orcid.org/0000-0001-9721-0730 1 PUBLISHED 12 Feb 2026 Author details Author details 1 Professional School of Systems Engineering, Universidad Nacional de Cañete, San Vicente de Cañete, Lima, 15701, Peru Juan Chávez-Saldaña Roles: Conceptualization, Methodology, Software, Writing – Original Draft Preparation, Writing – Review & Editing Jesus Guevara-Ramos Roles: Conceptualization, Methodology, Software, Writing – Original Draft Preparation, Writing – Review & Editing Alexander Leandro-Mendoza Roles: Conceptualization, Methodology, Writing – Original Draft Preparation, Writing – Review & Editing Alex Pacheco Roles: Conceptualization, Methodology, Writing – Original Draft Preparation, Writing – Review & Editing OPEN PEER REVIEW DETAILS REVIEWER STATUS This article is included in the Software and Hardware Engineering gateway. Abstract Background School attendance monitoring is an essential component of educational management in public schools, especially at secondary schools. In Peruvian rural regions such as Imperial-Cañete, attendance is registered manually, generating inefficiencies, human error, and lack of immediate traceability. This situation is amplified by digital divide: only 18.5% of rural houses have stable internet access, limiting the implementation platforms that depend on constant connectivity. Methods The study was realized using agile methodology (Scrum) with five phases to develop a web-based attendance system. Phase one involved analyzing requirements for the attendance system based on needs of school employees and parents. Phase two involved prioritizing requirements and defining tasks with deadlines. Implementation used modern web technologies (Next.js, Node.js, WebSockets) and hybrid data architecture (PostgreSQL, MongoDB, Redis, Google Drive) to ensure efficient and reliable operation. Finally, after completing previous phases, developed software was implemented and additional testing to ensure correct functionality. Results After implementation of the web platform, we identified significant improvements: complete automation of attendance registration using QR codes, which drastically reduced registration times and errors associated with manual methods; successful implementation of real-time parental monitoring, allowing parents access to their children’s daily and monthly attendance registers; integration of automatic email notifications to tutors and administrators in cases of consecutive absences or tardiness; and differentiated role-based access for school employees (assistants, teachers, and directors). The use of information technology ensured operational consistency even under poor connectivity conditions through local caching (IndexedDB) and synchronization. Conclusions This research focuses specifically on optimizing attendance management in rural secondary schools using information technology. The study is characterized by its personalized web platform designed to support the specific needs of educational institutions with limited connections. The results demonstrated the efficiency of this robust approach and its positive impact on school attendance management. READ ALL READ LESS Keywords QR code attendance system, smart educational platform, parental supervision, low connectivity environments, hybrid data architecture; rural education, open-source technologies, automatized notification system. Corresponding Author(s) Juan Chávez-Saldaña ( [email protected] ) Jesus Guevara-Ramos ( [email protected] ) Close Corresponding authors: Juan Chávez-Saldaña, Jesus Guevara-Ramos Competing interests: No competing interests were disclosed. Grant information: This study was financed by the Innovation and Technology Transfer Department of the Vice Presidency for Research at the Universidad Nacional de Cañete (UNDC) as part of the “Research Competition for the Development of Innovations and Intellectual Property” [contract number 019-2024]. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2026 Chávez-Saldaña J et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Chávez-Saldaña J, Guevara-Ramos J, Leandro-Mendoza A and Pacheco A. Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.12688/f1000research.174659.1 ) First published: 12 Feb 2026, 15 :240 ( https://doi.org/10.12688/f1000research.174659.1 ) Latest published: 12 Feb 2026, 15 :240 ( https://doi.org/10.12688/f1000research.174659.1 ) Introduction There has been a significant increase in the popularity of web-based systems globally over the last decade, mostly attributed to their sophisticated nature and their capacity to provide simultaneous user support. 1 Research by Mulyananda et al. 2 in Indonesia also highlighted the importance of information technology (IT) systems in attendance management, finding that manual control was time-consuming in educational care. According to Molina-Ríos and Pedreira-Souto, 3 these systems are similar to traditional software and require development processes that include requirements gathering and programming in different languages, which can lead to uncertainty during their development. In addition, the generalized adoption of web systems, driven by their fast growth and many advantages, contributed significantly to educational management, 4 facilitating direct interaction between end users and web page content. In Peru, many public and private organizations have implemented software to automatize their educational processes, giving them a competitive advantage by enabling them to reduce costs in terms of money, time, and personnel. 5 In this context, the education sector has shown increasing investment on technology, with private education and professional activities among the most important sectors. 6 In the public education sector, institutions have the responsibility to account for, control, and report student attendance in a responsible manner. 7 These educational institutions are subordinate to the “Unidad de Gestión Educativa Local” (UGEL), as an example of local government decentralization, and depend on the “Dirección Regional De Educación” (DRE) for administrative, regulatory, and technical support. Management follows the rules of the “Ministerio de Educación” (MINEDU), which standards codes and processes for student control, where failure or delays in sending this information can result in warnings, memorandums, or the retention of financial resources. 8 A number of educational settings have been implementing web-based attendance systems with positive results. Jadhav et al. 9 developed a QR code-based system that accelerates and automatizes attendance registration in educational institutions, improving efficiency and reducing administrative cost. On the other hand, Rahaman et al. 10 developed SmartPresence, a system that exploits Wi-Fi networks to automatically register attendance, showing the effectiveness of lightweight technologies in educational management. In a similar way, agile methodologies such as Scrum have facilitated the successful implementation of educational systems, allowing iterative acceleration and achieving functionalities that improve significantly the control work. 11 Currently, according to information provided by officials at public educational institutions in San Vicente de Cañete, Lima, Peru, attendance information is registered in paper documents and then typed into Excel worksheets, which has reportedly resulted in unorganized and duplicated registrations over the year, as well as reports with incomplete or incorrect information. Therefore, the objective of this research is to implement web-based software that will improve the school attendance control process and provide the institution with a technological advance to face new educational challenges. In addition, it seeks to provide accurate information on student attendance, which will enable efficient management of institutional resources and indirectly promote quality education for both students and society. While it is true that there are several applications with similar objectives in other fields, 12 it is important to note that the application described in this article has been developed especially for the rural secondary education area, taking into account the particular needs and requirements of an institution which lacks both technological tools and knowledge in the implementation of technology in the education process. This tool is a significant innovation in the context of rural education and represents an important solution for improving attendance monitoring in schools with limited connectivity. The application complies with education sector laws and regulations regarding information management 13 and demonstrates how technology can be used to improve public-sector services and promote digital transformation. This may be relevant for other institutions wishing to implement digital solutions to improve information management. It therefore represents an innovation in the local context and contributes to the progress of digital solution implementation in the education context. Methods In this section, we provide a detailed account of the methods used in the development and operation of our software tool customized for attendance registration in secondary educational institutions. Implementation Development technologies The software platform was meticulously developed using a combination of cutting-edge technologies. The backend is powered by Node.js, an open-source JavaScript runtime environment recognized for its consistency and efficiency, taking full advantage of modern JavaScript capabilities. Also, the frontend is built on Next.js, an open-source React framework that ensures a dynamic and responsive user interface, incorporating server-side rendering (SSR) and static site generation (SSG). In addition, TypeScript was implemented as the main development language, allowing for the application of best programming practices through static typing, early error detection, and greater code maintainability. Strategic plug-in integration To enhance the functionality of our software tool, we incorporated many plugins and essential libraries, including: • Socket.io for real-time bidirectional communication using WebSockets • Nodemailer for generating and sending email notifications • QR Code libraries for advanced QR code generation capabilities • Redis client for managing temporary data with automatic expiration • MongoDB Driver and PostgreSQL client for interacting with relational and non-relational databases Customization for educational institutions The central framework of our software was customized to align with the distinctive requirements of secondary schools. This involved adapting the categorization of students by grade and section, user roles (auxiliaries, teachers, directors, parents), and reporting functionalities specifically to address the needs of educational attendance management. Technological details for indexation consideration • Backend Framework: The system is based on Node.js, an open-source JavaScript runtime environment that, together with TypeScript, promotes good programming practices and greater code maintainability. • Frontend Framework: The user interface is built using Next.js, an open-source React framework known for its dynamic and responsive design with SSR/SSG capabilities. • Real-time Communication: Socket.io for real-time bidirectional communication. • Database Systems: PostgreSQL for school employee data and MongoDB for high-volume student information. • Caching Layer: Redis for temporary storage with daily expiration, IndexedDB for client-side caching. • Cloud Storage: Google Drive for file storage (profile photos, attendance JSON files). • Task Automation: GitHub Actions for scheduled tasks and data synchronization. Evaluation criteria during system review During the system revision process, the following evaluation standards were judiciously employed to assess the effectiveness and applicability of the developed system: • Functionality: Evaluation of the system’s functionalities and capabilities, with a focus on seamless integration and operational efficiency, especially the attendance registration flow using QR codes, parental consultation, and automatic notifications. • Security: Strict evaluation of API authentication mechanisms and user role management to ensure strong authentication and security measures. • Resilience: Examination of the system’s ability to operate under low connectivity conditions, evaluating local caching mechanisms, FIFO queues, and delayed synchronization. • Reporting: Testing of reporting features adapted for schools, evaluating their integration with specific needs for attendance management and parental monitoring. • Scalability: Evaluation of distributed architecture with multiple server and database instances to ensure availability and load distribution. Operation Minimal system requirements The web-based attendance control system operates smoothly with minimal system requirements. These include: Server • Node.js-compatible server environment • Support for PostgreSQL, MongoDB, and Redis • Storage capacity appropriate for hosting student attendance data Client • A modern web browser with JavaScript enabled • Support for IndexedDB (local browser storage) • Built-in or external camera for scanning QR codes • Internet connectivity for web-based access (with offline capability using local cache) Adhering to these minimum system requirements ensures that our software tool remains accessible and functional, even in resource-constrained rural educational environments. Unique features This software tool has distinctive features that set it apart from existing solutions: • Educational institution-centric for rural contexts: our software is specifically designed for rural secondary educational institutions with low connectivity, accommodating their specific workflows and requirements for efficient attendance management. • Offline-first architecture: ability to operate without a continuous Internet connection through local caching (IndexedDB), non-blocking FIFO queues, and automatic synchronization when connectivity is restored. • Parental monitoring integration: comprehensive parental monitoring module that allows parents and legal representatives to access daily and monthly attendance records in real time, promoting family-school co-responsibility. • Automated notification system: automatic email notifications to tutors and directors about patterns of consecutive absenteeism or tardiness, facilitating early intervention. • Hybrid data architecture: strategic combination of PostgreSQL (employee data), MongoDB (student data), Redis (temporary data with expiration), and Google Drive (file storage), optimizing performance and costs. • Multi-instance deployment: distributed architecture with multiple instances of UI servers and APIs to ensure high availability using free cloud services (Vercel for frontend). • QR-based attendance: lightweight system based on QR codes that does not require expensive biometric infrastructure, with data compression to optimize recognition. In outlining these unique methods and characteristics, we provide a clear blueprint for the development and implementation of our software tool within rural secondary schools, improving its replicability and applicability. Use Cases Use Case 1: QR code generation for student registration To demonstrate the functionality of the software, we present a specific use case involving the generation of QR codes for students within the educational institution’s inventory. In this scenario, an assistant initiates the generation of QR codes by accessing the system through a device with an integrated camera to request complete lists of students in all academic sections. Upon sending the request, the system queries the MongoDB database (RDP03) and returns the requested information to the mobile interface. In addition, the responsible persons (parents or legal representatives) can also generate QR codes, but only for their children who are students, thus ensuring security and personalization of access within the system. The QR generation module automatically produces student ID cards containing encrypted metadata such as system name (SN), school name (SN), educational level (EL), student grade (SG), identification number (IN), identification type (IT), and academic year. The data is compressed to avoid generating a very dense QR code, which reduces camera and processing requirements while maintaining a high recognition rate, as shown in Figure 1 . Figure 1. QR code generation for student registration. Note : Figure 1 shows the system interfaces for generating QR codes. In (a), the auxiliary generates QR codes in mass quantities for each classroom, obtaining complete lists of students. In (b), the responsible person (parent or legal representative) generates QR codes associated only with their registered children, ensuring the privacy and traceability of the information. Input : • Access to the “QR Generation” module • Selection of educational level and grades Output : • PDF file with student QR cards • Encrypted metadata: SN, SN, EL, SG, IN, IT, Year • Compressed QR codes optimized for recognition Use Case 2: QR-based attendance registration with offline support In this scenario, the software facilitates attendance registration using QR codes under variable connectivity conditions. The process begins when the assistant activates the camera through the system interface (SIU01 component) and students present their printed QR cards. The mobile device’s camera captures the QR code, and the system extracts and processes the text contained therein. An initial validation is performed to verify that the text obtained can be decompressed and decrypted correctly, as shown in Figure 2 . Figure 2. QR-based attendance registration with offline support. Note: The figure shows the complete process of recording attendance within the system. (a) shows the screen where the attendance module is enabled by the teacher or auxiliary. (b) shows the interface for selecting the registration method, allowing a choice between using QR codes or manual registration. (c) details the manual method of attendance registration, where the user marks the presence of each student individually. Finally, (d) shows the QR code scanning registration method, which allows for automated and faster attendance registration, ensuring higher precision and efficiency in the process. When this validation fails, the system displays a specific error message through the SIU01 interface and activates a one-second vibration on the mobile device to alert the assistant. When the QR code is valid, the system queries the student data in IndexedDB, where the updated lists for the day are stored locally, previously synchronized from RDP04 (BLOB storage) or RDP01 (Google Drive). To handle connectivity interruptions, the system implements a non-blocking FIFO queue in IndexedDB. The valid attendance registrations are added to this structure for asynchronous processing, allowing the assistant to continue scanning QR codes without interruption. When Internet connectivity is available, SIU01 processes the queue of attendance records stored in IndexedDB, retrieving the records in FIFO order and sending both the student ID and the time difference in seconds from the entry time to the server, while displaying non-blocking informational messages about the synchronization status. At the same time, the SIU01 saves the records in the Redis database (RDP05) for temporary storage, while the Socket Server (SS01) transmits the data in real time to keep the overall status synchronized among all auxiliary devices. In the event of connectivity interruptions, the system implements resilience mechanisms that allow for operational continuity, storing records locally and processing them automatically when the connection is restored. Input : • Camera activation in attendance interface • Student QR code scanning • Alternatively: manual registration by selecting the student from a list Output : • Attendance recording with exact timestamp • Local FIFO queue storage (IndexedDB) if there is no connectivity • Automatic synchronization to Redis (RDP05) when connectivity is available • Real-time transmission via WebSockets (SS01) to other devices • Visual and haptic (vibration) feedback to the user Use Case 3: Parental monitoring and real-time attendance consultation In this scenario, the system provides responsible persons (parents or legal representatives) with an efficient mechanism for monitoring student attendance. When a responsible person accesses the system via their mobile device and logs into the monthly attendance query interface, a verification process is activated that gives priority to the use of local data when available. The system initially checks whether the requested attendance records are stored in IndexedDB and are up-to-date, allowing for an immediate response without the need to consult remote servers. The interface is designed to integrate all relevant information about student attendance into a single dashboard. It allows parents to view monthly statistics (attendance, lateness, absences), a graphical summary of performance, and a calendar with daily details, including the exact times of each entry. The monthly selection facilitates historical analysis, while teacher and tutor contact details promote direct communication when absence patterns requiring intervention are detected. In case local data is unavailable or needs updating, the system implements a distributed query flow. For the attendances from previous days of the current month, the manager’s device communicates with API02, which queries MongoDB (RDP03) directly, where the complete history is saved. For the current day’s attendance, the system performs a temporary evaluation: if more than two hours have elapsed since the established registration time (1:00 PM), Redis (RDP05) is queried directly; otherwise, the corresponding file is requested from Google Drive (RDP01). This multi-layer architecture ensures that managers have access to up-to-date and reliable information, enabling continuous and opportune parental monitoring, as shown in Figure 3 . Figure 3. Parental monitoring attendance consultation. Note: The figure shows the features designed for guardians to monitor their children's attendance. (a) shows the students linked to the responsible person, allowing them to quickly identify each child under their supervision. (b) details the monthly attendance interface for the selected student, showing daily registrations, as well as punctuality, lateness, and absence percentages, providing a clear and comprehensive view of the student's attendance performance. Input : • Parent/legal representative login • Access to the “Attendance Tracking” module • Select the month to view Output : • Dashboard with monthly statistics: attendance, lateness, absences • Summary graph of attendance performance • Calendar with daily details and exact registration times • Contact information for the tutor • Data retrieved from IndexedDB (if updated) or from API02 to MongoDB/Redis/Google Drive Use Case 4: Automated email notifications for consecutive absences In this final scenario, the system’s capacity to automatically generate notifications to tutors and directors regarding cases of consecutive absences or lateness of secondary school students is demonstrated. This process is executed by the Scheduled Tasks component TPS01, implemented through GitHub Actions and Node.js scripts, which operates periodically to ensure the timely communication of relevant incidents. The flow begins when TPS01 accesses the JSON files stored in Google Drive (RDP01) containing attendance registers from previous days. These files, previously generated by the attendance management system, are processed to identify patterns of absenteeism or lateness among students. The analysis is specifically focused on detecting consecutive cases of absences or tardiness that may require intervention by tutors or Academic Management. Once the relevant cases have been identified, the system queries MongoDB (RDP03) for the email addresses of the corresponding tutors and directors involved. This query ensures that notifications are sent only to authorized recipients who are directly responsible for monitoring each student. Finally, the system sends the reports using External Service SE01, which uses the Gmail platform to distribute emails. Each communication includes detailed information about the incidents detected, allowing tutors and directors to have precise data to implement timely corrective actions, as shown in Figure 4 . Figure 4. Reports of consecutive incidents. Note: The figure shows the automatic notification formats generated by the system in response to recurring student behavior. (a) shows the Consecutive Lateness Report, which is issued when the student exceeds the lateness limit established by the institution. (b) shows the Consecutive Absence Report, which is issued when the student accumulates repeated absences. Both documents include alerts, academic data, and attachments in Excel format, allowing for formal and transparent monitoring of attendance behavior. Input : • Automatic execution of TPS01 (daily scheduled task) • Access to JSON attendance files in Google Drive (RDP01) • Analysis of patterns of consecutive absences/lateness Output : • Identification of students with consecutive incidents • Consultation of emails from tutors and directors in MongoDB (RDP03) • Sending of email notifications via SE01 (Gmail) • Detailed reports with student information, type of incident, and dates Discussion The automated generation of QR codes for student identification represents a significant advance over traditional credentialing systems. Research by Mohammed and Zidan 14 highlighted that animated QR codes effectively reduce fraud in attendance registration, which coincides with our approach of encrypting student metadata in the generated codes. Shah 15 defended QR systems as light-weight alternatives to more expensive biometric devices, validating our decision to implement this technology in a rural context with limited resources. Additionally, Skurowski et al. 16 demonstrated that data compression in QR codes is critical to maintaining high recognition rates even with moderate-resolution cameras, which supports our strategy of compressing metadata before encoding it. For his part, Sancar 17 showed that deep learning-based processing techniques can reconstruct partially damaged QR codes, suggesting future lines of research to improve the resilience of our system to codes damaged by constant physical use. Improvements in attendance recording and the ability to operate without a constant connection significantly optimized the identification and documentation of student attendance. This is consistent with Siew et al., 18 who developed a hybrid facial recognition and QR system that improved transparency and usability in university settings, although our system goes a step further by operating efficiently even without continuous connectivity. Similarly, Rafila et al. 19 validated QR technology in Indonesian universities by replacing paper signatures, confirming significant reductions in registration times, while Shaban et al. 20 developed a QR-based multi-platform application to automate attendance in medical settings, showing how versatile this tech is. This implementation introduces a non-blocking FIFO queue mechanism in IndexedDB that allows for operational continuity during connectivity interruptions, a critical feature validated by Kormos and Wisdom, 21 who identified the digital divide as the main barrier to technological integration in rural schools. The implementation of the parental monitoring module significantly improved transparency and communication between the educational institution and families, allowing parents to consult daily and monthly attendance registers in a structured manner. This is in line with Guo et al., 22 who reported that students whose parents have access to digital monitoring platforms show better attendance rates, corroborating the benefits observed in our implementation. Similarly, Knopik et al. 23 described that during remote education, many parents frequently monitored attendance, demonstrating their readiness to use more structured systems when available. Lee 24 evidenced that parents value tools that allow them to consult school records in an organized and accessible manner, while Calderón-Villarreal et al. 25 demonstrated that parental involvement through digital platforms increased during the pandemic, and that attendance monitoring was a key factor in educational contexts. The automatic notification system improved communication between school employees and enabled early intervention in cases of recurring absenteeism or tardiness. This aligns with Harwanto et al., 26 who found that digital communication that includes notifications about absences increases the perception of transparency and effectiveness in school management. Similarly, Musaddiq et al. 27 showed that the use of integrated digital platforms for attendance monitoring contributes to increasing institutional responsibility for student retention metrics. Hansen et al. 28 emphasized the importance of systems that, in addition to monitoring attendance, offer structured support in cases of prolonged absenteeism, facilitating the early identification of students at risk. For his part, O’Connor Bones 29 focused on communication with parents during the pandemic, and his results support the relevance of timely and automatized notifications as a means of reinforcing educational management and support in contexts of high uncertainty. Conclusions The web-based platform has significantly improved the attendance monitoring process at the public secondary school in Imperial, Cañete. After its implementation, the software demonstrated notable improvements in the four proposed dimensions (QR code generation, offline attendance recording, parental monitoring, and automatic notifications). These improvements have significantly benefited the school by optimizing the attendance monitoring process. The development and implementation of the QR code-based smart web platform has proven to be a viable and efficient solution for attendance management in rural educational institutions in Imperial, Cañete. In contrast to systems that rely on costly infrastructure or permanent connectivity, this model makes use of low-cost, light-weight technologies, facilitating its adoption in resource-limited environments. The simplicity of QR codes, combined with an optimized workflow, significantly reduces registration times and minimizes human errors associated with manual methods. One fundamental contribution of this system lies in its hybrid, multi-level architecture, which incorporates local (IndexedDB), temporary (Redis), and persistent (MongoDB/Google Drive) caching strategies. This design ensures operational continuity even in scenarios with interrupted connectivity, a critical feature in areas with a digital divide. The ability to operate offline and synchronize data later ensures that attendance records are not interrupted, improving the reliability of the process. In addition, the integration of parental monitoring as a central component of the system reinforces the relationship between the school and the parents. Allowing parents to access their children’s attendance records in real time promotes active co-responsibility in the school process. Finally, this research should be applied in other secondary schools, both public and private, with similar characteristics of limited connectivity, in order to improve and have access to precise and fast information on student attendance. At the same time, the extension of methods with complementary technologies such as NFC or integration with lightweight biometric systems is suggested, with the objective of further optimizing attendance registration time. In the future, it is considered relevant to develop predictive models based on accumulated historical attendance data that allow for the early identification of patterns of risk of school dropout, as well as to explore integration with the national education management system of the Peruvian Ministry of Education. The use of free cloud services and open-source tools shows that it is possible to deploy modern, scalable architectures with minimal investment. The modular approach and implementation through microservices make the solution adaptable and replicable in other educational contexts with similar challenges, constituting a practical benchmark for technological innovation in rural environments or those with infrastructure restrictions. Ethics approval and consent This study received institutional authorization from I.E. No. 20935 Asunción 8, granted by Director Elena Cullanco Serafina on December 17, 2025. The school authorized the use of its institutional context as a case study with the express agreement that all data on students, school employees, and tutors published in academic repositories would be completely made up and used for demonstration purposes, protecting the privacy of the real school community. Individual consent from participants was not required, as the system was developed through an analysis of institutional needs with the school administration, and all personal data published in academic repositories was generated synthetically for demonstration purposes, without using real information from students, teachers, or parents. The institutional authorization letter is included as a supporting document confirming that: (1) the institution approved the research and development of the system, (2) all published data would be fictitious to protect privacy, (3) the analysis of the system was based on real institutional needs, but the publication of data uses only synthetic information, and (4) the institution complies with Peruvian data protection laws relating to information on minors. Software availability Software available from: Source code available from : https://github.com/GeoCoderDev/SIASIS-WEB Archived source code at time of publication : https://zenodo.org/records/17636629 31 License: https://creativecommons.org/licenses/by/4.0/ Data availability Underlying data The actual institutional data for I.E. No. 20935 Asunción 8 is restricted due to the protection of child privacy and compliance with Peruvian data protection laws. The institutional director authorized this study on the explicit condition that no actual personal data of students, teachers, or parents be disclosed publicly. All data shown in this publication and associated repositories are synthetic/fictitious, generated specifically for demonstration and academic purposes. Extend data All materials necessary to understand, evaluate, and replicate the system are publicly available at Zenodo https://zenodo.org/records/18027788 , 30 including: • PostgreSQL database schema documentation (454 KB) • Complete synthetic dataset (SQL script with 50 fictional students, 1,417 KB) • Requirements analysis and system documentation (1,109 KB) • Institutional authorization letters from I.E. N° 20935 Asunción 8: English translation (642 KB) and original Spanish document (740 KB) • Detailed README explaining all files Acknowledgements Special recognition is given to the Universidad Nacional de Cañete, as well as to the teachers, students, and collaborators who, with their commitment and guidance, made it possible to develop this scientific article within the framework of the academic formation received. References 1. Morales-Vargas A, Pedraza-Jiménez R, Codina L: Website quality: An analysis of scientific production. El profesional de la información. Sep. 2020. Publisher Full Text 2. Mulyananda MFF, Gunawan MA, Gaol FL, et al. : Application of ‘Face Recognition’ Technology for Attendance Management System. Journal of Advances in Information Technology. 2021; 12 (3). Publisher Full Text 3. Molina-Ríos J, Pedreira-Souto N: Comparison of development methodologies in web applications. Inf. Softw. Technol. Mar. 2020; 119 : 106238. Publisher Full Text 4. García-Feijoo M, Eizaguirre A, Rica-Aspiunza A: Systematic Review of Sustainable-Development-Goal Deployment in Business Schools. Sustainability. Jan. 2020; 12 (1): 440. Publisher Full Text 5. Wilson C, Mergel I: Overcoming barriers to digital government: mapping the strategies of digital champions. Gov. Inf. Q. Apr. 2022; 39 (2): 101681. Publisher Full Text 6. Cerna Ruiz L, Brito Mallqui C, Nivin Vargas L, et al. : Proyectos de aprendizaje-servicio en el marco de la Responsabilidad Social Universitaria en las Instituciones Educativas rurales del distrito de Independencia, Huaraz, Perú. RIDAS. Revista Iberoamericana de Aprendizaje-Servicio. May 2020; 9 : 43–61. Publisher Full Text 7. Baltodano Nontol LA, Aguilar Aragón ND: Gestión educativa que desarrollan los directores de las instituciones públicas de educación básica regular en el distrito de Trujillo, 2016. UCV-Scientia. Feb. 2020; 11 (1): 45–50. Publisher Full Text 8. Pérez Lucano E, Nelson Tejada J: Educación en zonas altoandinas del perú: reto y oportunidad para el Desarrollo Humano. REVISTA MUCIN. Jan. 2024; no. 7 . Publisher Full Text 9. Jadhav PP, Patil VD, Shah SP, et al. : ScanIn: QR Code based Attendance System using Python. 2023 International Conference on Sustainable Communication Networks and Application (ICSCNA). IEEE; Nov. 2023; pp. 1491–1496. Publisher Full Text 10. Rahaman M, Islam MM, Nandi D: SmartPresence: Wi-Fi-based online attendance management for smart academic assistance. Journal of Electrical Systems and Information Technology. Jun. 2025; 12 (1): 23. Publisher Full Text 11. Artyukhov AE, Volk II, Vasylieva TA: Agile methodology in higher education quality assurance system for SDGs 4, 8 and 9 achievement: national experience. CTE Workshop Proceedings. Mar. 2022; 9 : 81–94. Publisher Full Text 12. Pereira TF, et al. : A web-based Voice Interaction framework proposal for enhancing Information Systems user experience. Procedia Comput. Sci. 2022; 196 : 235–244. Publisher Full Text 13. Demir KA: Smart education framework. Smart Learning Environments. Dec. 2021; 8 (1): 29. Publisher Full Text 14. Mohammed MS, Zidan KA: Enhancing attendance tracking using animated QR codes: a case study. Indonesian Journal of Electrical Engineering and Computer Science. Sep. 2023; 31 (3): 1716. Publisher Full Text 15. Shah D: Quick Response (QR) Code based Attendance Marking System. Int. J. Comput. Appl. Jan. 2020; 177 (33): 43–47. Publisher Full Text 16. Skurowski P, Nurzyńska K, Pawlyta M, et al. : Performance of QR Code Detectors near Nyquist Limits. Sensors. Sep. 2022; 22 (19): 7230. PubMed Abstract | Publisher Full Text | Free Full Text 17. Sancar Y: Reconstructing unreadable QR codes: a deep learning based super resolution strategy. PeerJ Comput. Sci. Apr. 2025; 11 : e2841. PubMed Abstract | Publisher Full Text | Free Full Text 18. Siew ESK, Chong ZY, Sze SN, et al. : Streamlining Attendance Management in Education: A Web-Based System Combining Facial Recognition and QR Code Technology. Journal of Advanced Research in Applied Sciences and Engineering Technology. Nov. 2023; 33 (2): 198–208. Publisher Full Text 19. Rafila A, Darmanto T, Kurniawan R: QR Code-based Student Attendance System in STMIK ‘AMIKBANDUNG. J. Inf. Technol. Mar. 2020; 2 (1): 31–38. Publisher Full Text 20. Shaban S, et al. : Developing a student attendance app using QR codes: educational and practical considerations. International Journal of Technology Enhanced Learning. 2021; 13 (1): 92. Publisher Full Text 21. Kormos E, Wisdom K: Rural Schools and the Digital Divide. Theory & Practice in Rural Education. Jun. 2021; 11 (1). Publisher Full Text 22. Guo J, Zhao B: Relationship between parental school involvement and its barriers among parents of students in grades 4 to 9: based on latent class and correspondence analyses. BMC Psychol. Feb. 2025; 13 (1): 106. PubMed Abstract | Publisher Full Text | Free Full Text 23. Knopik T, Błaszczak A, Maksymiuk R, et al. : Parental involvement in remote learning during the COVID-19 pandemic—Dominant approaches and their diverse implications. Eur. J. Educ. Dec. 2021; 56 (4): 623–640. PubMed Abstract | Publisher Full Text | Free Full Text 24. Lee TT: The texture of parental experiences with online learning: the interplay of norms, relationships, and emotions. Br. J. Sociol. Educ. Jan. 2025; 46 (1): 75–93. Publisher Full Text 25. Calderon-Villarreal A, Garcia-Hernandez A, Olvera-Gonzalez R, et al. : Parental Involvement Barriers and Their Influence on Student Self-Regulation in Primary Education. Educ. Urban Soc. May 2025; 57 (4): 327–346. Publisher Full Text 26. Harwanto F, Werdiningsih R, Pudjiarti ES: The Role of Digital Communication Between Parents and Schools in Improving the Effectiveness of Student Attendance and Scholarship Administration at SMA XYZ. International Journal of Humanities and Social Sciences Reviews. Aug. 2025; 2 (3): 75–86. Publisher Full Text 27. Musaddiq T, Prettyman A, Smith J: Using Existing School Messaging Platforms to Inform Parents about Their Child’s Attendance. J. Res. Educ. Effect. Oct. 2024; 17 (4): 770–805. Publisher Full Text 28. Hansen UI, Munkhaugen EK, Larsen K: Parental perspectives on school attendance problems and the role of municipal support systems. Frontiers in Child and Adolescent Psychiatry. Jun. 2025; 4 . PubMed Abstract | Publisher Full Text | Free Full Text 29. O’Connor Bones U, Bates J, Finlay J, et al. : Parental involvement during COVID-19: experiences from the special school. Eur. J. Spec. Needs Educ. Nov. 2022; 37 (6): 936–949. Publisher Full Text 30. Chavez-Saldaña J, Guevara-Ramos J: SIASIS - Extended Data: Synthetic Dataset and System Documentation. Zenodo. 31. Chavez-Saldaña J, Guevara-Ramos J: Sistema de Asistencia - SIASIS. Zenodo. Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 12 Feb 2026 ADD YOUR COMMENT Comment Author details Author details 1 Professional School of Systems Engineering, Universidad Nacional de Cañete, San Vicente de Cañete, Lima, 15701, Peru Juan Chávez-Saldaña Roles: Conceptualization, Methodology, Software, Writing – Original Draft Preparation, Writing – Review & Editing Jesus Guevara-Ramos Roles: Conceptualization, Methodology, Software, Writing – Original Draft Preparation, Writing – Review & Editing Alexander Leandro-Mendoza Roles: Conceptualization, Methodology, Writing – Original Draft Preparation, Writing – Review & Editing Alex Pacheco Roles: Conceptualization, Methodology, Writing – Original Draft Preparation, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information This study was financed by the Innovation and Technology Transfer Department of the Vice Presidency for Research at the Universidad Nacional de Cañete (UNDC) as part of the “Research Competition for the Development of Innovations and Intellectual Property” [contract number 019-2024]. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Article Versions (1) version 1 Published: 12 Feb 2026, 15:240 https://doi.org/10.12688/f1000research.174659.1 Copyright © 2026 Chávez-Saldaña J et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics Views Downloads F1000Research - - PubMed Central info_outline Data from PMC are received and updated monthly. - - Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Chávez-Saldaña J, Guevara-Ramos J, Leandro-Mendoza A and Pacheco A. Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.12688/f1000research.174659.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Version 1 VERSION 1 PUBLISHED 12 Feb 2026 Views 0 Cite How to cite this report: Perin MAD. Reviewer Report For: Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.5256/f1000research.192582.r465537 ) The direct URL for this report is: https://f1000research.com/articles/15-240/v1#referee-response-465537 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 31 Mar 2026 Max Angelo Dapitilla Perin , Bohol Island State University, Tagbilaran City, Central Visayas, Philippines Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.192582.r465537 This article presents a web-based attendance monitoring system designed for rural secondary schools in Imperial, Cañete, with features such as QR-code-based registration, offline-capable operation, parental monitoring, automated email notifications, and role-based access for school personnel. The topic is relevant and ... Continue reading READ ALL This article presents a web-based attendance monitoring system designed for rural secondary schools in Imperial, Cañete, with features such as QR-code-based registration, offline-capable operation, parental monitoring, automated email notifications, and role-based access for school personnel. The topic is relevant and practically meaningful, particularly in low-connectivity educational settings where manual attendance procedures remain inefficient and error-prone. The manuscript is generally appropriate for a software tool article and offers a useful implementation-oriented contribution for institutions facing similar operational constraints. Major points: The paper would be scientifically stronger if the claims of improvement were supported with clearer empirical evidence. The manuscript states that the platform reduced registration time and errors and improved monitoring, but these claims are not yet supported by sufficient quantitative results, such as time comparisons, error rates, usability scores, or other measurable indicators. The evaluation methodology should be described more explicitly. It is currently unclear who tested the system, under what conditions the testing occurred, how performance and usability were assessed, and whether the tool was piloted in an actual school environment with intended end users. The novelty of the contribution should be articulated more clearly in relation to existing attendance systems. The manuscript would benefit from a more direct comparison with related tools, especially those using QR codes or other lightweight attendance technologies, in order to explain what distinguishes this system beyond local deployment. The discussion of privacy, security, and data governance should be strengthened, especially because the system manages student attendance information, parental access, and multiple data/storage components. Minor points: The abstract’s structured format is acceptable for this article type, but it would benefit from language polishing and more specific presentation of findings. Several sentences throughout the manuscript would benefit from English editing for clarity and precision. The related literature may be strengthened by citing additional relevant studies on QR-code-based attendance monitoring and usability where appropriate. If the authors wish, they may consider related work such as Perin, M. A. D. (2025).- [Ref-1] Overall, the article addresses a relevant educational problem and presents a promising and potentially useful software solution. However, clearer validation, a more explicit evaluation framework, and stronger discussion of the system’s novelty and data governance are needed before the manuscript can be considered fully scientifically robust. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Partly Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Partly Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Partly References 1. Perin M: Technology-Assisted Attendance Monitoring: A Case Study on QR Code System Usability and Performance. Journal of Technology-Assisted Learning . 2025; 1 (2): 115-123 Publisher Full Text Competing Interests: No competing interests were disclosed. Reviewer Expertise: Computer Engineering, Data Structures, Algorithms, Artificial Intelligence, Educational Technology I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Perin MAD. Reviewer Report For: Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.5256/f1000research.192582.r465537 ) The direct URL for this report is: https://f1000research.com/articles/15-240/v1#referee-response-465537 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 12 Feb 2026 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Reviewer Reports Invited Reviewers 1 Version 1 12 Feb 26 read Max Angelo Dapitilla Perin , Bohol Island State University, Tagbilaran City, Philippines Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Browse by related subjects keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Perin M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 31 Mar 2026 | for Version 1 Max Angelo Dapitilla Perin , Bohol Island State University, Tagbilaran City, Central Visayas, Philippines 0 Views copyright © 2026 Perin M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions This article presents a web-based attendance monitoring system designed for rural secondary schools in Imperial, Cañete, with features such as QR-code-based registration, offline-capable operation, parental monitoring, automated email notifications, and role-based access for school personnel. The topic is relevant and practically meaningful, particularly in low-connectivity educational settings where manual attendance procedures remain inefficient and error-prone. The manuscript is generally appropriate for a software tool article and offers a useful implementation-oriented contribution for institutions facing similar operational constraints. Major points: The paper would be scientifically stronger if the claims of improvement were supported with clearer empirical evidence. The manuscript states that the platform reduced registration time and errors and improved monitoring, but these claims are not yet supported by sufficient quantitative results, such as time comparisons, error rates, usability scores, or other measurable indicators. The evaluation methodology should be described more explicitly. It is currently unclear who tested the system, under what conditions the testing occurred, how performance and usability were assessed, and whether the tool was piloted in an actual school environment with intended end users. The novelty of the contribution should be articulated more clearly in relation to existing attendance systems. The manuscript would benefit from a more direct comparison with related tools, especially those using QR codes or other lightweight attendance technologies, in order to explain what distinguishes this system beyond local deployment. The discussion of privacy, security, and data governance should be strengthened, especially because the system manages student attendance information, parental access, and multiple data/storage components. Minor points: The abstract’s structured format is acceptable for this article type, but it would benefit from language polishing and more specific presentation of findings. Several sentences throughout the manuscript would benefit from English editing for clarity and precision. The related literature may be strengthened by citing additional relevant studies on QR-code-based attendance monitoring and usability where appropriate. If the authors wish, they may consider related work such as Perin, M. A. D. (2025).- [Ref-1] Overall, the article addresses a relevant educational problem and presents a promising and potentially useful software solution. However, clearer validation, a more explicit evaluation framework, and stronger discussion of the system’s novelty and data governance are needed before the manuscript can be considered fully scientifically robust. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Partly Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Partly Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Partly References 1. Perin M: Technology-Assisted Attendance Monitoring: A Case Study on QR Code System Usability and Performance. Journal of Technology-Assisted Learning . 2025; 1 (2): 115-123 Publisher Full Text Competing Interests No competing interests were disclosed. Reviewer Expertise Computer Engineering, Data Structures, Algorithms, Artificial Intelligence, Educational Technology I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Perin MAD. Peer Review Report For: Smart School Attendance: Virtual Solution to Optimize Registration and Parental Monitoring in Secondary Level Schools in Imperial, Cañete. [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :240 ( https://doi.org/10.5256/f1000research.192582.r465537) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/15-240/v1#referee-response-465537 Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with F1000Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "Smart School Attendance: Virtual Solution...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/15-240/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/15-240/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/15-240/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Chávez-Saldaña J et al.'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://f1000research.com/articles/15-240/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://f1000research.com/articles/15-240", templates : { twitter : "Smart School Attendance: Virtual Solution to Optimize Registration.... Chávez-Saldaña J et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/15-240/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/174659/192582") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "192582"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "458630": 0, "458628": 0, "465541": 0, "458629": 0, "465540": 0, "458626": 0, "465539": 0, "458627": 0, "465538": 0, "458624": 0, "465537": 13, "458625": 0, "465536": 0, "463151": 0, "463150": 0, "463149": 0, "463148": 0, "463147": 0, "463146": 0, "463145": 0, "463154": 0, "463153": 0, "463152": 0, "467927": 0, "467926": 0, "467925": 0, "467924": 0, "467923": 0, "467932": 0, "467931": 0, "467930": 0, "467929": 0, "467928": 0, "460911": 0, "460919": 0, "471415": 0, "460918": 0, "471414": 0, "460917": 0, "471413": 0, "460916": 0, "471412": 0, "460915": 0, "471411": 0, "460914": 0, "471410": 0, "460913": 0, "460912": 0, "458622": 0, "465535": 0, "458623": 0, "465534": 0, "465533": 0, "458621": 0, "465532": 0, "471418": 0, "471417": 0, "460920": 0, "471416": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "ef3733c5-3a89-4c5b-b4ef-69f8a150b38c"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "
[email protected]", infoEmail: "
[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.