Absensi

Welcome to Absensi, a simple yet innovative web application that streamlines online attendance by capturing user photos, location data, and personal details. This project integrates Google Sheets for data storage and serves as a foundation for learning database integration and API usage.

Absensi Interface Absensi Interface Absensi Interface Absensi Interface Absensi Interface Absensi Form Google Sheets Data

About the Project

Absensi is a lightweight and efficient application designed to simplify attendance tracking. By capturing user photos, detecting their location, and storing the data in Google Sheets, it provides a practical solution for managing attendance records. The project was built using basic web technologies such as HTML, CSS, and JavaScript and introduces the use of Google Sheets as a simple database.

Key Features

  • Photo Capture: Users can take photos directly through the app using their device's camera.
  • Location Detection: Automatically fetches the user's current location using a geolocation API.
  • Google Sheets Integration: Logs attendance data, including name, ID, photo link, and location, directly into Google Sheets.
  • User-Friendly Design: A clean and responsive interface for seamless user interaction.

Development Process

The Absensi project was developed to explore the integration of APIs and a basic database using Google Sheets. The development process included:

  • Designing the front-end interface with HTML and CSS for simplicity and responsiveness.
  • Adding functionality for photo capture using the device's camera and processing the images via HTML5 Canvas.
  • Implementing a geolocation API to detect and display the user's current location.
  • Integrating Google Apps Script to handle form submissions and store the data in Google Sheets.

Challenges and Solutions

Challenge 1: The geolocation API occasionally failed to provide reliable data.
Solution: Considered migrating to a paid API for more accurate and consistent results, though it was not implemented due to budget constraints.

Challenge 2: Photos could not be directly stored in Google Sheets.
Solution: Uploaded the photos to Google Drive and inserted their respective links into Google Sheets to maintain a centralized record of all attendance data.

Technologies Used

  • HTML
  • CSS
  • JavaScript
  • Google Apps Script
  • Geolocation API