|
| 1 | +# 🎓 AcadAI — AI Academic Performance Prediction & Career Guidance System |
| 2 | + |
| 3 | +<div align="center"> |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +**A professional AI-powered desktop application that predicts student GPA, detects weak subjects, recommends careers, and generates personalized study plans — built as a 4th Semester BSAI Project.** |
| 12 | + |
| 13 | +[Features](#-features) · [Screenshots](#-screenshots) · [Installation](#-installation) · [Usage](#-usage) · [Tech Stack](#-tech-stack) · [Project Structure](#-project-structure) |
| 14 | + |
| 15 | +</div> |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +## 📌 Overview |
| 20 | + |
| 21 | +**AcadAI** is an intelligent academic analytics platform built for university students. It uses **Machine Learning** to predict future GPA, detect at-risk students, recommend career paths based on academic profile, and generate AI-powered study plans — all inside a clean, professional desktop GUI. |
| 22 | + |
| 23 | +> Built with Python · PyQt5 · scikit-learn · SQLite · Matplotlib |
| 24 | +
|
| 25 | +--- |
| 26 | + |
| 27 | +## ✨ Features |
| 28 | + |
| 29 | +| Feature | Description | |
| 30 | +|---|---| |
| 31 | +| 📊 **GPA Prediction** | Random Forest + Ridge Regression model predicts next semester GPA with ~91% confidence | |
| 32 | +| ⚠️ **Weak Subject Detection** | ML model identifies subjects needing attention and suggests improvement strategies | |
| 33 | +| 🎯 **Career Recommendation** | AI matches student profile (GPA + skills + interests) to best-fit career paths | |
| 34 | +| 🧠 **Skill Roadmap** | Personalized step-by-step learning roadmap for chosen career goal | |
| 35 | +| 📅 **Study Planner** | AI generates weekly study schedules prioritizing weak subjects | |
| 36 | +| 🤖 **AI Chatbot** | NLP-based academic assistant that reads live database and answers student queries | |
| 37 | +| 📈 **Analytics Dashboard** | Interactive charts: GPA trends, subject radar, risk distribution, attendance analysis | |
| 38 | +| 👥 **Student Management** | Add, edit, import students via CSV — full CRUD with SQLite backend | |
| 39 | +| 📤 **CSV Import/Export** | Bulk import 60+ students from CSV; export reports | |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +## 🖼️ Screenshots |
| 44 | + |
| 45 | +> _Add screenshots of your running app here after launch_ |
| 46 | +
|
| 47 | +``` |
| 48 | +Dashboard → Analytics → Career Page → Chatbot → Study Planner |
| 49 | +``` |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## 🛠️ Installation |
| 54 | + |
| 55 | +### Prerequisites |
| 56 | + |
| 57 | +Make sure you have **Python 3.10+** installed. Check with: |
| 58 | + |
| 59 | +```bash |
| 60 | +python --version |
| 61 | +``` |
| 62 | + |
| 63 | +### Step 1 — Clone the Repository |
| 64 | + |
| 65 | +```bash |
| 66 | +git clone https://github.com/your-username/acadai-academic-system.git |
| 67 | +cd acadai-academic-system |
| 68 | +``` |
| 69 | + |
| 70 | +### Step 2 — Install Dependencies |
| 71 | + |
| 72 | +```bash |
| 73 | +pip install -r requirements.txt |
| 74 | +``` |
| 75 | + |
| 76 | +### Step 3 — Generate Sample Dataset (First Time Only) |
| 77 | + |
| 78 | +```bash |
| 79 | +python generate_dataset.py |
| 80 | +``` |
| 81 | + |
| 82 | +This creates `datasets/student_data.csv` with **60 realistic student records**. |
| 83 | + |
| 84 | +### Step 4 — Run the Application |
| 85 | + |
| 86 | +```bash |
| 87 | +python main.py |
| 88 | +``` |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## 📦 Requirements |
| 93 | + |
| 94 | +``` |
| 95 | +PyQt5>=5.15.0 |
| 96 | +matplotlib>=3.7.0 |
| 97 | +scikit-learn>=1.3.0 |
| 98 | +pandas>=2.0.0 |
| 99 | +numpy>=1.24.0 |
| 100 | +``` |
| 101 | + |
| 102 | +Install all at once: |
| 103 | + |
| 104 | +```bash |
| 105 | +pip install PyQt5 matplotlib scikit-learn pandas numpy |
| 106 | +``` |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +## 🗂️ Project Structure |
| 111 | + |
| 112 | +``` |
| 113 | +acadai-academic-system/ |
| 114 | +│ |
| 115 | +├── main.py # App entry point |
| 116 | +├── config.py # Colors, careers, global settings |
| 117 | +├── generate_dataset.py # CSV dataset generator (run once) |
| 118 | +├── requirements.txt |
| 119 | +├── README.md |
| 120 | +│ |
| 121 | +├── database/ |
| 122 | +│ ├── __init__.py |
| 123 | +│ └── db_manager.py # SQLite CRUD + stats queries |
| 124 | +│ |
| 125 | +├── models/ |
| 126 | +│ ├── __init__.py |
| 127 | +│ ├── prediction_model.py # GPAPredictor — Random Forest ensemble |
| 128 | +│ └── training.py # Model training from CSV data |
| 129 | +│ |
| 130 | +├── chatbot/ |
| 131 | +│ ├── __init__.py |
| 132 | +│ └── chatbot_engine.py # NLP chatbot — reads live DB data |
| 133 | +│ |
| 134 | +├── analytics/ |
| 135 | +│ ├── __init__.py |
| 136 | +│ └── analytics_engine.py # Stats engine for dashboard |
| 137 | +│ |
| 138 | +├── recommender/ |
| 139 | +│ ├── __init__.py |
| 140 | +│ ├── career_recommender.py # Career match scoring |
| 141 | +│ └── study_planner.py # Weekly study plan generator |
| 142 | +│ |
| 143 | +├── ui/ |
| 144 | +│ ├── __init__.py |
| 145 | +│ ├── main_window.py # Main app window + navigation |
| 146 | +│ ├── dashboard_page.py # Overview + metric cards |
| 147 | +│ ├── analytics_page.py # Charts + AI predictor |
| 148 | +│ ├── student_page.py # Student management table |
| 149 | +│ ├── career_page.py # Career recommendations |
| 150 | +│ ├── skills_page.py # Skill roadmap |
| 151 | +│ ├── planner_page.py # Study planner |
| 152 | +│ ├── chatbot_page.py # AI chatbot interface |
| 153 | +│ └── components/ |
| 154 | +│ ├── __init__.py |
| 155 | +│ ├── cards.py # Reusable card widgets |
| 156 | +│ ├── charts.py # Matplotlib chart components |
| 157 | +│ └── sidebar.py # Navigation sidebar |
| 158 | +│ |
| 159 | +├── assets/ |
| 160 | +│ └── styles/ |
| 161 | +│ └── theme.py # Global QSS stylesheet |
| 162 | +│ |
| 163 | +└── datasets/ |
| 164 | + └── student_data.csv # Auto-generated by generate_dataset.py |
| 165 | +``` |
| 166 | + |
| 167 | +--- |
| 168 | + |
| 169 | +## 🤖 AI & ML Concepts Used |
| 170 | + |
| 171 | +| Concept | Implementation | |
| 172 | +|---|---| |
| 173 | +| **Random Forest** | GPA prediction model (`models/prediction_model.py`) | |
| 174 | +| **Ridge Regression** | Ensemble GPA prediction alongside Random Forest | |
| 175 | +| **Classification** | Student risk level detection (High / Medium / Low) | |
| 176 | +| **Recommendation System** | Career matching based on GPA + skills + interests | |
| 177 | +| **NLP (Keyword Matching)** | Chatbot intent detection and response generation | |
| 178 | +| **Data Analytics** | Performance trend analysis across semesters | |
| 179 | +| **Predictive Modeling** | Future GPA projection for next 2 semesters | |
| 180 | + |
| 181 | +--- |
| 182 | + |
| 183 | +## 📊 Dataset |
| 184 | + |
| 185 | +The included dataset generator (`generate_dataset.py`) creates realistic student records with: |
| 186 | + |
| 187 | +| Column | Description | |
| 188 | +|---|---| |
| 189 | +| `name` | Student full name | |
| 190 | +| `email` | University email | |
| 191 | +| `semester` | Current semester (1–8) | |
| 192 | +| `attendance` | Attendance percentage (50–98%) | |
| 193 | +| `quiz` | Average quiz score (35–96/100) | |
| 194 | +| `assignment` | Assignment score (38–96/100) | |
| 195 | +| `midterm` | Midterm exam score (32–95/100) | |
| 196 | +| `study_hours` | Daily study hours (0.5–7.0) | |
| 197 | +| `gpa` | Calculated GPA (0.0–4.0) | |
| 198 | +| `interest` | Career interest area | |
| 199 | +| `skills` | Current technical skills | |
| 200 | + |
| 201 | +**GPA Formula:** |
| 202 | +``` |
| 203 | +GPA = (Attendance×0.20 + Quiz×0.20 + Assignment×0.20 + Midterm×0.30 + StudyHours×0.10) × 4.0 |
| 204 | +``` |
| 205 | + |
| 206 | +--- |
| 207 | + |
| 208 | +## 💬 Chatbot — How It Works |
| 209 | + |
| 210 | +The AI chatbot reads **live data from the SQLite database** and generates dynamic responses. It is not hardcoded. |
| 211 | + |
| 212 | +**Example questions you can ask:** |
| 213 | +``` |
| 214 | +"How can I improve my GPA?" |
| 215 | +"Who are the top students?" |
| 216 | +"Which career suits me?" |
| 217 | +"What skills should I learn for AI?" |
| 218 | +"How many students are at risk?" |
| 219 | +"Generate a study plan" |
| 220 | +"What is the class average GPA?" |
| 221 | +``` |
| 222 | + |
| 223 | +--- |
| 224 | + |
| 225 | +## 🎯 Career Recommendation System |
| 226 | + |
| 227 | +Career matches are scored using a weighted algorithm: |
| 228 | + |
| 229 | +```python |
| 230 | +match_score = ( |
| 231 | + gpa_score × 0.40 + # Academic performance |
| 232 | + skills_match × 0.35 + # Matching skills |
| 233 | + interest_match × 0.25 # Career interest alignment |
| 234 | +) |
| 235 | +``` |
| 236 | + |
| 237 | +--- |
| 238 | + |
| 239 | +## 👨💻 Author |
| 240 | + |
| 241 | +**Ali Khan** |
| 242 | +BS Artificial Intelligence — Semester 4 |
| 243 | +COMSATS University Islamabad |
| 244 | + |
| 245 | +--- |
| 246 | + |
| 247 | +## 📄 License |
| 248 | + |
| 249 | +This project is licensed under the **MIT License** — feel free to use, modify, and distribute. |
| 250 | +--- |
| 251 | +## 🙏 Acknowledgements |
| 252 | + |
| 253 | +- [scikit-learn](https://scikit-learn.org/) — Machine Learning library |
| 254 | +- [PyQt5](https://riverbankcomputing.com/software/pyqt/) — Desktop GUI framework |
| 255 | +- [Matplotlib](https://matplotlib.org/) — Data visualization |
| 256 | +- [Kaggle](https://kaggle.com/) — Dataset inspiration |
| 257 | + |
| 258 | +--- |
| 259 | +<div align="center"> |
| 260 | + <b>⭐ Star this repo if you found it helpful!</b> |
| 261 | +</div> |
0 commit comments