IRIS (Immigration Resources for International Students) is a full-stack, AI-driven chatbot developed as part of our capstone project at Centennial College. Designed to support international students in Canada, IRIS provides real-time, accurate immigration guidance by simplifying complex IRCC (Immigration, Refugees and Citizenship Canada) policies into accessible conversations.
International students often struggle to navigate legal documents, frequent policy updates, and long support wait times. IRIS addresses this gap by offering a reliable, user-friendly solution available 24/7.
🔍 Key Features
- Large Language Model Integration (LLMs): Delivers conversational, human-like responses to help users understand complex immigration terms and scenarios.
- Retrieval-Augmented Generation (RAG): Ensures answers are grounded in the most up-to-date IRCC policy documents stored in a custom, searchable vector database.
- Multi-Agent System with LangGraph: Applies agentic AI principles to autonomously manage tasks such as document retrieval, question answering, and dialogue flow—minimizing human intervention.
- Dynamic Admin Panel: Enables authorized staff to update policies and documentation in real time, ensuring accuracy and compliance as IRCC guidelines evolve.
🛠️ Tech Stack
- 🖥️ Streamlit – Frontend interface for chatbot and admin panel
- ⚡ FastAPI – High-performance backend API framework
- 🧲 Pinecone – Vector similarity search for document retrieval (RAG)
- 🍃 MongoDB – NoSQL database for storing user queries, sessions, and logs
- 🤗 Hugging Face – Pretrained LLMs for natural language understanding and response generation
1. Clone the repository:
git clone https://github.com/Curry091104/immigration-consultant-capstone.git
2. Install dependencies:
- Python version must be 3.11.
- To prevent dependency conflicts, it's recommended that separate virtual environment folders for both the front end and back end be created.
- To leverage GPU, after running
pip install -r requirements.txt, please run a command to reinstall PyTorch. Check this link for the installation command.
Frontend
cd frontend
pip install -r requirements.txt
Backend
cd backend
pip install -r requirements.txt
To run the project, use the following command:
- Ensure that your environment is activated before running the command.
- Verify that you have a .env file with all required keys.
- Run the backend (server) first and let it finish loading, then run the frontend (client).
Backend
cd backend
uvicorn main:app
Frontend
cd frontend
streamlit run Home.py
- Tuong Nguyen Pham - @Curry091104
- Ngoc Quynh Nhu Nguyen - @NhuNhuNguyen
- Kwok Wing Tang - @Patrickccca
- Joan Suaverdez - @jsuaverd
- Huaye Zhan - @howardzhan12
- Dongheun Yang - @DongheunDanielYang
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License
