Inspiration

ConCourse was inspired by our first experience joining university. Finding basic information such as health insurance, immigration requirements, orientation details, and important academic deadlines often meant jumping between countless pages and keeping dozens of browser tabs open at once.

Course planning was just as fragmented. Understanding a single course required checking the scheduling platform for availability and then navigating long program course lists to find descriptions and prerequisites.

We built ConCourse to make navigating the “student hub” experience easier and less of a hassle by bringing courses, deadlines, policies, and guidance into one clear, centralized place.

What it does

ConCourse is a centralized academic hub that helps students find and understand university information more easily. It allows students to search and explore courses with detailed context such as descriptions, prerequisites, instructors and reviews, while also chatting with an AI assistant for guidance.

Through the chat, students can ask questions about course planning, important academic dates and deadlines, grading schemes, orientation, health insurance, and immigration-related information for international students. As students interact, relevant course information appears alongside the conversation to provide immediate context.

By combining structured course data with conversational guidance, ConCourse reduces the need to jump between multiple university platforms making academic information easier to access and understand.

How we built it

It is a full-stack web application built with React on the frontend and Node.js/Express on the backend. At the core of the experience is a multi-agent conversational system built using Botpress. Instead of relying on a single general-purpose chatbot, we designed multiple specialized agents that work together. When a user asks a question, the system analyzes the intent and topic of the conversation and dynamically routes the request to the most relevant agent. This allows the assistant to provide focused, context-aware responses across different domains such as courses, academic rules, deadlines, health resources, orientation, and international student information.

For course-related questions, the assistant relies on structured course data retrieved from APIs, including course details, instructors, reviews, and aggregated metrics. For broader university information, agents reference and index content from official Concordia web pages, grounding responses in trusted institutional sources.

The search functionality is designed to be fast and intuitive. Course data is preprocessed into a unified course-details format and indexed client-side, allowing users to search in real time by course name, code, instructors, credits, or term. As the user types, relevant courses appear instantly without additional backend queries, keeping the interface responsive and fluid.

Students can search for courses while chatting with the assistant, with relevant information shown alongside the conversation. As users explore courses or ask questions, relevant course details are displayed alongside the chat.

Challenges we ran into

Configuring the AI agents Getting the multi-agent setup working smoothly took a lot of tweaking. In Botpress, we had to build separate workflows and set up solid intent/topic routing so the right agent handled the right question. That meant tuning the instructions/system prompt and adding knowledge sources per domain.

Cleaning and normalizing the data The data didn’t come “ready to use.” Course prerequisites were written in a bunch of different styles, instructors weren’t always consistent, and some fields were missing depending on the source. We had to clean it, standardize field names, and create a consistent “course details” object so search + the assistant could rely on it.

Integrating Botpress with the frontend Hooking the Botpress webchat into the UI took iteration. We had to make sure the chat and the left-side course panel stayed in sync so when the assistant recognized a course, the frontend could update the displayed course card without feeling delayed or disconnected.

Accomplishments that we're proud of & What we learned

We’re especially proud of learning how to set up and work with Botpress, including configuring a multi-agent system that allows different parts of the assistant to handle different types of student questions. This was new for us, and it gave us hands-on experience designing AI workflows that can adapt based on the topic of a conversation rather than relying on a single generic chatbot.

What's next for ConCourse

Moving forward, we’d like to expand the integration between the AI agents and the user interface, so the UI can react even more dynamically to the conversation surfacing relevant information, links, and context automatically as topics change.

We also plan to expand the assistant’s knowledge base by incorporating more information from the Concordia website, allowing students to ask about an even wider range of topics and get clear, centralized answers without searching across multiple platforms.

Built With

Share this project:

Updates