This is a web-based Help Ticket Management System built using Google Apps Script, HTML, CSS, and JavaScript, fully integrated with Google Sheets as the backend database.
The application allows users to:
- Log in using role-based authentication (User / Admin)
- Raise help desk tickets
- Perform ticket follow-up (S1)
- Perform problem-solving updates (S2)
- Allow admins to view all ticket data in a dashboard
The entire system is deployed using Google Apps Script Web App, and all data is stored securely in the owner's personal Google Sheets.
🔗 Live Application URL: https://script.google.com/macros/s/AKfycbyTXqsvu8I5M-gV2ryWOi22Lsr_8207uxBMdfqDNsmmg2weCiLkGPKZeijnkjuNC7bjHA/exec
- Google Apps Script (Backend)
- HTML, CSS, JavaScript (Frontend)
- Google Sheets (Database)
- Google Apps Script Web App (Deployment)
├── Code.gs # Core backend logic (login, tickets, updates, dashboard)
├── Login.gs # Admin creation & user initialization logic
├── Index.html # Complete frontend UI (login + dashboard)
All data is stored in a Google Sheet owned by the developer.
Used for authentication and role-based access.
| Column | Name | Description |
|---|---|---|
| A | Name | User full name |
| B | Password | Plain-text password (as per logic) |
| C | Login email | |
| D | User Type | Admin or User |
🔹 Admin user is created using createAdminUser() in Login.gs.
Used to populate dropdowns dynamically.
| Column | Purpose |
|---|---|
| B | Raised By names |
| C | PC Accountable names |
Stores all ticket-related data.
| Columns | Description |
|---|---|
| A–F | Ticket creation details |
| G–J | Follow-Up (S1) details |
| K–N | Problem Solving (S2) details |
-
Login handled via
doLogin(email, password) -
Credentials matched against the User sheet
-
Role-based access enabled:
- Admin → Can view all data
- User → Can create & update tickets only
Passwords are stored as plain text to match the current login logic.
- Users create tickets from the dashboard
- UID is auto-generated in
001, 002, 003...format - Data is appended to the
FMSsheet
Handled by:
submitTicket(form)- Updates columns G–J in
FMS - Includes planned time, actual time, status, and delay
Handled by:
submitFollowUp(form)- Updates columns K–N in
FMS - Includes planned time, actual time, status, and desired date
Handled by:
submitProblemSolving(form)- Only visible to users with
Adminrole - Displays all ticket records in tabular format
- Data fetched directly from Google Sheets
Handled by:
getDashboardData()- Deployed as a Google Apps Script Web App
- Execution runs as the script owner
- Access: Anyone with the link
- No external hosting (GitHub Pages / Render not required)
All data modifications directly affect the owner’s Google Sheet.
- Role-based login system
- Dynamic dropdowns from Sheets
- Auto UID generation
- Follow-up & problem-solving workflow
- Admin-only data visibility
- Fully serverless architecture
- Password hashing
- Email notifications
- Ticket priority & SLA
- File attachments
- Search & filter dashboard
Developed by Kunal
📦 GitHub: github.com/Kunalsahuji
🔗 LinkedIn: linkedin.com/in/kunal-sahu-7688ba1b0
📌 Notion: Watch my content
📧 Email: ksahu0103@gmail.com
This task was assigned by RCC Infrastructues Pvt Ltd, Bhopal as part of an assessment.
Developed with ❤️ by Kunal Sahu.