URMC-HUB a tool for service desk agents to gather information for making information gathering easier. Converting multiple tools into one web application.
Working at the URMC Service Desk, I realized that many of the applications we used were outdated and slow. On top of that, I often needed to open multiple tools just to look up one piece of information. To make things easier, I decided to build a single application that could handle everything, so I didn’t need to keep so many programs open at once.
I built the first version of the application using Go with plain JavaScript, HTML, and CSS. It worked, but as I added features, the code became hard to maintain. The JS and HTML/CSS structure wasn’t organized well, so even small updates became messy. After seeing what worked and what didn’t, I decided to rebuild the frontend from scratch and clean up the backend so the project would be easier to maintain and improve going forward.
I really like how Svelte handles components and keeps the CSS scoped to each one. So I rebuilt the entire frontend using Svelte. Now the structure is much cleaner, and making changes is a lot easier because everything is organized and readable.
Originally, the frontend was just a static set of files on a shared drive, and it made requests to a backend API. This setup caused performance issues, because the server had to navigate through multiple file paths to serve the HTML files, which slowed everything down. It was also confusing for other agents, since they had to open two separate things for the application to work. To fix this, I embedded the frontend directly into the backend server and now serve the UI locally, which makes everything faster and easier to run.
I ran into some issues with the database setup. Since each computer was making read and write requests to the same file, SQLite couldn’t handle the concurrent access well. I also didn’t have a dedicated server to host a central database. To work around this, each computer now has its own local SQLite database. When information is needed from another machine, it can read from that machine’s database instead.
Instructions on what is needed and how to build the project for development work.
cd backend/server/frontend
npm install
npm run build
Note: npm run dev to just work with frontend
cd backend/cmd/hub
go mod tidy
go run .
Project runs on localhost:8080/
go build .
Run the hub.exe created