A modern educational platform that combines student information management with AI-powered assistance.
Student_Whisperer_Demo_vid.mp4
StudentWhisperer is an integrated platform designed to enhance the educational experience for students through:
- AI Chatbot Support: Get answers to questions about courses, assignments, and academic concepts
- Student Profile Management: Track academic progress, grades, and course information
- Secure Authentication: Multiple login options including traditional credentials and Microsoft SSO
- Responsive UI: Modern interface that works across desktop and mobile devices
-
AI Chatbot
- Natural language processing to answer student questions
- Context-aware responses based on your academic profile
- Ability to provide academic guidance and explain concepts
-
Student Information System
- View course enrollments and grades
- Track progress toward degree completion
- Access academic records and feedback
-
User Management
- Secure authentication with JWT tokens
- Profile management (update email, password)
- Microsoft Azure AD Single Sign-On integration
-
Administrative Tools
- Usage metrics and analytics
- User management capabilities
- Frontend: React, TypeScript, Tailwind CSS
- Backend: Python, Flask
- AI Integration: Azure OpenAI Services
- Search: Azure Cognitive Search
- Database: SQL Server, Azure SQL
- Authentication: JWT tokens, Azure AD integration
- Deployment: Docker, Docker Compose, Azure Container Apps
- Docker and Docker Compose
- Node.js (for local frontend development)
- Python 3.8+ (for local backend development)
- Clone the repository
git clone git@github.com:DevOps2025Group1/v4-StudentWhisperer.git
cd v4-StudentWhisperer- Start the application using Docker Compose
docker-compose up- Access the application at http://localhost
- Navigate to the frontend directory
cd frontend- Install dependencies
npm install- Start the development server
npm run dev- Navigate to the backend directory
cd backend- Create a Python virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Set up environment variables (create a .env file based on .env.sample)
cp .env.sample .env
# Edit the .env file with your configurations- Start the Flask server
python app.pyThe backend requires several environment variables to be set. Create a .env file in the backend directory based on the .env.sample provided:
# Azure OpenAI Configuration
azure-openai-api-key=""
azure-openai-endpoint=""
azure-openai-embedding-deployment-id=""
azure-openai-gpt-model-deployment-id=""
azure-openai-api-version=""
# Azure Search Configuration
azure-search-service-endpoint=""
azure-search-index=""
azure-search-datasource=""
azure-search-skillset=""
azure-search-indexer=""
azure-search-admin-key=""
azure-search-semantic-config=""
# SQL Database Configuration
sql-server=""
sql-db=""
sql-user=""
sql-password=""
These environment variables are used for:
- Connecting to Azure OpenAI for the chatbot functionality
- Setting up Azure Cognitive Search for information retrieval
- Connecting to the SQL database for student information
The backend provides several API endpoints:
- Authentication:
/api/auth/login,/api/auth/register,/api/auth/azure-token - Profile:
/api/me,/api/student/courses - Chat:
/api/chat - Account Management:
/api/student/update-email,/api/student/update-password
For a complete list of endpoints and their documentation, see the backend code or run the application and explore the API.
We welcome contributions to StudentWhisperer! Please feel free to submit issues or pull requests.
This project is licensed under the Apache License 2.0.