We built a new KURT mobile app, but the university prohibited us from launching it
An Open Statement to the KU Leuven Community
TL;DR
- In early 2024, we built Kurtosis, a faster alternative to KU Leuven's KURT library booking system. It became one of the most popular posts on r/KULeuven and is used by hundreds of students to this date.
- Since July 2024, we have spent 5 months developing a new mobile app for KURT with 4x faster performance, a 3D library map of study spaces, Face ID for booking and checking in, and smart seat-finding even when libraries are full.
- The app was deliberately designed to work with existing KURT infrastructure, requiring no ongoing support from the university. Furthermore, the app used fewer server resources than the official KURT system.
- After a meeting with the KURT team in September featuring an initial demo of the app, dozens of emails, and a series of presentations, we were invited to our final meeting with Campusbibliotheekraad Humane Wetenschappen in October 2024 to present the app and plan. Following this, we received an unexpected rejection with no actionable feedback.
- We're sharing this because students deserve transparency about why the app won't launch, and to encourage a broader discussion about evaluating student initiatives.
- The current Kurtosis web app will stop working soon when KURTv2 is disabled. If you believe this app would benefit the student community, reach out to the KURT team or KU Leuven staff to reconsider the rejection.
Hello
As students of KU Leuven who have experienced the pain of booking seats with KURT and saw other people struggling with it, we wanted to solve this problem and share our solution with other students.
In early summer 2024 we publicly launched Kurtosis — a simple web page that allowed you to see the availability of the all seats in any library with a single click of a button.
The response was overwhelming. Post about Kurtosis on Reddit became one of the top-10 upvoted posts of all time on r/kuleuven. It was used by hundreds of students during summer blok, and people keep using it at the time of writing this post.
We realized that we were not alone in our frustration with the official KURT interface, and we put out a survey on the Kurtosis page, essentially trying to figure out "Why are you here and not on the official KURT web app?" and also started researching by talking to people in person. The feedback was clear: the official web app was slow, clunky, and felt like filling out a tax return rather than finding a place to study.
What We Built
Driven by the support from students, this motivated us to build a full mobile app for KURT, that will be faster, more efficient, and built around the feedback from students.
We assembled a team of three people who previously contributed to Kurtosis and started by researching how students interact with library spaces and designing an interface around it. Over five months since June 2024, our team developed a mobile app for iOS and Android from scratch.
The goal was not just to build a tool that allows "students to book seats from a list," but instead, it must be driven by a deep understanding of who uses it. Maybe they're tired from yesterday's party or stressed about tomorrow's exams — in every design decision, we must consider what we want the users to feel, how we can help them during stressful times, and not overwhelm them with unnecessary information.
After all, booking seats in libraries is a part of student life, not just a service. Internally, we defined "efficiency and empathy" as our guiding principles.
Overview
- Isometric maps of the libraries. Pick yourself a seat visually, see where exactly your bookings are on the map, not just the seat numbers. Inspired by The Sims.
- Over 4 times faster performance in all use cases. Including search, booking, and checking in, compared to the KURT web app.
- Smart search called 'Auto'. It works instantly, prioritizes your favorites, and even can automatically find available seat sequences when the library is full.
- Booking and checking in with Face ID or other built-in biometric system. The app uses the same phone hardware security features as banking apps, making it more secure than the browser. No KU Leuven Authenticator is required, without compromising security.
- Reduced load on the KURT servers. The app relies on the existing KURT infrastructure and uses it more efficiently than the official web app, dramatically reducing server load and requiring no ongoing support from the KURT team.
Find your seat on the map, not by decoding a seat number
Instead of going through endless lists of seats, we created an isometric map view (just like in The Sims), where you can actually see the library layout, the trees, the monitors, and most importantly – where you'll be studying. We wanted students to feel like they're choosing a real space, not just clicking a database entry.
Note: During development, we used a simplified version of the map to enable faster testing and iteration, rather than the final map design shown in the image above. In the interest of transparency, we chose to include actual screen recordings of the app, which show this simplified "development" version of the map.
Find seats instantly, even when library is full
One of the most impressive features we've developed is called “Auto”. It's an intelligent alternative to random search, enabling you to find study seats even when the library is full and there are no seats in KURT.
Simply select the time frame you're interested in, and the app will try to find the best seat for you, prioritizing your favourites. If there are no seats that are available for the entire duration, the app will create a sequence of available seats, optimizing for the least amount of seat switching, so you can study more without distractions.
Booking a seat or a sequence of seats requires a single tap. No need to play around with filters, searches, and sitting with your notepad, calendar, and map trying to string everythig together.
No more empty, but booked seats
We know that many people take breaks during their study sessions — be it for lunch, ping pong, or just a small walk. Most of the time, they keep the seat booked, and we get it — creating multiple reservations is kind of a hassle.
However, this leads to seats that appear booked in KURT, but are empty in reality, and that is frustrating for everyone — both people who need a seat and people who took a break because they can't make the seat available.
Our app doesn't limit you to select a single time frame for your study session. You can add breaks between your study sessions, and the app will automatically figure out which bookings to make. And again, it's just a single tap.
Collaboration With KURT
In September 2024, we had a meeting with the KURT team where we presented our work. They were enthusiastic about the project and asked us to prepare a shorter pitch for higher management. This too was well-received, and we eventually got invited to give a presentation at the Campus Bibliotheek Raad Humane Wetenschappen meeting in October.
On October 21st, we attended the meeting and presented our app, as well as explained our plan, ensuring sustainability and addressing any concerns regarding support. When we finished the presentation with the Q&A, no concerns were raised about the app at all, which made us think that our presentation went very well.
However, a few days later we received a rejection. It came in a brief email that expressed "significant concerns" citing four points:
- Risks regarding security and privacy are "particularly high"
- Concerns about the lack of audit and monitoring capabilities
- Collaboration would require significant ongoing time investment
- Added value of the app "may be limited" due to the map being in the roadmap of KURTv3, described it as "the major shortcoming of KURT today"
Their email ended with "we have decided not moving forward with this collaboration", and did not contain any actionable feedback. After 5 months of working on the app, it did come as a bit of a shock to the team, especially after all of the work we did to eliminate such concerns:
Security and Audit
- Our app implements stronger security measures than the browser-based solutions. We use the same hardware security features used by banking apps.
- All data processing occurs locally on the user's device. The only service that processes any personal data is KURT itself.
- We have been open to any possible security and privacy audits by the university or any third-party experts to ensure the app meets all necessary standards.
- Additionally, at the time of the rejection, we have already proactively reported security vulnerabilities in the current KURT system.
Time Investment
- The app was specifically designed to rely on existing infrastructure, it was a conscious decision to minimize the ongoing support required from the KURT team.
- During development, we implemented authentication through an alternate method made available by the KURT system, which didn't use KU Leuven Authenticator. The only thing we asked from the KURT team was to allow us to use the official authentication system, so that we could make our app even more secure. Once granted, our app would operate independently without requiring ongoing support from the KURT team.
- Our team has also proposed a plan for a student organization to take over the app's maintenance and development, ensuring that the workload will be distributed among students and not fall on the KURT team.
Added Value
While the KURT team has mentioned to us that some of the features we have implemented are planned for KURTv3, such as floor plans, we believe that, even at the current stage, our app has a lot more to offer, namely:
- It works over 4 times faster than the KURT web app across all scenarios. Users can launch the app, book a seat, and view it on the study space map in just 15 seconds.
- Reduces server load dramatically, which was acknowledged by the KURT team. By our estimates requiring up to 350% less compute 1 than the official KURT web app.
- Enables authentication with Face ID or other built-in biometric systems instead of KU Leuven Authenticator, without compromising security.
- Allows to check-in to the booked seat without the need to reauthenticate every time, again, without compromising security.
Additionally, we had planned several app-specific features that are not possible in a web app:
- Secure and privacy-preserving detection of users leaving study spaces, with prompts to check out with a single tap, helping to further eliminate the issue of booked but empty seats in libraries.
- Live Activities on iOS and widgets on Android, allowing students to see how much time they have left in their booking and receive notifications when their booking is about to expire.
Follow-up
On the same day, we sent a response to the KURT team, asking for clarification on the rejection and details on how Quivr approaches data access. In the response, the council members:
- Noted to "appreciate proactive approach" to reporting vulnerabilities in the KURT system.
- Recognized the efforts we have put into the app security, but mentioned that "trust is paramount, and we cannot trust any code that uses student data deployed into production without full assurance of its integrity and purpose."
- Justified the approval of Quivr by stating that it "operates on a read-only basis regarding KU Leuven-stored student data" and handles "official KU Leuven class schedules, which are public information," compared to "the broader access your app might require".
- Ended the email by stating the decision stems from a trust issue, "not with you personally but with the potential risks involved" and resource limitations.
We understand that the protection of student data is important, that's why our app was built from the ground up to operate without processing or storing any personal data — eliminating the need for trust entirely.
While the council's claim that KU Leuven is not sharing personal data with Quivr is technically true, Quivr still collects and processes student data, and even makes it available publicly 2. Our app doesn't process or store personal data at all.
Since the university's decision to reject the app was based on a lack of trust and not on technical or security concerns, we have no way to address this issue. We have proposed solutions for every concern raised, but the university has not provided any actionable feedback or a path to approval.
Our Position
While we disagree with the reasons behind this decision, we are ready to implement any changes and have proposed solutions for all highlighted problems. As of now, we do not see a reliable path to our app's approval, so we are disappointed to say that it is highly unlikely that our app ever gets released.
Our team has proposed solutions addressing all concerns, ranging from technical integration to long-term maintenance. Beyond offering to implement necessary modifications in collaboration with university technical teams, we developed a plan for a student organization to ensure the app's sustainability. This project started because we believed in KU Leuven's commitment of supporting student initiatives and we hoped to contribute to the university community.
We're sharing this story because we believe in transparency, and because we hope it might spark a broader discussion about how student initiatives are evaluated. The code we wrote could have made hundreds of students' lives easier. Instead, it will remain unused.
Below you can find a copy of all our presentations (both for KURT and for internal meetings) ever made for the KURT mobile app project, as well as the video materials.
- (Internal) Late June Sync
- (Internal) Early September Team Sync & Design
- September Pitch for KURT Team
- Short September Pitch for Management
- KURT App Demo Day (21st October)
- KURT App Demo Day (21st October) with notes
We remain committed to finding ways to help fellow students and hope that future initiatives will find more support in their efforts to improve university systems.
What's Next
The KURT development team stated that the KURTv2 will be disabled soon, which means that Kurtosis will also stop working as it depends on the KURTv2 infrastructure, and we can't do anything about it.
We know many of you have shared our frustration with the official KURT web application — the performance, the interface, and overall user experience. That's why so many students have embraced the Kurtosis app as a better alternative. The positive feedback and growing waitlist make it clear there is strong demand for a better solution.
What You Can Do
Despite demonstrating that our app is significantly faster and more efficient than the current KURT system, the university has prohibited us from launching it. This decision feels like a major missed opportunity, both for students and for the university itself.
If you believe this app would benefit the student community, reach out to the KURT support team or any other KU Leuven staff members you feel may be able to reconsider this rejection:
- ask.kurt@kuleuven.be — KURT Team
- Campusbibliotheekraad Humane Wetenschappen
- luc.sels@kuleuven.be — Rector of KU Leuven
We ask you to make your voice heard and share any problems that you see with the current KURT system with the university. We hope that by helping the university understand how important a good seat reservation system is to a less stressful student life, we can compel them to reconsider their decision.
Thank you for your support — it means everything to us.
Sincerely,
Ilia, George, and Alexander
For any questions or inquiries, please contact us.
Footnotes
-
Since we don't have access to the KURT server logs, we don't have technical capacity to measure the exact performance improvement. Therefore, we made a good-faith effort to estimate the performance improvement based on the number of requests made to the server and approximated complexity of the requests.
Example of the compute required for booking a seat with a one-hour break:
- Data lookup call = 1 compute unit
- Data write call = 1 compute unit
- Seat search call = 4 compute units (due to the complexity of the query running on the database server)
For KURTv3: 1 (library data lookup) + 4 (search for booking before lunch) + 1 (book seat) + 4 (search for booking after lunch) + 1 (book seat) = 11
For the app: 1 (download availability data) + 2 (book two seats)
The same calculation was done for other use cases, such as booking or searching for a seat, and the results for some use cases were up to 3,5x performance improvement. While we understand that this is a rough estimate, when we presented this to the KURT team, they acknowledged that the app is a lot more efficient than the current system.
-
Quivr maintains a public directory of user profiles, including full names of enrolled students, accessible to anyone with an account, and you don't have to be a student to create a Quivr account. While this student data is not directly shared by KU Leuven, it is collected and processed by Quivr on third-party servers, with no restrictions on who can access this information.
Note: To be clear — we do not have any problems with Quivr, it't a good app and solves a lot of students' problems. We think it's great when students make tools to make their life easier, and that's why we made the KURT app.