TrackWise is an intelligent academic advising system that uses rule-based inference engines to provide personalized course recommendations for students in the Artificial Intelligence Science track.
- Rule-Based Reasoning: Uses Experta library for intelligent decision making
- Credit Limit Management: Automatically calculates credit limits based on CGPA
- Prerequisite Validation: Ensures all prerequisites are met before recommendations
- Co-requisite Handling: Manages co-requisite requirements
- Failed Course Priority: Prioritizes retaking failed courses when prerequisites are met
- Semester Availability: Only recommends courses offered in the current semester
- Track Alignment: Ensures recommendations align with AI Science track requirements
- Personalized Suggestions: Based on student's academic history and performance
- Credit Optimization: Maximizes credit hours within CGPA-based limits
- Priority System: Failed courses get higher priority for retaking
- Detailed Information: Shows prerequisites, credit hours, and semester availability
- Beautiful UI: Modern, responsive design with gradient backgrounds
- Interactive Forms: Multi-select dropdowns with search functionality
- Real-time Feedback: Instant recommendations with detailed explanations
- Progress Tracking: Visual credit progress bars and summaries
- CGPA ≥ 3.5: 21 credits maximum
- CGPA ≥ 3.0: 18 credits maximum
- CGPA ≥ 2.5: 15 credits maximum
- CGPA < 2.5: 12 credits maximum
- Prerequisites: All prerequisite courses must be passed
- Co-requisites: Co-requisite courses must be passed or taken concurrently
- Semester Availability: Only courses offered in the selected semester
- Failed Course Priority: Failed courses are recommended first if prerequisites are met
- Credit Limits: Total recommended credits cannot exceed CGPA-based limit
-
Clone the repository:
git clone <repository-url> cd TrackWise
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
cd UI python app.py -
Access the application: Open your browser and go to
http://localhost:5000
TrackWise/
├── inference_engine/ # AI Inference Engine
│ ├── course_recommender.py # Main inference logic
│ ├── example.py # Standalone example
│ └── README.md # Inference engine documentation
├── UI/ # Flask Web Application
│ ├── app.py # Main Flask app
│ ├── inference_engine.py # Flask blueprint for AI recommendations
│ ├── Client.py # User authentication and routing
│ ├── KBSystem.py # Legacy knowledge-based system
│ ├── KBEditor.py # Knowledge base editor
│ ├── DB.py # Database operations
│ ├── templates/ # HTML templates
│ │ ├── index.html # Login/signup page
│ │ ├── student.html # Student dashboard
│ │ ├── course_recommendations.html # AI recommendations page
│ │ └── admin.html # Admin dashboard
│ ├── static/ # CSS, JS, and other static files
│ └── Data.csv # Course database
├── Data.csv # Main course database
├── requirements.txt # Python dependencies
└── README.md # This file
- Sign Up/Login: Create an account or login as a student
- Access Dashboard: Choose between AI-powered or legacy recommendations
- AI Recommendations (Recommended):
- Select your current semester (Fall/Spring)
- Enter your CGPA
- Select passed courses from the dropdown
- Select failed courses (if any)
- Click "Get AI Recommendations"
- View Results:
- See prioritized failed courses to retake
- View new course recommendations
- Check credit summary and progress
- Review prerequisites for each course
- Login as Admin: Use admin credentials
- Manage Knowledge Base: Add/edit/delete courses and rules
- Monitor System: View system usage and performance
The inference engine uses the Experta library to implement forward-chaining rule-based reasoning:
- Course: Represents course information and status
- Student: Represents student academic information
- EligibleCourse: Represents courses eligible for recommendation
- CourseRecommender: Main inference engine with rules
- Credit Limit Rule: Sets maximum credits based on CGPA
- Course Eligibility Rule: Evaluates prerequisites, co-requisites, and semester availability
- Failed Course Priority Rule: Prioritizes failed courses
- Regular Course Rule: Recommends other eligible courses
from inference_engine.course_recommender import get_course_recommendations
recommendations = get_course_recommendations(
student_cgpa=3.2,
passed_courses=['CSE014', 'CSE015', 'MAT111', 'MAT112'],
failed_courses=['CSE111'],
current_semester='Spring',
csv_path='Data.csv'
)GET /: Login/signup pageGET /student_dashboard: Student dashboardGET /course_recommendations: AI recommendation formPOST /course_recommendations: Process recommendations
POST /api/recommendations: JSON API for getting recommendations
The system includes comprehensive course data for the AI Science track including:
- Core CS courses (Programming, Data Structures, Algorithms)
- Mathematics courses (Calculus, Linear Algebra, Statistics)
- AI-specific courses (Machine Learning, Neural Networks, NLP)
- Elective courses and general education requirements
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Muhammed Mustafa
- Ramez Asaad
- Noureen Muhammed
- Rodina Mohamed
- Aya Mamdouh
This project is developed as part of the AIE212 Knowledge-Based Systems course.
TrackWise - Your intelligent academic companion! 🎓✨