Inspiration

University students juggle lectures, assignments, exams, lecture notes, group discussions, and deadlines across multiple courses every semester. Most existing tools solve only one piece of that experience: a to-do list, a note-taking app, a calendar, or an AI chatbot.

I asked a different question:

What if there was an academic operating system that understood a student's academic context?

CampusOS was born from that idea. Instead of making students build their semester from scratch, CampusOS understands who they are academically. Their institution, programme, level, semester, and curriculum, then organizes everything around that context.

What it does

CampusOS is a context-aware academic platform designed to become the academic home for university and polytechnic students.

It helps students:

  • Organize their academic life.
  • Keep track of assignments, exams, and deadlines.
  • Learn with AI grounded in their own course materials.
  • Collaborate with classmates inside course-specific communities.
  • Always know what they should be focusing on next.

Unlike traditional student apps, CampusOS is built around the semester itself.

A defining concept is that a course code is an identity. Students recognize courses like ACC223 or STA221 before they think about the course title, so CampusOS makes curriculum courses the center of the experience. Communities, notes, assignments, and AI all live inside the course rather than existing as disconnected features.

How I built it

I started by designing the product architecture before writing code.

I defined the academic model around universities, programmes, curricula, semesters, and curriculum courses, then designed an interface centered on the semester journey.

Curriculum at national scale. NUC publishes seventeen CCMAS documents covering every university discipline in Nigeria.

Hundreds of pages each, tables with no ruled lines so table extraction finds nothing. I wrote a parser that reads them as text, tracks which programme and level each block belongs to, and extracts course codes, titles and units. That produced about 140 programmes.

Programme lists came from the course pages students already use, parsed locally. Matched together: 246 programme-curriculum pairs across eleven universities, roughly 8,000 course entries.

Corroboration where no source exists. For everything the documents don't cover, students build it. A student adds a class time; their coursemates see it as a suggestion they can accept, never as a fact imposed on their timetable, because lecturers split groups, and a timetable right for one student is wrong for another. Data carries a confidence level, and only verified data is prefilled.

Built with Next.js 16 and TypeScript, Postgres on Neon with Prisma, Auth.js for Google sign-in, Tailwind 4, and deployed on Vercel as an installable PWA with web push.

Challenges

The first version made class times belong to the course, shared by everyone taking it. It seemed obvious: one class, one time.

A student testing it pointed out that their lecturer splits the class into groups that meet at different times. The model was wrong. I rebuilt it so timetables belong to the student who entered them, and a coursemate's entry arrives as a suggestion they can accept rather than a fact imposed on their day.

That reshaped how I think about the whole product. Almost everything students add is true for some of them and wrong for others, so the system had to be built around offering rather than asserting.

Another challenge was designing a platform that can support different universities and programmes while still feeling personal to each student.

Accomplishment I'm proud of

The curriculum actually works. Eleven Nigerian universities, 246 programme-curriculum pairs, roughly 8,000 course entries, all from official NUC documents nobody had connected to a student app before. A student at UNILAG studying Computer Science picks their programme and sees their real courses. That's the thing I most wanted to be true, and it is.

Communities that can't be gamed. No invite links. Enrollment is what earns you a place in a room, so nobody ends up in a course discussion they aren't part of, and everyone who ever took the course stays and a fresher can reach someone who passed it last year.

CampusOS survived a real student. A friend used it, found three bugs and one wrong assumption about how timetables work. All four are fixed.

What I learned

Building CampusOS reinforced that great student software shouldn't just store information, it should understand academic context.

By combining curriculum data, deadlines, learning resources, collaboration, and AI into one system, I believe students can spend less time organizing their semester and more time succeeding in it.

What's next

Roadmap includes expanding curriculum coverage across more institutions, strengthening course communities, introducing intelligent study planning, and making CampusOS the academic operating system students rely on throughout their university journey.

Built With

Share this project:

Updates

Submission history