How I built BECE Vault, and how students started using it

October 19, 2026 · 5 min read · bece-vault, react, side-projects

If you study engineering in Nepal, you know the routine. A new semester starts, someone in the class group asks if anyone has notes for a subject, and a few Google Drive links get passed around. Some of them work. Some are from three years ago. A few are photos of a whiteboard taken at an angle. By the time exams arrive, half the links are dead and nobody remembers which folder had the good past papers.

I'm a BE Computer Engineering student at NCIT, which is affiliated with Pokhara University, and I went through that routine enough times to get tired of it. So I built BECE Vault, a free notes library for everyone in the BECE programme under PU. This is how it came together.

It started as a folder

The first version wasn't a website. It was a GitHub repository with a folder for each semester and a folder for each subject inside it.

I picked GitHub on purpose. Drive links break when someone deletes a file or leaves college. A git repository keeps every file and the full history of who added it and when. It's public, it costs nothing, and it doesn't depend on any one person's account staying around.

That choice ended up shaping the rest of the project. Since the notes already live in git, the website doesn't need a database or an admin panel. It just reads the repository.

Turning the repository into a site

Browsing PDFs on GitHub works on a laptop. On a phone, which is how most students actually read notes, it's painful. So I built a proper site on top of the repo using React, TypeScript and Vite, and hosted it on Vercel.

My favourite part is that nobody keeps a list of files. A small Vite plugin scans the note folders whenever the site builds and generates the catalogue from them. It even reads git log to show when each file was last updated. If I drop a new PDF into a subject's folder and push, it's on the site after the next deploy. Nothing else needs editing.

Over time the site picked up the things students kept needing around the notes:

  • past exam papers, sorted by subject and year (there are over 200 now)
  • the full syllabus, with a PDF download
  • a CGPA calculator that uses PU's grading scale, plus a guide to how PU grading works
  • a short study guide for each subject, covering what to focus on and what the exam usually looks like

The notes themselves cover all eight semesters, with more than 800 files.

The parts nobody sees

A few pieces took far more work than they look like they did.

Notes open in a PDF viewer I built on pdf.js, because the browser's built-in viewer behaves differently everywhere and is clumsy on phones. Mine has search, zoom and highlighting, and it can reopen a file on the page you last read. That only happens if you've accepted cookies. I wrote about building it in another post.

Every page on the site is also prerendered to plain HTML at build time, around 150 pages, along with a sitemap. Without that, Google sees an empty page for every URL, which is a real problem for a site people are supposed to find by searching. The details are in Prerendering a React + Vite app for SEO.

And every PDF and image in the public repository carries a small "Available on notes.arpanadhikari7.com.np" line. I didn't stamp those by hand. The clean originals sit in a private repository, and a GitHub Actions workflow stamps files on their way to the public one. It does the same for notes that arrive through pull requests. I explain how that works in Automatically watermarking files with GitHub Actions.

How it's being used

I'll be honest, the numbers are small. But they're real, and they're more than I expected when this was just a folder of PDFs.

The site passed 2,000 page views in October 2026. The GitHub repository behind it gets used too. In two weeks that month (October 3 to 16) it was cloned 624 times by 241 different people, which tells me some students want the whole library on their own machine. In the two weeks before that, the repo's pages were viewed 709 times by 45 visitors.

I think a big part of it is that there's no friction. The site is free, it doesn't ask you to sign up, and every page is built so search engines can actually read it. You open it and the notes are just there.

What I'd do the same way again

Start with your own problem. I wasn't trying to build an education platform. I was trying to stop asking for notes every semester, and that kept the project focused for a long time.

Let simple tools carry the weight. Git, a build step and a few workflows do the job that would normally need a database, a content system and a lot of manual work. That's also why one student can keep it running.

Put it out before it feels finished. The first version had a fraction of what's there now, and it was still useful to people. Their using it is what pushed me to keep adding to it.

If you're a BECE student at any Pokhara University college, the library is at notes.arpanadhikari7.com.np, and everything, notes and code, is on GitHub. If you have notes that aren't there yet, I'd be glad to get a pull request.

Keep reading

All posts