CollegeArchivedGitHub stars: 49SRMIST ECE Notes
Four years of ECE notes, opened up.
Overview
A collection of every B.Tech ECE note for SRMIST's 2020-24 cohort, alongside study resources and guidance on how to approach each subject. Started because the materials existed but were scattered and hard to navigate without a senior to point the way.
SRMIST ECE Notes was a single place for the B.Tech Electronics and Communication Engineering notes of the 2020-24 cohort at SRMIST. It had three parts:
- A GitHub repository with the notes organised semester by semester.
- A Google Drive mirror for files too big for GitHub.
- A website that linked every semester and subject to the right folder.
The material follows the '18 regulation curriculum. The repository holds more than 2,500 files, most of them PDFs.
Why I built it
In my second year I was preparing for end-semester exams and could not find one compiled source of notes. I had to go through WhatsApp groups and Google Drive folders shared by professors, and I kept hopping between them to find what I needed for a single subject.
I built this project to bring all of it into one location. The same problem overlapped with a lot of people in my batch, so it ended up helping them too, and then the juniors and the batches after them, until the new regulation took over.
The repository README also frames it as an act of paying it forward. It describes the project as a step towards being the senior I needed as a junior.
How it works
The notes live in the main branch of the repository, in folders for each semester and subject. GitHub caps individual files at 25 MB, so large documents were mirrored to a shared Google Drive folder.
The website lives in a separate client branch. It is a React and Material UI app built from JSON data files. A GitHub Actions workflow runs on every push to that branch, builds the app and publishes the output to a gh-pages branch. That branch backs the live site.
From the site, a visitor could open a semester or subject and jump to the repository folder, the Drive folder, or a DownGit link that downloads just that folder instead of cloning the whole repository.
Data model
The site has no backend. Its content comes from a handful of JSON files in the repository:
- Semesters list: one entry per semester, with its credits, number of courses and links to the repository folder, a download link and the Drive folder.
- Semester files: one per semester, listing each subject's code, name, credits and the same three links, plus a difficulty rating from 1 to 10.
- Extra notes: a separate file for notes from outside ECE.
- Notifications: announcements such as new semester notes. Which ones a visitor had read was remembered in their own browser.
Features
- Semester pages: subject lists for each semester, with credits and the repository, download and Drive links.
- Search: find notes across semesters and the extra notes set.
- Extra notes: a section for notes shared from other branches of study.
- Notifications: announcements when new semester notes landed.
- Contribute pages: guidance on adding notes or changing the website, and a page listing open GitHub issues as contribution requests.
- Contact, feedback and support pages: a contact form, a feedback form and support links.
Challenges and insights
- File size: GitHub's 25 MB per-file limit pushed big documents out to Google Drive, so the notes lived in two places and every link had to point to the right one.
- Repository weight: the repository was heavy enough that cloning it was a poor way to get a single semester. The README pointed to DownGit for downloading individual folders.
- Hand-maintained links: because the site was driven by JSON files, every new semester or subject meant keeping repository, download and Drive links in sync by hand. The contributing guide lists checks for exactly that.
- Subjective ratings: the 1 to 10 difficulty value is subjective. The contributing guide asks contributors to get it from someone who has taken the subject.
- Relevance: the README warns that the Semester 1 to 3 notes come from online classes, so the study material may help but the test notes less so.
What I learned
The technology wasn't new for me. The project used what I already knew. What I took from it was working with other people: collaborating on the notes and verifying them. Knowing it solved a shared problem for my batch and the juniors after us kept me working on it until it was decommissioned.
If I started today
These are suggestions, not part of the project's history:
- Start the site on a current build tool instead of Create React App, which is no longer actively maintained.
- Generate the semester and subject lists from the folder structure rather than editing JSON by hand.
- Host large files in object storage or Git LFS instead of splitting them across GitHub and Drive.
- Add a lightweight review step for notes, so verification doesn't depend only on pull requests.
Timeline and outcomes
- July 2022: the repository was created, and the first semester notes and the curriculum went in.
- August 2022 to November 2023: Semester 4, 5, 6 and 7 notes were added and announced on the site.
- May 2024: the last website update, a change for the regulations.
- December 2024: the last notes update, a Semester 7 readmission folder.
The project was retired when the '22 regulation took over, so the content has become less relevant for newer students. The repository is archived and read-only. The notes it holds still cover the '18 regulation curriculum.
Screenshots
Click any screenshot to view it full size.