Inspiration

Starting university is a fragmented experience. Students have to navigate course selection, schedule planning, and social connections across completely separate tools. Course information is often difficult to interpret, planning is manual, and meeting relevant people depends largely on chance.

Nomad was built to address this gap by combining academic planning and social discovery into a single system. The core idea is that a student’s academic graph and social graph are inherently linked, and should be treated as such.


What it does

Nomad is a student platform that integrates academic planning, social networking, and communication.

On the academic side, it provides an interactive course planner where courses are represented as a prerequisite-aware graph. Students can explore dependencies, track progress, and understand how courses fit into their academic path.

On the social side, it includes a feed system, friend connections, and communities. Users can create posts, react, reply, and filter content by interests or communities. A recommendation system suggests people based on shared university, major, and interests.

The platform also includes messaging and calendar functionality. Users can communicate in real time and manage events or schedule proposals within the same system.

A global search allows discovery across users, courses, communities, and posts, while onboarding ensures that relevant data is collected early to improve personalization.


How we built it

Nomad is a full-stack application built with a modern web architecture.

Frontend:

  • Next.js (App Router) with React and TypeScript
  • Tailwind CSS with component primitives
  • React Flow for graph visualization

Backend:

  • FastAPI with Python
  • Supabase for authentication, storage, and database
  • Pusher for real-time communication

The frontend uses a custom API hook pattern for data fetching and mutations, with optimistic updates for interactions such as connections and reactions. The system maps API models to UI-specific view models to maintain flexibility in rendering.


Challenges we ran into

The main challenge was combining multiple complex systems into a single coherent product. Academic planning and social networking have very different interaction patterns, and integrating them without creating a cluttered experience required careful design decisions.

State consistency was another major issue. Features such as connection status had to remain synchronized across multiple surfaces, including feed, search, communities, and course views.

On the technical side, building a stable and readable graph layout for courses required implementing deterministic algorithms and handling edge cases such as cycles and incomplete prerequisite data.


Accomplishments that I'm proud of

The project goes beyond a simple prototype and functions as a cohesive platform with multiple interacting systems.

It successfully integrates:

  • a prerequisite-based course planning system
  • a social network with real interaction flows
  • real-time messaging and updates

The recommendation system combines graph traversal and user similarity signals to produce meaningful suggestions. Additionally, the connection system was implemented consistently across all parts of the application, which required non-trivial coordination.


What we learned

We learned that building a strong product requires aligning technical systems with real user workflows. Simply adding features is not sufficient; the interactions between them define the overall experience.

We also gained experience designing graph-based systems, managing complex frontend state, and implementing real-time features in a scalable way.


What’s next for Nomad

Future development will focus on improving both the intelligence and depth of the platform.

On the academic side:

  • more advanced schedule optimization
  • multi-year degree planning
  • integration with real university datasets

On the social side:

  • improved recommendation systems
  • stronger community and event features

The long-term goal is to evolve Nomad into a central platform that supports both academic planning and social interaction throughout a student’s university experience.

Built With

  • dify
  • fastapi
  • nextjs
  • openai
  • pusher
  • shadcn
  • supabase
Share this project:

Updates