I started this project because I saw someone close struggling with a very ordinary problem in (Indonesian) academia: too many WhatsApp messages.
The coordinator of the Chemical Engineering undergraduate internship program was responsible for keeping track of students doing their Kerja Praktek (internship). Students needed to communicate their status. Supervisors needed to communicate with the coordinator. The coordinator needed to keep track of everything and update everyone involved with the current status.
Much of that communication happened through WhatsApp private messages. Per the nature of these private messages, they are fragmented and irregular. Moreover, those messages buried in the pile of various messages from other issues and the update process became painfully slow—which added more messages from the anxious parties.
Our solution was this: a web-based Internship tracking dashboard for Chemical Engineering students and faculty members.
The dashboard currently contains 118 records and allows users to search by student number, name, location, or supervisor. It also provides filters for different stages of the internship process, from not-yet submitted to completed. There is a table for the students records, a progress visualization, and a map showing internship locations. Clicking on a record also brings up the student’s details. The interface itself is fairly straightforward.
n8n as the Backend
I built the backend workflow with n8n.
The workflow starts with data from a Google Sheet that I shared with the coordinator. It periodically synchronizes the Google Sheet with an n8n Data Table. The Data Table then becomes the data source for the dashboard. I chose to keep a synchronized copy in n8n rather than having every dashboard request query Google Sheets directly. This reduces the dashboard's dependence on repeated Google Sheets API requests and keeps the frontend architecture simpler. The workflow also retrieves geospatial information for internship locations and makes the processed data available through a webhook.
The frontend is built with HTML, CSS, and JavaScript. The map is built with Leaflet, while Chart.js handle the progress visualization. The frontend periodically requests the data from the n8n webhook rather than requiring the dashboard itself to contain the underlying data.
The dashboard can then turn that data into something people can actually interact with: searchable records, filter, student details, statistics, and geographic markers. In other words, the project became a small data pipeline:
Google Sheets → n8n → processed data → webhook → web dashboard
Lesson Learned from Geospatial Data
One of the more interesting parts was trying to put the internship locations on a map. This map visualization is actually an important feature of the dashboard, because the user (mainly the coordinator) can picture mentally in one look at the map, the spread of the students during their internship program.
I used SerpAPI to search Google Maps based on the location information in the spreadsheet, then extracted latitude and longitude before writing those coordinates back into the data. However, I found out during the testing that a company name or location doesn’t necessarily correspond to the physical site where the student is actually doing their internship. In some cases, the Google Maps search result pointed to the company's headquarters instead of the manufacturing facility (where most of the chemical engineering students spend their internship).
Because the data was “only 118”, I checked the data one by one, but I think there should be a better method to search the correct location. For a larger dataset, I'd like to explore a more robust approach: retrieving several candidate locations, comparing the available evidence, and assigning a confidence score before accepting a coordinate. Ambiguous cases could then be sent for human verification.
Built with AI, but not Designed by AI
I didn't build this entirely from scratch. I designed the architecture and workflow, then used Anthropic's Claude to help me debug parts of the n8n workflow and build the HTML frontend. I hadn't worked with Leaflet or Chart.js before this project, so I also used Claude as a technical tutor—asking it to explain unfamiliar code, troubleshoot problems, and help me understand how these libraries worked.
The only “problem” is that the base map shows a quite annoying “API Key Required” watermark. This happened because CARTO, the provider of the basemap tiles I was using, recently introduced an API-key requirement. We can submit a request form to CARTO Basemap API Key request page and we can get it for free for non-commercial use, including personal projects, research, teaching, and nonprofits, with a 5 million tile requests/month fair-use limit. We just need to fill the form, submit it, and seconds later we will get our API key delivered to our email inbox.
My Takeaways
I’m traditionally trained as a Chemical Engineer. I’m not trying to abandon that background and become a generic software developer. In fact, I’m becoming more interested in the opposite direction: I want to explore what happens when my engineering domain knowledge is combined with automation, data systems, web applications, and AI.
Academic environments are full of problems like this. Research groups have data. Laboratories have administrative processes. There are also many workflows around research that involve moving information between spreadsheets, emails, forms, and different systems—work that can potentially be reduced or automated, leaving more room for pondering on the actual experiments and research. With the ease of AI (agent) utilization nowadays, I hope this condition can change, and I would be happy to be one of these change agents.
If you’re working in a university, research group, laboratory, or engineering organization and have tackled similar problems with AI, I’d be interested in hearing about it. Or, are you having a workflow that feels unnecessarily manual, fragmented, or difficult to keep track of?
If you're working in a university, research group, laboratory, or engineering organization and have a workflow that feels unnecessarily manual, fragmented, or difficult to keep track of, I'd be interested in hearing about it. I'm particularly interested in building practical AI-assisted tools for engineering and academic workflows, so if you're facing a problem in this space, feel free to reach out.



