User Registration System: Apps Script, HTML, Bootstrap ЁЯФеЁЯУЭ

рдпрджрд┐ рдЖрдк Apps Script Web API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ User Registration рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ Article рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реА рд╣реИрдВ ред рдЕрднреА рддрдХ рд╣рдордиреЗ рдЬреЛ рднреА Article рд▓рд┐рдЦреЗ рдЙрд╕рдореЗ рд╣рдореЗрдВ Google Sheet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Login Check рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕ Article рдореЗ рд╣рдореЗрдВ рдкрд┐рдЫрд▓реЗ Article рдХреЛ Implement рдХрд░рддреЗ рд╣реБрд╡реЗ рдЗрд╕рдореЗ User рднреА Project рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣реА рдмрдирд╛рдпреЗ рдЬрд╛ рд╕рдХреЗ рдРрд╕рд╛ Plan рдХрд┐рдпрд╛ рд╣реИрдВ, рдЖрдЗрдП Step By Step рд╕рдордЭрддреЗ рд╣реИрдВ ред рдореЗ рдпрд╣ рдорд╛рди рдХрд░ Source Code рджреЗ рд░рд╣рд╛ рд╣реБ рдХреА рдЖрдкрдиреЗ рдкрд╣рд▓реЗ Login System рдмрдирд╛рдпрд╛ рд╣реБрд╡рд╛ рд╣реИрдВ (рдЪрд╛рд╣реЗ рд╡рд╣ Simple Login ) рдореЗ рдЙрд╕рдХреЗ рдЖрдЧреЗ рдХрд╛ Code рдЖрдкрдХреЛ рджреЗ рд░рд╣ рд╣реБред previous Code рдЖрдк рдирд┐рдореНрди Article рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред

CREATING A SIMPLE LOGIN SYSTEM WITH GOOGLE APPS SCRIPT AND GOOGLE SHEETS (HTML, CSS, BOOTSTRAP, JS)

1. Google Sheet For User Registration

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ Google Sheet рдмрдирд╛ рд▓реАрдЬрд┐рдП, рд╣рдо рдЬреЛ User Registration Page рдмрдирд╛рдПрдВрдЧреЗ рддрдм рд╡рд╣рд╛рдБ рд╕реЗ Entry рдХрд░реЗрдВрдЧреЗ рддреЛ рд╡рд╣ рдЖрдХрд╛рд░ Google Sheet рдкрд░ Store рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореЗ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ Columns рд╣реА рдмрдирд╛рдирд╛ рд╣реИрдВ , Entry рд╣рдо рдЬрдм Page рдкрд░ рдХрд░реЗрдВрдЧреЗ рддрдм рдпрд╣рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

рдЗрд╕ sheet рдХрд╛ рдирд╛рдо login рд░рдЦрдирд╛ рд╣реИрдВ рдЬреЛ рдХреА рд╣рдореЗ Apps Script рд╕реЗ link рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдЖрдПрдЧрд╛ ред

2. HTML Code for User Registration

рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо Apps Script рдореЗ рдПрдХ register.html File рдмрдирд╛ рд▓реЗрдВрдЧреЗред рдЗрд╕рдореЗ рдлрд╛рдЗрд▓ рдореЗ рдЖрдк рдиреАрдЪреЗ CSS рдФрд░ JavaScript рдХрд╛ Code рд▓рд┐рдЦрд╛ рд╣реИрдВ рдЙрд╕реЗ рднреА Add рдХрд░ рд▓реАрдЬрд┐рдПрдЧрд╛ ред

<style></style> <!--  Add CSS -->
<script></script> <!--  Add JS -->
<div class="card shadow rounded-4 rounded ">
  <h5 class="card-header bg-secondary- text-white p-3 mycolor">User Registration</h5>
  <div class="card-body p-4">
    <div id="RegBody">
      <div class="input-group mb-3">
        <span class="input-group-text" >User Name</span>
        <input type="text" class="form-control" id="reg_uname" placeholder="User Name" onchange="ClearText()">
      </div>

      <div class="input-group mb-3">
        <span class="input-group-text" >User ID</span>
        <input type="text" class="form-control" id="reg_uid" placeholder="User ID" onchange="ClearText()">
      </div>

      <div class="input-group mb-3">
        <span class="input-group-text" >Password</span>
        <input type="password" class="form-control" id="reg_pass" placeholder="Password" onchange="ClearText()" >
      </div>

      <div class="input-group mb-3">
        <span class="input-group-text" >Re-enter</span>
        <input type="password" class="form-control" id="reg_repass" placeholder="Re-enter Password" onchange="ClearText()" >
      </div>
    </div>

    <div id="RetMsgReg" class="alert alert-danger " style="display:none" role="alert"> </div>

    <button type="button" class="btn btn-primary- mycolor float-end px-5 text-white" onclick="Register()">Register</button>


  </div>
</div>

рдЖрдкрдиреЗ рдЬреЛ рднреА Login Page рдмрдирд╛рдпрд╛ рд╣реЛ рдЙрд╕ рдкрд░ рдЖрдк рдпрд╣ Code add рдХрд░ рджреАрдЬрд┐рдПрдЧрд╛ рддрд╛рдХрд┐ Login рд╕реЗ Register Page open рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ ред

<span href="#"  onclick="OpenRegisterPage()">Register (New User)</a>
<script>
function OpenRegisterPage() {
        google.script.run.withSuccessHandler(ShowRegister).OpenPage("register");
  }
</script>

3. CSS for User Registration

рдпрд╣ Css рдХрд╛ Code рднреА рдЖрдкрдХреЛ HTML рдлрд╛рдЗрд▓ рдореЗ рд╣реА рд▓рд┐рдЦрдирд╛ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ рд╕реЗ рдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрдирд╛ рдХрд░ Add рдХрд░ рд▓реАрдЬрд┐рдПрдЧрд╛ред

<style>
    body {
      background-color:  rgba(58, 103, 177, 30%); //rgba(205, 180, 219, 30%);
    }

    .card {
      width: 400px;
      margin: auto;
      margin-top: 30px;
    }

    .input-group-text {
      width: 100px;
      display: inline-block;
    }

    .mycolor {
      background-color: #3a67b1; //#6d3b89;
    }

    .color {
      color: #3a67b1; //#6d3b89;
    }

  
  </style>

4. JavaScript Code for User Registration

рдпрд╣ JavaScript рдХрд╛ Code рднреА рдЖрдкрдХреЛ HTML File рдореЗ рд╣реА add рдХрд░рдирд╛ рд╣реИрдВ ред рдЗрд╕рдореЗ рдЬреЛ function рдмрдирд╛рдпреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗ рдиреАрдЪреЗ Detail рдореЗ рд▓рд┐рдЦрд╛ рд╣реИрдВ ред

<script>
  function Register() {
    var unm    = document.getElementById("reg_uname").value.trim();
    var uid    = document.getElementById("reg_uid").value.trim();
    var pass   = document.getElementById("reg_pass").value.trim();
    var repass = document.getElementById("reg_repass").value.trim();

    if (pass != repass) {
      RegReturnMsg("danger,Password Not Matched...");
    }
    else {      google.script.run.withSuccessHandler(RegReturnMsg).UserRegister(uid,pass,unm);
    }
  }
  
  function RegReturnMsg(data) {
      let v = data.split(",");
      let type=v[0];
      $('#RetMsgReg').removeClass("alert-success").removeClass("alert-danger").addClass("alert-"+type);
      $('#RetMsgReg').html(v[1]);
      $('#RetMsgReg').show();
      if (type == 'success') {
        setTimeout(function(){  
           //document.getElementById("myid").click();
           }, 3000);
      }
  }
</script>
  • Register() : рдЗрд╕ Function рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╣рдо Screen рд╕реЗ рд╕рднреА рдЬрд░реВрд░реА Columns рдХреА Value рдХреЛ рд▓реЗрдХрд░ рдЙрд╕реЗ Apps Script рдкрд░ рднреЗрдЬ рджреЗрддреЗ рд╣реИрдВ ред рд╕рд╛рде рд╣реА рдореЗ Screen Level рдХреЗ Validation рднреА рд╣рдордиреЗ рдЗрд╕рдореЗ рд▓рдЧрд╛рдП рд╣реИрдВ ред рдЬреЛ рднреА Apps Script рд╕реЗ Return рдЖрддрд╛ рд╣реИрдВ рдЙрд╕рд╕реЗ рдПрдХ рдирдпрд╛ Function Call рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдХреА рдирд┐рдореНрди рд╣реИрдВ ред
  • RegReturnMsg(data) : рдЗрд╕ Function рд╕реЗ рдЬреАрддрдиреЗ рднреА Validation рд▓рдЧрд╛рдП рд╣реИрдВ рдЙрдиреНрд╣реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИрдВред рд╕рд╛рде рдореЗ Success Fully Registerd рд╣реЛрдиреЗ рдХреЗ рдкреЗрдЬ рдХреЛ Login рд╡рд╛рд▓реЗ Page рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИрдВред

5. Apps Script Code for User Registration

let MySheets  = SpreadsheetApp.getActiveSpreadsheet();
let LoginSheet  = MySheets.getSheetByName("login"); 

function doGet(e) {
  var output = HtmlService.createTemplateFromFile('login');   
  return output.evaluate();
}

function OpenPage(PageName) {
    return HtmlService.createHtmlOutputFromFile(PageName).getContent();
}

function UserRegister(pUID, pPassword, pName) {
    
    let RetMsg = '';
    let ReturnData = LoginSheet.getRange("A:A").createTextFinder(pUID).matchEntireCell(true).findAll();
    let StartRow = 0;
    ReturnData.forEach(function (range) {
      StartRow = range.getRow();
    });

    if (StartRow > 0) 
    {
      RetMsg = 'danger, User Already Exists';
    }
    else
    {
      LoginSheet.appendRow([pUID, pPassword, pName]) ;  
      RetMsg = 'success, User Successfully Registered'; 
    }

    return  RetMsg;
}

6. Video рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП

7. Execution (User Registration)

рдЗрд╕ Page рд╕реЗ рд╣рдо рдХреЛрдИ рднреА рдирдП User рдХрд╛ Registration рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕рдореЗ Example рдХреЗ рдХреЗрд╡рд▓ рд╡рд╣реА Columns рд▓рд┐рдП рд╣реИрдВ рдЬреЛ рдЬрд░реВрд░реА рд╣реИрдВ рдЖрдк рдЪрд╛рд╣реЗ рддреЛ рдФрд░ рднреА Columns рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕ Page рдкрд░ рд╣рдордиреЗ рдХреБрдЫ Validation рднреА рд▓рдЧрд╛рдП рд╣реИрдВ ред

рдпрджрд┐ Password рдФрд░ Re-enter Password same рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ Message рдЖрдПрдЧрд╛, рдпрд╣ JavaScript рд╕реЗ рдХрд┐рдпрд╛ рд╣реИрдВ ред

рдпрджрд┐ рдПрдХ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ User Registered рд╣реИрдВ рддрдм User Already Exists рдХрд╛ Message рдЖрдПрдЧрд╛ред

рдЬрдм User рд╕рднреА Validation pass рдХрд░ рд▓реЗрдЧрд╛ рддреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ Message Display рд╣реЛрдЧрд╛ ред

рдЖрд╢рд╛ рд╣реИрдВ рдореБрдЭреЗ рдЖрдкрдХреЛ User Registration System рдмрд╣реБрдд рд╣реА рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рдордЭ рдореЗ рдЖ рдЧрдпрд╛ рд╣реИрдВ, рдЗрд╕ Article рд╕реЗ related рдХреЛрдИ рднреА Query рд╣реЛ рддреЛ рдЖрдк рдореБрдЭреЗ рдирд┐рдГрд╕рдВрдХреЛрдЪ comment рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ Article рдХреИрд╕рд╛ рд▓рдЧрд╛ Comment рдХрд░рдирд╛ рди рднреВрд▓реЗ ред рдЕрдкрдирд╛ рдХреАрдорддреА рд╕рдордп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ред


рд╣рдорд╛рд░реЗ рдЕрдиреНрдп рдЖрд░реНрдЯрд┐рдХрд▓

Add a Comment

Your email address will not be published. Required fields are marked *