Inspiration

As college students, we often struggled to find reliable notes from previous semesters or even from the same term when preparing for cumulative exams. Many of these notes were scattered across different platforms and some handwritten, others buried in online folders or group chats. This challenge inspired us to develop a centralized platform where students could easily access and share notes from multiple years. By creating a collaborative and organized digital space, we aim to make studying more efficient, accessible, and ultimately help students succeed academically.

What it does

Our project provides students with an intelligent platform to organize and access notes quickly and efficiently. By entering a keyword, users can instantly retrieve a curated collection of notes related to that topic. The more specific the keyword, the more precise and relevant the search results become. This system not only saves time but also enhances the learning experience by giving students streamlined access to high-quality study materials tailored to their academic needs.

How we built it

Our team built this project using a modern full-stack architecture designed for performance, scalability, and seamless user experience. The frontend was developed with Next.js 15 (App Router) and React 19, written entirely in TypeScript and styled using Tailwind CSS 4 for a clean, responsive UI. NextAuth.js handled secure authentication and session management. On the backend, we used NestJS to build a modular and maintainable API integrated with Prisma ORM and a PostgreSQL database hosted on Supabase. We also implemented Elasticsearch for hybrid search functionality and leveraged Google Vertex AI (Gemini and embeddings) to power intelligent data processing and retrieval. The frontend was deployed on Vercel, while the backend was containerized and deployed via Railway, ensuring reliable performance and smooth CI/CD workflows. This stack allowed us to deliver a powerful, AI-driven web application with efficient data flow, modern design, and cloud-native scalability.

Challenges we ran into

One of the biggest challenges we faced during this project was integrating multiple technologies smoothly while maintaining consistent performance across platforms. Setting up communication between the Next.js frontend, NestJS backend, and PostgreSQL database required careful configuration, especially when connecting Prisma ORM and Supabase. We also encountered issues with authentication flows using NextAuth.js and managing API routes between local and deployed environments. Implementing Elasticsearch and Google Vertex AI for intelligent note retrieval added another layer of complexity, particularly in optimizing search accuracy and embedding generation. Additionally, deploying the backend on Railway and ensuring proper synchronization with the Vercel frontend posed deployment and environment variable challenges, but overcoming these helped us strengthen our understanding of full-stack and cloud infrastructure.

Accomplishments that we're proud of

Despite the challenges, our team achieved several key milestones throughout the development process. We successfully integrated a full-stack architecture using Next.js, NestJS, and PostgreSQL while implementing Prisma ORM for smooth database management. We built an intelligent keyword-based note retrieval system enhanced by Elasticsearch and Google Vertex AI embeddings, improving search accuracy and user experience. Additionally, we implemented secure authentication with NextAuth.js, optimized our UI with Tailwind CSS, and deployed the frontend via Vercel and backend on Railway, ensuring a reliable and scalable platform.

What we learned

Through this project, we learned far more than just code. We learned collaboration, creativity, and persistence. We discovered how each component of a full-stack system connects like gears in a machine, and how a single missing piece can stall the entire engine. We learned to debug not only errors in our code but also gaps in communication and workflow. From deploying APIs on Railway to fine-tuning AI embeddings and designing sleek Next.js interfaces, every obstacle became a lesson in innovation. Most importantly, we realized that technology isn’t just about building apps it is about building solutions that make life a little easier for others.

Built With

Share this project:

Updates