ðŸ›Ą️ Daily Duty Report System (DDRS)


ðŸ›Ą️ Daily Duty Report System (DDRS)

āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่āđ€āļ§āļĢāļ›āļĢāļ°āļˆāļģāļ§ัāļ™ āļ”้āļ§āļĒ Google Apps Script



āļ‡āļēāļ™āđ€āļ§āļĢāļ›āļĢāļ°āļˆāļģāļ§ัāļ™āđ€āļ›็āļ™āļ­ีāļāļŦāļ™ึ่āļ‡āļ āļēāļĢāļิāļˆāļŠāļģāļ„ัāļāļ‚āļ­āļ‡āļ„āļĢูāđāļĨāļ°āļšุāļ„āļĨāļēāļāļĢāđƒāļ™āđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™ āđ„āļĄ่āļ§่āļēāļˆāļ°āđ€āļ›็āļ™āļāļēāļĢāļ”ูāđāļĨāļ„āļ§āļēāļĄāđ€āļĢีāļĒāļšāļĢ้āļ­āļĒāļšāļĢิāđ€āļ§āļ“āļ›āļĢāļ°āļ•ูāđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™ āļŦāļ™้āļēāđ€āļŠāļēāļ˜āļ‡ āđ‚āļĢāļ‡āļ­āļēāļŦāļēāļĢ āļ­āļēāļ„āļēāļĢāđ€āļĢีāļĒāļ™ āļŦāļĢืāļ­āļžื้āļ™āļ—ี่āļ•่āļēāļ‡ āđ† āļ āļēāļĒāđƒāļ™āļŠāļ–āļēāļ™āļĻึāļāļĐāļē

āļ›ัāļāļŦāļēāļ—ี่āļžāļšāļˆāļēāļāļāļēāļĢāļĢāļēāļĒāļ‡āļēāļ™āđƒāļ™āļĢูāļ›āđāļšāļšāļāļĢāļ°āļ”āļēāļĐ āļ„ืāļ­āļ‚้āļ­āļĄูāļĨāļāļĢāļ°āļˆัāļ”āļāļĢāļ°āļˆāļēāļĒ āļ„้āļ™āļŦāļēāļĒ้āļ­āļ™āļŦāļĨัāļ‡āļĒāļēāļ āļ āļēāļžāļ›āļĢāļ°āļāļ­āļšāđāļĒāļāļˆāļēāļāļĢāļēāļĒāļ‡āļēāļ™ āđāļĨāļ°āđ€āļĄื่āļ­āļ•้āļ­āļ‡āļāļēāļĢāļŠāļĢุāļ›āļ‚้āļ­āļĄูāļĨāļŦāļĢืāļ­āļˆัāļ”āļžิāļĄāļž์āļĢāļēāļĒāļ‡āļēāļ™āļ็āļ•้āļ­āļ‡āļ™āļģāļ‚้āļ­āļĄูāļĨāļĄāļēāļˆัāļ”āļ—āļģāđƒāļŦāļĄ่

āļˆึāļ‡āļžัāļ’āļ™āļē Daily Duty Report System (DDRS) – āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่āđ€āļ§āļĢāļ›āļĢāļ°āļˆāļģāļ§ัāļ™ āļ‚ึ้āļ™ āđ‚āļ”āļĒāđƒāļŠ้ Google Apps Script + Google Sheets + Google Drive āļ—āļģāđƒāļŦ้āļŠāļēāļĄāļēāļĢāļ–āļšัāļ™āļ—ึāļ āđāļ้āđ„āļ‚ āļ„้āļ™āļŦāļē āđāļ™āļšāļ āļēāļž āļ”ูāļĢāļēāļĒāļ‡āļēāļ™ āđāļĨāļ°āļžิāļĄāļž์āđ€āļ­āļāļŠāļēāļĢāđ„āļ”้āļˆāļēāļāļĢāļ°āļšāļšāđ€āļ”ีāļĒāļ§

🌐 āļ—āļ”āļĨāļ­āļ‡āđƒāļŠ้āļ‡āļēāļ™ Daily Duty Report (DDR)


✨ āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āļĢāļ°āļšāļš

āļĢāļ°āļšāļšāļ—ี่āļžัāļ’āļ™āļēāļ‚ึ้āļ™āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āļ—ั้āļ‡āļ„āļ­āļĄāļžิāļ§āđ€āļ•āļ­āļĢ์ āđāļ—็āļšāđ€āļĨ็āļ• āđāļĨāļ°āđ‚āļ—āļĢāļĻัāļžāļ—์āļĄืāļ­āļ–ืāļ­ āđ‚āļ”āļĒāļĄีāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļŠāļģāļ„ัāļāļ”ัāļ‡āļ™ี้

  • 📊 Dashboard āļŠāļĢุāļ›āļˆāļģāļ™āļ§āļ™āļĢāļēāļĒāļ‡āļēāļ™āļ—ั้āļ‡āļŦāļĄāļ” āļĢāļēāļĒāļ‡āļēāļ™āļ§ัāļ™āļ™ี้ āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ”ืāļ­āļ™āļ›ัāļˆāļˆุāļšัāļ™ āđāļĨāļ°āļĢāļēāļĒāļāļēāļĢāļ—ี่āļžāļšāļ›ัāļāļŦāļē
  • 📝 āļšัāļ™āļ—ึāļāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่āđ€āļ§āļĢāļ›āļĢāļ°āļˆāļģāļ§ัāļ™
  • ✏️ āđāļ้āđ„āļ‚āļ‚้āļ­āļĄูāļĨāđ€āļ”ิāļĄ
  • 🗑️ āļĨāļšāļ‚้āļ­āļĄูāļĨ
  • 👁️ āđ€āļ›ิāļ”āļ”ูāļĢāļēāļĒāļĨāļ°āđ€āļ­ีāļĒāļ”āļĢāļēāļĒāļ‡āļēāļ™
  • 🔍 āļ„้āļ™āļŦāļēāļĢāļēāļĒāļ‡āļēāļ™āļˆāļēāļāļ„āļģāļ„้āļ™āđāļĨāļ°āļŠ่āļ§āļ‡āļ§ัāļ™āļ—ี่
  • ðŸ“ļ āđāļ™āļšāļ āļēāļžāļ›āļĢāļ°āļāļ­āļšāđ„āļ”้āļŠูāļ‡āļŠุāļ” 4 āļĢูāļ›
  • 🖞️ āļĒ่āļ­āļ āļēāļžāļ่āļ­āļ™āļŠ่āļ‡āđ„āļ›āļĒัāļ‡ Google Drive
  • 🔗 āļˆัāļ”āđ€āļ็āļš URL āļ āļēāļžāđƒāļ™āļĢูāļ›āđāļšāļš lh3.googleusercontent.com
  • 🖞️ āļ āļēāļžāđƒāļŠ้ object-fit: contain āļ—āļģāđƒāļŦ้āđ€āļŦ็āļ™āļ āļēāļžāļ„āļĢāļšāđ‚āļ”āļĒāđ„āļĄ่ Crop āļŦāļĢืāļ­āļ•ัāļ”āļŠ่āļ§āļ™āļ‚āļ­āļ‡āļ āļēāļž
  • ðŸ–Ļ️ Preview āļĢāļēāļĒāļ‡āļēāļ™āļšāļ™āļŦāļ™้āļēāļˆāļ­āļ่āļ­āļ™āļŠั่āļ‡āļžิāļĄāļž์
  • 📄 āļĢāļ­āļ‡āļĢัāļšāļāļēāļĢāļžิāļĄāļž์āļāļĢāļ°āļ”āļēāļĐ A4
  • ⚙️ āļĄีāļŦāļ™้āļē Settings āļŠāļģāļŦāļĢัāļšāļ›āļĢัāļšāđāļ•่āļ‡āļĢāļ°āļšāļš
  • 📊 āļĄีāļ›ุ่āļĄāđ€āļ›ิāļ” Google Sheets āđ‚āļ”āļĒāļ•āļĢāļ‡
  • 🔐 CRUD āļ›้āļ­āļ‡āļัāļ™āļ”้āļ§āļĒ Password
  • ðŸ’ū āļŠāļēāļĄāļēāļĢāļ–āļˆāļģ Password āļ āļēāļĒāđƒāļ™ sessionStorage āļˆāļ™āļāļ§่āļēāļˆāļ°āļ›ิāļ”āđāļ—็āļš
  • 🔔 āđāļˆ้āļ‡āđ€āļ•ืāļ­āļ™āļ”้āļ§āļĒ SweetAlert2
  • ⏳ Loading Animation āļžāļĢ้āļ­āļĄāļĢāļ°āļšāļšāļ›้āļ­āļ‡āļัāļ™ Loading āļ„้āļēāļ‡
  • ðŸ“ą Responsive āļĢāļ­āļ‡āļĢัāļšāļŦāļ™้āļēāļˆāļ­āļĄืāļ­āļ–ืāļ­
  • 📖 āļĄีāļ„ู่āļĄืāļ­āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āļ āļēāļĒāđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ

āļĢāļ°āļšāļšāļั่āļ‡āđ€āļ‹ิāļĢ์āļŸāđ€āļ§āļ­āļĢ์āļĒัāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļŠāļĢ้āļēāļ‡āļŠีāļ• Reports, Settings āđāļĨāļ° Lists āļžāļĢ้āļ­āļĄāļ‚้āļ­āļĄูāļĨāļ•ัāļ§āļ­āļĒ่āļēāļ‡āđƒāļŦ้āđ‚āļ”āļĒāļ­ัāļ•āđ‚āļ™āļĄัāļ•ิ


🗂️ āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

āļŠāļĢ้āļēāļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•์ Google Apps Script āđāļĨāļ°āđāļš่āļ‡āļ­āļ­āļāđ€āļ›็āļ™ 4 āđ„āļŸāļĨ์

Daily Duty Report System
│
├── Code.gs
├── index.html
├── javascript.html
└── style.html

āđ‚āļ”āļĒāļŦāļ™้āļēāļŦāļĨัāļāđ€āļĢีāļĒāļ CSS āđāļĨāļ° JavaScript āļœ่āļēāļ™

<?!= include('style'); ?>

āđāļĨāļ°

<?!= include('javascript'); ?>

āđ„āļŸāļĨ์ javascript.html āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļˆึāļ‡āļ•้āļ­āļ‡āļĄี <script>...</script> āļ„āļĢāļ­āļš JavaScript āđ„āļ§้āļ”้āļ§āļĒ āļ‹ึ่āļ‡āđ„āļŸāļĨ์āļ•้āļ™āļ‰āļšัāļšāļ—ี่āđāļ™āļšāļĄāļēāđ„āļ”้āļˆัāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āđ„āļ§้āđ€āļĢีāļĒāļšāļĢ้āļ­āļĒāđāļĨ้āļ§


📊 āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡ Google Sheets

āđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āļ•้āļ­āļ‡āļŠāļĢ้āļēāļ‡āļŠีāļ•āļ”้āļ§āļĒāļ•āļ™āđ€āļ­āļ‡āļ—ั้āļ‡āļŦāļĄāļ” āđ€āļžāļĢāļēāļ°āđ€āļĄื่āļ­āļĢāļ°āļšāļšāđ€āļĢิ่āļĄāļ•้āļ™āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļŠāļĢ้āļēāļ‡āļāļēāļ™āļ‚้āļ­āļĄูāļĨāļ—ี่āļˆāļģāđ€āļ›็āļ™āđƒāļŦ้

1. Sheet: Reports

āđƒāļŠ้āļŠāļģāļŦāļĢัāļšāļˆัāļ”āđ€āļ็āļšāļĢāļēāļĒāļ‡āļēāļ™āđ€āļ§āļĢ

ID
āļ§ัāļ™āļ—ี่
āļ§ัāļ™
āļœู้āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่
āļ•āļģāđāļŦāļ™่āļ‡
āļŠ่āļ§āļ‡āđ€āļ§āļĨāļēāđ€āļ§āļĢ
āļˆุāļ”āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่
āđ€āļŦāļ•ุāļāļēāļĢāļ“์āļ—ั่āļ§āđ„āļ›
āļ›ัāļāļŦāļēāļ—ี่āļžāļš
āļāļēāļĢāđāļ้āđ„āļ‚
āļ‚้āļ­āđ€āļŠāļ™āļ­āđāļ™āļ°
āļĢูāļ›āļ āļēāļž1
āļĢูāļ›āļ āļēāļž2
āļĢูāļ›āļ āļēāļž3
āļĢูāļ›āļ āļēāļž4
āļœู้āļšัāļ™āļ—ึāļ
āļ§ัāļ™āļ—ี่āļšัāļ™āļ—ึāļ
āļ§ัāļ™āļ—ี่āđāļ้āđ„āļ‚

āđ€āļ§āļ­āļĢ์āļŠัāļ™āļ™ี้ āđ„āļĄ่āļĄีāļŠ่āļ­āļ‡āļˆāļģāļ™āļ§āļ™āļ™ัāļāđ€āļĢีāļĒāļ™āļĄāļēāđ€āļĢีāļĒāļ™āđāļĨāļ°āļˆāļģāļ™āļ§āļ™āļ™ัāļāđ€āļĢีāļĒāļ™āļ‚āļēāļ” āđāļĨāļ°āļĄีāļĢāļ°āļšāļšāļĒ้āļēāļĒāđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āļˆāļēāļāļŠีāļ•āļĢุ่āļ™āđ€āļ่āļēāđƒāļŦ้āļ­ัāļ•āđ‚āļ™āļĄัāļ•ิāļŦāļēāļāļ•āļĢāļ§āļˆāļžāļšāļ„āļ­āļĨัāļĄāļ™์āļ”ัāļ‡āļāļĨ่āļēāļ§

2. Sheet: Settings

āđƒāļŠ้āļŠāļģāļŦāļĢัāļšāļ•ั้āļ‡āļ„่āļēāļĢāļ°āļšāļš āđ€āļŠ่āļ™

APP_NAME
SCHOOL_NAME
DEVELOPER
FOLLOW_URL
CRUD_PASSWORD
DRIVE_FOLDER_ID
SPREADSHEET_URL
LOGO_URL
REPORT_TITLE
FOOTER_TEXT

āļ„่āļē Password āļ•ัāļ§āļ­āļĒ่āļēāļ‡āđ€āļĢิ่āļĄāļ•้āļ™āļ„ืāļ­

123456

āļŦāļĨัāļ‡āļ•ิāļ”āļ•ั้āļ‡āļˆāļĢิāļ‡āļ„āļ§āļĢāđ€āļ›āļĨี่āļĒāļ™āđ€āļ›็āļ™āļĢāļŦัāļŠāļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āļ—ัāļ™āļ—ี

3. Sheet: Lists

āđƒāļŠ้āđ€āļ›็āļ™āļāļēāļ™āļ‚้āļ­āļĄูāļĨāļĢāļēāļĒāļāļēāļĢāļ•ัāļ§āđ€āļĨืāļ­āļ āđ€āļŠ่āļ™

POSITION
DUTY_TIME
DUTY_POINT

āļ”ัāļ‡āļ™ั้āļ™ āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāđ€āļžิ่āļĄāļ•āļģāđāļŦāļ™่āļ‡ āļˆุāļ”āđ€āļ§āļĢ āļŦāļĢืāļ­āļŠ่āļ§āļ‡āđ€āļ§āļĨāļēāļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่ āļŠāļēāļĄāļēāļĢāļ–āļˆัāļ”āļāļēāļĢāļĢāļēāļĒāļāļēāļĢāļˆāļēāļāļŠีāļ•āļ™ี้āđ„āļ”้


ðŸ“ļ āļĢāļ°āļšāļšāļ­ัāļ›āđ‚āļŦāļĨāļ”āļ āļēāļž 4 āļĢูāļ›

āļˆุāļ”āđ€āļ”่āļ™āļ­ีāļāļŠ่āļ§āļ™āļ„ืāļ­āļŠāļēāļĄāļēāļĢāļ–āđāļ™āļšāļ āļēāļžāļ›āļĢāļ°āļāļ­āļšāđ„āļ”้āļŠูāļ‡āļŠุāļ” 4 āļ āļēāļžāļ•่āļ­āļĢāļēāļĒāļ‡āļēāļ™

āļั่āļ‡ Browser āļˆāļ°āļĒ่āļ­āļ āļēāļžāļ่āļ­āļ™āļŠ่āļ‡āļ‚ึ้āļ™āđ€āļ‹ิāļĢ์āļŸāđ€āļ§āļ­āļĢ์ āđ€āļŠ่āļ™

resizeImage(f,1600,.82)

āļˆāļēāļāļ™ั้āļ™ Code.gs āļˆāļ°āļŠāļĢ้āļēāļ‡āđ„āļŸāļĨ์āđƒāļ™ Google Drive āđāļĨāļ°āļŠāļĢ้āļēāļ‡ URL āđƒāļ™āļĢูāļ›āđāļšāļšāļ›āļĢāļ°āļĄāļēāļ“

https://lh3.googleusercontent.com/d/FILE_ID=w1600

āļĢāļ°āļšāļšāļˆึāļ‡āđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āļ•้āļ­āļ‡āļšัāļ™āļ—ึāļ Base64 āļ‚āļ™āļēāļ”āđƒāļŦāļ่āļĨāļ‡ Google Sheets āđ‚āļ”āļĒāļ•āļĢāļ‡

āđāļĨāļ°āļŠ่āļ§āļ™āđāļŠāļ”āļ‡āļ āļēāļžāļāļģāļŦāļ™āļ”āđ€āļ›็āļ™

object-fit: contain;
object-position: center;

āļ—ั้āļ‡āļŦāļ™้āļēāļāļĢāļ­āļāļ‚้āļ­āļĄูāļĨ āļŦāļ™้āļēāļ”ูāļĢāļēāļĒāļĨāļ°āđ€āļ­ีāļĒāļ” āđāļĨāļ°āļŦāļ™้āļēāļžิāļĄāļž์ āļ—āļģāđƒāļŦ้ āđ€āļŦ็āļ™āļĢูāļ›āļ āļēāļžāļ„āļĢāļšāļ—ั้āļ‡āļ āļēāļž āđ„āļĄ่āļĄีāļāļēāļĢāļ•ัāļ”āļ‚āļ­āļšāļ āļēāļž


🔐 āļĢāļ°āļšāļš Password āļŠāļģāļŦāļĢัāļš CRUD

āļāļēāļĢāđ€āļžิ่āļĄ āđāļ้āđ„āļ‚ āļĨāļš āđāļĨāļ°āļˆัāļ”āļāļēāļĢ Settings āļˆāļ°āļĄีāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš Password

āđ€āļžื่āļ­āđ„āļĄ่āđƒāļŦ้āļœู้āđƒāļŠ้āļ•้āļ­āļ‡āļāļĢāļ­āļāļĢāļŦัāļŠāđƒāļŦāļĄ่āļ—ุāļāļ„āļĢั้āļ‡ āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļŠ้

sessionStorage

āļŠāļģāļŦāļĢัāļšāļˆāļ”āļˆāļģāļĢāļŦัāļŠāļœ่āļēāļ™āđ€āļ‰āļžāļēāļ°āđāļ—็āļšāļ›ัāļˆāļˆุāļšัāļ™

āđ€āļĄื่āļ­āļ›ิāļ”āđāļ—็āļš Browser āļ‚้āļ­āļĄูāļĨāļ”ัāļ‡āļāļĨ่āļēāļ§āļˆāļ°āļŦāļēāļĒāđ„āļ›

āļŸัāļ‡āļ์āļŠัāļ™āļŦāļĨัāļāļ›āļĢāļ°āļāļ­āļšāļ”้āļ§āļĒ

getSavedPassword()
savePassword()
requestCrudPassword()

āļ่āļ­āļ™āđƒāļŠ้āļ‡āļēāļ™ Password āļ—ี่āļˆāļģāđ„āļ§้ āļĢāļ°āļšāļšāļˆāļ°āļŠ่āļ‡āđ„āļ›āļ•āļĢāļ§āļˆāļŠāļ­āļšāļัāļš verifyCrudPassword() āļั่āļ‡ Apps Script āļ­ีāļāļ„āļĢั้āļ‡


⏳ āļ›้āļ­āļ‡āļัāļ™ Loading āļ„้āļēāļ‡

āļĢāļ°āļšāļšāļĄี Loading Overlay āđāļšāļšāļ™ุ่āļĄāļ™āļ§āļĨ āļžāļĢ้āļ­āļĄāļ‚้āļ­āļ„āļ§āļēāļĄāļšāļ­āļāļŠāļ–āļēāļ™āļ° āđ€āļŠ่āļ™

  • āļāļģāļĨัāļ‡āđ‚āļŦāļĨāļ”āļ‚้āļ­āļĄูāļĨāļĢāļēāļĒāļ‡āļēāļ™...
  • āļāļģāļĨัāļ‡āđ€āļ•āļĢีāļĒāļĄāļĢูāļ›āļ āļēāļž...
  • āļāļģāļĨัāļ‡āļšัāļ™āļ—ึāļāļĢāļēāļĒāļ‡āļēāļ™...
  • āļāļģāļĨัāļ‡āļˆัāļ”āļ—āļģāļĢāļēāļĒāļ‡āļēāļ™...

āļ™āļ­āļāļˆāļēāļāļ™ี้āļĒัāļ‡āļĄี Timeout āļŠāļģāļŦāļĢัāļšāļāļēāļĢāđ€āļĢีāļĒāļ Apps Script āđāļĨāļ° Safety Timer āļŠāļģāļŦāļĢัāļš Loading āļ—āļģāđƒāļŦ้āļāļĢāļ“ีāļāļēāļĢāđ€āļŠื่āļ­āļĄāļ•่āļ­āļœิāļ”āļžāļĨāļēāļ” Overlay āđ„āļĄ่āļ„āļ§āļĢāļ„้āļēāļ‡āļ­āļĒู่āļšāļ™āļŦāļ™้āļēāļˆāļ­āļ­āļĒ่āļēāļ‡āđ„āļĄ่āļŠิ้āļ™āļŠุāļ”


ðŸ–Ļ️ āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āđāļĨāļ°āļžิāļĄāļž์

āđ€āļĨืāļ­āļāđ€āļĄāļ™ู

āļĢāļēāļĒāļ‡āļēāļ™ / āļžิāļĄāļž์

āļˆāļēāļ Sidebar

āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”

āļˆāļēāļāļ§ัāļ™āļ—ี่
āļ–ึāļ‡āļ§ัāļ™āļ—ี่
āļœู้āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่ / āļ„āļģāļ„้āļ™

āļˆāļēāļāļ™ั้āļ™āļāļ”āļ›ุ่āļĄ ðŸ‘️ āđ€āļžื่āļ­āļŠāļĢ้āļēāļ‡ Preview

āļĢāļ°āļšāļšāļˆāļ°āļ™āļģāļ‚้āļ­āļĄูāļĨāļĄāļēāļˆัāļ”āļĢูāļ›āđāļšāļšāđ€āļ›็āļ™āļĢāļēāļĒāļ‡āļēāļ™ āļ›āļĢāļ°āļāļ­āļšāļ”้āļ§āļĒāļ§ัāļ™āļ—ี่ āļœู้āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่ āļ•āļģāđāļŦāļ™่āļ‡ āļŠ่āļ§āļ‡āđ€āļ§āļĨāļē āļˆุāļ”āļ›āļิāļšัāļ•ิ āđ€āļŦāļ•ุāļāļēāļĢāļ“์ āļ›ัāļāļŦāļē āļāļēāļĢāđāļ้āđ„āļ‚ āļ‚้āļ­āđ€āļŠāļ™āļ­āđāļ™āļ° āļ āļēāļžāļ›āļĢāļ°āļāļ­āļš āđāļĨāļ°āļžื้āļ™āļ—ี่āļĨāļ‡āļŠื่āļ­

āđ€āļĄื่āļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļĢีāļĒāļšāļĢ้āļ­āļĒāļˆึāļ‡āļāļ” ðŸ–Ļ️ āđ€āļžื่āļ­āļžิāļĄāļž์

CSS āļŠāļģāļŦāļĢัāļšāļžิāļĄāļž์āļāļģāļŦāļ™āļ”āđ„āļ§้āđ€āļ›็āļ™

@page {
  size: A4 portrait;
  margin: 10mm;
}

āļžāļĢ้āļ­āļĄāļ‹่āļ­āļ™ Sidebar, Topbar, Footer āđāļĨāļ°āļŠ่āļ§āļ™āļ„āļ§āļšāļ„ุāļĄāļ—ี่āđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āđƒāļ™āļāļēāļĢāļžิāļĄāļž์


⚙️ āļŦāļ™้āļē Settings

āļœู้āļ”ูāđāļĨāļŠāļēāļĄāļēāļĢāļ–āđāļ้āđ„āļ‚āļ„่āļēāļŦāļĨัāļāļˆāļēāļāļŦāļ™้āļēāđ€āļ§็āļšāđ„āļ”้ āđ€āļŠ่āļ™

āļŠื่āļ­āđ‚āļ›āļĢāđāļāļĢāļĄ
āļŠื่āļ­āļŠāļ–āļēāļ™āļĻึāļāļĐāļē
āļŠื่āļ­āļœู้āļžัāļ’āļ™āļē
āļĨิāļ‡āļ์āļ•ิāļ”āļ•āļēāļĄ
Google Sheet URL
Google Drive Folder ID
URL āđ‚āļĨāđ‚āļ้
āļŦัāļ§āļ‚้āļ­āļĢāļēāļĒāļ‡āļēāļ™
āļ‚้āļ­āļ„āļ§āļēāļĄ Footer
Password CRUD

āļ—āļģāđƒāļŦ้āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĢāļ°āļšāļšāļŠุāļ”āđ€āļ”ีāļĒāļ§āļัāļ™āđ„āļ›āļ›āļĢāļ°āļĒุāļāļ•์āđƒāļŠ้āļัāļšāđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™āļ­ื่āļ™āđ„āļ”้āļ‡่āļēāļĒāļ‚ึ้āļ™


🚀 āļ§ิāļ˜ีāļ•ิāļ”āļ•ั้āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

āļ‚ั้āļ™āđāļĢāļāđƒāļŦ้āļŠāļĢ้āļēāļ‡ Google Sheets āđƒāļŦāļĄ่ āđāļĨ้āļ§āđ„āļ›āļ—ี่

āļŠ่āļ§āļ™āļ‚āļĒāļēāļĒ
→ Apps Script

āļŠāļĢ้āļēāļ‡āđ„āļŸāļĨ์āļ—ั้āļ‡āļŦāļĄāļ” 4 āđ„āļŸāļĨ์

Code.gs
index.html
javascript.html
style.html

āļ™āļģ Code āļ”้āļēāļ™āļĨ่āļēāļ‡āđ„āļ›āļ§āļēāļ‡āđƒāļŦ้āļ•āļĢāļ‡āļัāļšāļŠื่āļ­āđ„āļŸāļĨ์

āļˆāļēāļāļ™ั้āļ™āļšัāļ™āļ—ึāļāđ‚āļ›āļĢāđ€āļˆāļāļ•์

āđ€āļĨืāļ­āļāļŸัāļ‡āļ์āļŠัāļ™

setupSystem

āđāļĨ้āļ§āļāļ” Run

āļ„āļĢั้āļ‡āđāļĢāļ Google āļˆāļ°āļ‚āļ­āļŠิāļ—āļ˜ิ์āđƒāļ™āļāļēāļĢāđ€āļ‚้āļēāļ–ึāļ‡ Google Sheets āđāļĨāļ° Google Drive āđƒāļŦ้āļ”āļģāđ€āļ™ิāļ™āļāļēāļĢāļ­āļ™ุāļāļēāļ•āļŠิāļ—āļ˜ิ์āļ•āļēāļĄāļ‚ั้āļ™āļ•āļ­āļ™

āđ€āļĄื่āļ­āļ—āļģāļ‡āļēāļ™āļŠāļģāđ€āļĢ็āļˆ āļĢāļ°āļšāļšāļˆāļ°āļŠāļĢ้āļēāļ‡āļāļēāļ™āļ‚้āļ­āļĄูāļĨāđāļĨāļ° Folder āļŠāļģāļŦāļĢัāļšāđ€āļ็āļšāļ āļēāļžāđƒāļŦ้āđ‚āļ”āļĒāļ­ัāļ•āđ‚āļ™āļĄัāļ•ิ


🌐 āļāļēāļĢ Deploy āđ€āļ›็āļ™ Web App

āđ„āļ›āļ—ี่

Deploy
→ New deployment
→ Web app

āļ•ั้āļ‡āļ„่āļē

Execute as:
Me

Who has access:
Anyone

āļˆāļēāļāļ™ั้āļ™āļāļ”

Deploy

āļ„ัāļ”āļĨāļ­āļ URL āļ—ี่āļĨāļ‡āļ—้āļēāļĒāļ”้āļ§āļĒ

/exec

āļ™āļģāđ„āļ›āđ€āļ›ิāļ”āđƒāļ™ Browser āļ็āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢิ่āļĄāđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้


ðŸ’ŧ SOURCE CODE āđ‚āļ›āļĢāđāļāļĢāļĄ

āļ•่āļ­āļˆāļēāļāļŦัāļ§āļ‚้āļ­āļ™ี้āđƒāļŦ้āļ™āļģ Code āļ•้āļ™āļ‰āļšัāļšāļ—ั้āļ‡ 4 āđ„āļŸāļĨ์āļ—ี่āđāļ™āļšāđ„āļ§้ āļĨāļ‡ Blogger āļ•āļēāļĄāļĨāļģāļ”ัāļšāļ™ี้āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ€āļžāļĢāļēāļ°āđ€āļ›็āļ™āļŠุāļ”āđ€āļ”ีāļĒāļ§āļัāļšāļĢāļ°āļšāļšāļ—ี่āļ­āļ˜ิāļšāļēāļĒāļ‚้āļēāļ‡āļ•้āļ™āđāļĨāļ°āđ„āļĄ่āļ„āļ§āļĢāļĒ่āļ­āļŦāļĢืāļ­āļ•ัāļ”āļŸัāļ‡āļ์āļŠัāļ™āļ­āļ­āļ:

1. Code.gs

āđƒāļŠ้āđ„āļŸāļĨ์ Code.gs āļ—ี่āđāļ™āļšāļĄāļē āļ‹ึ่āļ‡āđ€āļ›็āļ™ Backend āļŦāļĨัāļāļ—ั้āļ‡āļŦāļĄāļ”āļ‚āļ­āļ‡āļĢāļ°āļšāļš āļ•ั้āļ‡āđāļ•่āļāļēāļĢāļŠāļĢ้āļēāļ‡āļŠีāļ• CRUD, Settings, Lists, Drive Folder, lh3 āđāļĨāļ°āļĢāļēāļĒāļ‡āļēāļ™

2. index.html

āđƒāļŠ้āđ„āļŸāļĨ์ index.html āļ—ี่āđāļ™āļšāļĄāļē āđ€āļ›็āļ™āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āļŦāļ™้āļē Dashboard, Sidebar, CRUD Form, Report āđāļĨāļ° Settings

3. javascript.html

āđƒāļŠ้āđ„āļŸāļĨ์ javascript.html āļ—ี่āđāļ™āļšāļĄāļē āļ—ั้āļ‡āđ„āļŸāļĨ์ āļĢāļ§āļĄ <script> āđ€āļ›ิāļ”āđāļĨāļ°āļ›ิāļ” āđ€āļžื่āļ­āđƒāļŦ้āļŠāļēāļĄāļēāļĢāļ– Include āđ€āļ‚้āļē index.html āđ„āļ”้āđ‚āļ”āļĒāļ•āļĢāļ‡

4. style.html

āđƒāļŠ้āđ„āļŸāļĨ์ style.html āļ—ี่āđāļ™āļšāļĄāļē āļ—ั้āļ‡āđ„āļŸāļĨ์ āļĢāļ§āļĄ <style> āđ€āļ›ิāļ”āđāļĨāļ°āļ›ิāļ” āļ‹ึ่āļ‡āļĄี Responsive UI, Loading, āļĢูāļ›āđāļšāļš A4 āđāļĨāļ° object-fit: contain āļŠāļģāļŦāļĢัāļšāļ āļēāļž


📖 āļ‚ั้āļ™āļ•āļ­āļ™āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™

āļŦāļĨัāļ‡āļ•ิāļ”āļ•ั้āļ‡āđ€āļĢีāļĒāļšāļĢ้āļ­āļĒāđāļĨ้āļ§ āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āļŦāļĨัāļāđāļš่āļ‡āđ„āļ”้āļ”ัāļ‡āļ™ี้

1. Dashboard — āļ•āļĢāļ§āļˆāļŠāļ­āļšāļˆāļģāļ™āļ§āļ™āļĢāļēāļĒāļ‡āļēāļ™āļ—ั้āļ‡āļŦāļĄāļ” āļĢāļēāļĒāļ‡āļēāļ™āļ§ัāļ™āļ™ี้ āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ”ืāļ­āļ™āļ™ี้ āđāļĨāļ°āļĢāļēāļĒāļāļēāļĢāļ—ี่āļžāļšāļ›ัāļāļŦāļē

2. āļšัāļ™āļ—ึāļāļĢāļēāļĒāļ‡āļēāļ™ — āđ€āļĨืāļ­āļāļ§ัāļ™āļ—ี่ āļāļĢāļ­āļāļŠื่āļ­āļœู้āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่ āđ€āļĨืāļ­āļāļ•āļģāđāļŦāļ™่āļ‡ āļŠ่āļ§āļ‡āđ€āļ§āļĨāļē āđāļĨāļ°āļˆุāļ”āļ›āļิāļšัāļ•ิāļŦāļ™้āļēāļ—ี่

3. āļšัāļ™āļ—ึāļāļĢāļēāļĒāļĨāļ°āđ€āļ­ีāļĒāļ” — āļāļĢāļ­āļāđ€āļŦāļ•ุāļāļēāļĢāļ“์āļ—ั่āļ§āđ„āļ› āļ›ัāļāļŦāļēāļ—ี่āļžāļš āļāļēāļĢāļ”āļģāđ€āļ™ิāļ™āļāļēāļĢāđāļ้āđ„āļ‚ āđāļĨāļ°āļ‚้āļ­āđ€āļŠāļ™āļ­āđāļ™āļ°

4. āđ€āļžิ่āļĄāļ āļēāļžāļ›āļĢāļ°āļāļ­āļš — āđ€āļĨืāļ­āļāļ āļēāļžāđ„āļ”้āļŠูāļ‡āļŠุāļ” 4 āļĢูāļ› āļĢāļ°āļšāļšāļˆāļ°āļĒ่āļ­āļ āļēāļžāđƒāļŦ้āļ­ัāļ•āđ‚āļ™āļĄัāļ•ิāļ่āļ­āļ™āļ­ัāļ›āđ‚āļŦāļĨāļ”

5. āļšัāļ™āļ—ึāļ — āļāļĢāļ­āļ Password āļŠāļģāļŦāļĢัāļš CRUD āļˆāļēāļāļ™ั้āļ™āļĢāļ°āļšāļšāļˆāļ°āļšัāļ™āļ—ึāļāļ‚้āļ­āļĄูāļĨāļĨāļ‡ Google Sheets āđāļĨāļ°āļĢูāļ›āļ āļēāļžāļĨāļ‡ Google Drive

6. āļ‚้āļ­āļĄูāļĨāļĢāļēāļĒāļ‡āļēāļ™ — āļŠāļēāļĄāļēāļĢāļ–āļ„้āļ™āļŦāļē 👁️ āļ”ูāļĢāļēāļĒāļĨāļ°āđ€āļ­ีāļĒāļ” ✏️ āđāļ้āđ„āļ‚ āļŦāļĢืāļ­ ðŸ—‘️ āļĨāļšāļ‚้āļ­āļĄูāļĨ

7. āļĢāļēāļĒāļ‡āļēāļ™ / āļžิāļĄāļž์ — āđ€āļĨืāļ­āļāļŠ่āļ§āļ‡āļ§ัāļ™āļ—ี่ āļāļ” Preview āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ­āļāļŠāļēāļĢāļšāļ™āļŦāļ™้āļēāļˆāļ­ āđāļĨ้āļ§āļˆึāļ‡āļŠั่āļ‡āļžิāļĄāļž์

8. Settings — āļœู้āļ”ูāđāļĨāļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļĨี่āļĒāļ™āļŠื่āļ­āđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™ āđ‚āļĨāđ‚āļ้ āļœู้āļžัāļ’āļ™āļē Password āđāļĨāļ°āļ„่āļēāļ•่āļēāļ‡ āđ† āđ„āļ”้


ðŸ’Ą āđāļ™āļ§āļ—āļēāļ‡āļ™āļģāđ„āļ›āļ›āļĢāļ°āļĒุāļāļ•์āđƒāļŠ้

āđ‚āļ„āļĢāļ‡āļŠāļĢ้āļēāļ‡āļ‚āļ­āļ‡ DDRS āđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āļ•้āļ­āļ‡āđƒāļŠ้āđ€āļ‰āļžāļēāļ°āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ§āļĢāļ›āļĢāļ°āļˆāļģāļ§ัāļ™āđ€āļ—่āļēāļ™ั้āļ™ āļŠāļēāļĄāļēāļĢāļ–āļ”ัāļ”āđāļ›āļĨāļ‡āđ€āļ›็āļ™āļĢāļ°āļšāļšāļ­ื่āļ™āđ„āļ”้āļ­ีāļāļŦāļĨāļēāļĒāļĢูāļ›āđāļšāļš āđ€āļŠ่āļ™ āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āļ„āļĢูāđ€āļ§āļĢ āļĢāļ°āļšāļšāļšัāļ™āļ—ึāļāđ€āļŦāļ•ุāļāļēāļĢāļ“์āļ›āļĢāļ°āļˆāļģāļ§ัāļ™ āļĢāļ°āļšāļšāļ•āļĢāļ§āļˆāļ­āļēāļ„āļēāļĢāļŠāļ–āļēāļ™āļ—ี่ āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ ัāļĒ āļĢāļ°āļšāļšāļšัāļ™āļ—ึāļāļิāļˆāļāļĢāļĢāļĄāļŦāļ™้āļēāđ€āļŠāļēāļ˜āļ‡ āļŦāļĢืāļ­āļĢāļ°āļšāļšāļĢāļēāļĒāļ‡āļēāļ™āļิāļˆāļāļĢāļĢāļĄāđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™

āđ€āļžāļĢāļēāļ°āđāļāļ™āļŦāļĨัāļāļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĄีāļ—ั้āļ‡ CRUD + Google Sheets + Google Drive + Image Upload + Dashboard + Search + Report + Print + Settings āļ­āļĒู่āđāļĨ้āļ§


❤️ āļŠāļĢุāļ›

Daily Duty Report System (DDRS) āļŠ่āļ§āļĒāđ€āļ›āļĨี่āļĒāļ™āļ‡āļēāļ™āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ§āļĢāļˆāļēāļāđ€āļ­āļāļŠāļēāļĢāļāļĢāļ°āļ”āļēāļĐāļĄāļēāđ€āļ›็āļ™āļĢāļ°āļšāļšāļ­āļ­āļ™āđ„āļĨāļ™์ āļŠāļēāļĄāļēāļĢāļ–āļšัāļ™āļ—ึāļāļ‚้āļ­āļĄูāļĨāļžāļĢ้āļ­āļĄāļ āļēāļžāļ›āļĢāļ°āļāļ­āļš āļ„้āļ™āļŦāļēāļĒ้āļ­āļ™āļŦāļĨัāļ‡ āđāļ้āđ„āļ‚āļ‚้āļ­āļĄูāļĨ āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ›ัāļāļŦāļē āđāļĨāļ°āļˆัāļ”āļžิāļĄāļž์āļĢāļēāļĒāļ‡āļēāļ™āđ„āļ”้āđƒāļ™āļĢāļ°āļšāļšāđ€āļ”ีāļĒāļ§

āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢัāļšāļŠāļ–āļēāļ™āļĻึāļāļĐāļēāļ—ี่āļ•้āļ­āļ‡āļāļēāļĢāđ€āļĢิ่āļĄāļ•้āļ™āļžัāļ’āļ™āļēāļĢāļ°āļšāļšāļ‡āļēāļ™āļ”้āļ§āļĒ Google Apps Script āđ‚āļ”āļĒāđ„āļĄ่āļˆāļģāđ€āļ›็āļ™āļ•้āļ­āļ‡āļĄี Server āļŦāļĢืāļ­āļāļēāļ™āļ‚้āļ­āļĄูāļĨāļ āļēāļĒāļ™āļ­āļ

ðŸ›Ą️ Daily Duty Report System

āļšัāļ™āļ—ึāļāļ‡่āļēāļĒ • āļ„้āļ™āļŦāļēāđ€āļĢ็āļ§ • āļĄีāļ āļēāļžāļ›āļĢāļ°āļāļ­āļš • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĒ้āļ­āļ™āļŦāļĨัāļ‡ • āļžāļĢ้āļ­āļĄāļžิāļĄāļž์

🚀 āđ€āļ›ิāļ”āđƒāļŠ้āļ‡āļēāļ™ Daily Duty Report (DDR)

#DailyDutyReport #DDRS #GoogleAppsScript #GoogleSheets #GoogleDrive #WebApp #āļĢāļ°āļšāļšāļ‡āļēāļ™āđ‚āļĢāļ‡āđ€āļĢีāļĒāļ™ #āļĢāļ°āļšāļšāļ„āļĢูāđ€āļ§āļĢ #āļ„āļĢูāļĒุāļ„āļ”ิāļˆิāļ—ัāļĨ

āđāļŠāļ”āļ‡āļ„āļ§āļēāļĄāļ„ิāļ”āđ€āļŦ็āļ™ (0)
āđƒāļŦāļĄ่āļāļ§่āļē āđ€āļ่āļēāļāļ§่āļē