I have my semester notes published as website.
I built them as the semester progressed, and I am still maintaining them. I don’t keep any other notes other than these. I am planning to continue this for all my semesters as well. Let’s hope the time permits me to do so. And I hope it’s atleast a little helpful to someone out there.
# Why?
On the 1st day of my semester 1, I wrote the notes using pen-and-paper. My handwriting is very illegible. I moved to text files, and then to markdown. My plan was to have a directory of my notes which would be grouped by modules and subsections.
I thought it would be fun to publish them as a small website. And here we are.
# Tech stack
I am using Astro with Starlight theme for the website.
To write the content, I use markdown. I am using katex to render the mathematical expressions.
On top of Starlight, I have applied some custom styles, and integrated some minor features.
# Additional things
# Live user count
Each of the websites has a small counter in the header. It shows how many users are currently browsing the website.
I built the live counter and hosted on a VPS just for this website. It was fun. I wrote how I built the live user count as a separate post.
Now whenever I visit the sites now, I see how many people are actively using it. That’s a great motivatation to keep improving the notes.
# Notes as pdf
I received many requests to provide the notes as PDF files. Initially I wrote a script to generate PDFs for each section. Later, I modified the script to generate a single e-book styled PDF for the entire semester. The script uses puppeteer to export the webpages as PDFs.
After the semester is over, I tried converting the entire website into a single e-book styled PDF. That was also a fun project. But it took me a long time to come to a satisfactory result. I also integrated pdf-lib to add metadata and outlines.
I wrapped the script as an Astro integration to generate the PDF on each production build.
# How I do it?
For S1 , I typed 100% of the notes myself. After each lecture, I spend some time reviewing the slides and revising. In this time, I also update my notes as well. It took more time but helped me understand the concepts better.
For S2 and S3 , I used ChatGPT to generate the initial drafts. I then review and modify the content to ensure accuracy and clarity. This approach saves me time while still allowing me to engage deeply with the material.
Few of my friends use the website for reference, and assist me in finding missing content as well as inaccurate ones.
At the moment, I am working on S4 notes as well. Hoping to publish them soon.