Building a library resource booking system

Sam Xie
Sam Xie
Published in
4 min readJul 13, 2019
BookIT Maps Screenshot

During 2017, I was working at the IT help desk in the libraries at The University of Melbourne. We’d help out students with all sorts of IT problems from connecting to WiFi and printing help. Sometimes we’d help students install Windows on their machine, but that’s about as advanced as we’d get.

As the libraries had computers and meeting rooms available, students would often book in advance through our booking system (BookIT) and arrive at the library, without knowing where they booked. Students would often come to the help desk and ask for the location of their booking — we’d check their computer or booking room in the email receipt and direct them accordingly.

Me and another co-worker at the time decided to spin up a project to solve this issue. It was more of something that we could work on during quieter times than to be something revolutionary.

Technology

The first piece of the puzzle was of course, what technology should we use. My co-worker agreed to build the backend API, which was built in python. But we weren’t sure about which framework to use for the front-end.

At that time, there was another project called “Student WiFi Checker” which checks whether a student has granted access to WiFi by entering its username — it was built with Google’s Polymer. We wanted to try something new out. We wanted something more powerful than just a CSS library.

After some research, React was chosen. In hindsight, this was probably one of the best decision I’ve made personally — given the hotness of this technology as of now. It was really a decision between Angular and React, but React seemed to be more favoured on the internet forums I’ve read.

During the summer, I self-taught myself React on Udemy.

Development

We had a few ideas and mocks going on, but we thought the MVP would best be simply displaying the map of the Library where you can search for the booking name and it would appear.

When I eventually got something working, I’d show my co-workers. They would be interested in helping out, but given the lack of programming, let alone familiarity with the tech stack, no body really helped out on the front end. The ones that were really keen I asked if they wanted to help tag computers to their coordinates on the map, but because it’s a tedious task, they probably had better things to do.

Development was quite slow. I only had about 12–16 hours worth of shifts per week. I still had other duties to do such as solve customer tickets, maintain the computers in the library and of course, help out any students that require it.

We got the back-end and front-end hooked up. Users could see the status’ of computers on the map — albeit only for one floor of one of our libraries. They were also able to log in and see their current bookings.

We even found another use-case for our staff. We could, at a glance, see which computers were failing (they would be shown as red) and know exactly where to walk to trouble shoot it. I would actually use that at times.

Failure?

In the end, this project didn’t amount to much. I went on exchange and left work for about 6 months, then went on a couple internships before leaving. The project is open source — and others working at the help desk can contribute, but the back-end is non-functional as my co-worker has also left at this point.

Theoretically, this project can be revived, but It’s really unlikely there’d be someone there to have the knowledge (we were all students at the time) to continue on — if they were capable enough, they’d probably work on some other cool new project anyway.

Takeaways

All in all, this project help sharpen my front-end development skills in React + Redux. It kept work exciting and it definitely helped me skill up.

If I were to do it again, I’d probably focus on something more easy to build — and something more specific. I’m not sure if students of the library really had this pain point on not knowing where for their booking. They would probably just ask some staff, and problem solved.

We probably went into building this project too early without validating its use case. Even when we had something working, I don’t think many people used it apart from myself. It was probably more useful in showing off to my manager than it was to our customers.

--

--

Sam Xie
Sam Xie

Engineer @ Cash App ✨ I write & build stuff on the side 💬 Analyse your Facebook/Whatsapp/Instagram chats at https://doubletext.me | More at https://samxie.net