Skip to content

Commit 9884a03

Browse files
Final push: AcadAI v1.0 — 4th semester BSAI project complete
Co-authored-by: Faizan Ishfaq <faizanrajpoot774-debug@users.noreply.github.com> Co-authored-by: Muawiya Amir <Muawiya-contact@users.noreply.github.com>
1 parent 66bf31c commit 9884a03

15 files changed

Lines changed: 231 additions & 345 deletions

File tree

ai_academic_fixed/README.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# AcadAI — AI Academic Performance Prediction & Career Guidance System
2+
3+
**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.**
4+
5+
---
6+
7+
## Project Info
8+
9+
**Subject:** Artificial Intelligence
10+
**Semester:** 4th
11+
**Submitted To:** [Dr. Muhammad Siddique](mailto:msiddique@nfciet.edu.pk)
12+
13+
**Members:**
14+
15+
- [Faizan Ishfaq](https://github.com/faizanrajpoot774-debug)
16+
- [Muawiya Amir](https://github.com/Muawiya-contact)
17+
18+
---
19+
20+
## Overview
21+
22+
**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.
23+
24+
Built with Python · PyQt5 · scikit-learn · SQLite · Matplotlib
25+
26+
---
27+
28+
## Features
29+
30+
| Feature | Description |
31+
| ---------------------- | ------------------------------------------------------------------------------------- |
32+
| GPA Prediction | Random Forest + Ridge Regression model predicts next semester GPA with ~91% accuracy |
33+
| Weak Subject Detection | ML model identifies subjects needing attention and suggests improvement strategies |
34+
| Career Recommendation | Matches student profile (GPA + skills + interests) to best-fit career paths |
35+
| Skill Roadmap | Personalized step-by-step learning roadmap for chosen career goal |
36+
| Study Planner | Generates weekly study schedules prioritizing weak subjects |
37+
| AI Chatbot 🤖 | NLP-based academic assistant that reads live database and answers student queries |
38+
| Analytics Dashboard | Interactive charts: GPA trends, subject radar, risk distribution, attendance analysis |
39+
| Student Management | Add, edit, import students via CSV — full CRUD with SQLite backend |
40+
| CSV Import/Export | Bulk import 60+ students from CSV; export reports |
41+
42+
---
43+
44+
## Installation
45+
46+
### Prerequisites
47+
48+
Make sure you have **Python 3.10+** installed:
49+
50+
```bash
51+
python --version
52+
```
53+
54+
### Step 1 — Clone the Repository
55+
56+
```bash
57+
git clone https://github.com/your-username/acadai.git
58+
cd acadAI
59+
```
60+
61+
### Step 2 — Install Dependencies
62+
63+
```bash
64+
pip install -r requirements.txt
65+
```
66+
67+
### Step 3 — Generate Sample Dataset (First Time Only)
68+
69+
```bash
70+
python generate_dataset.py
71+
```
72+
73+
This creates `datasets/student_data.csv` with 60 realistic student records.
74+
75+
### Step 4 — Run the Application
76+
77+
```bash
78+
python main.py
79+
```
80+
81+
---
82+
83+
## Requirements
84+
85+
```batch
86+
PyQt5>=5.15.0
87+
matplotlib>=3.7.0
88+
scikit-learn>=1.3.0
89+
pandas>=2.0.0
90+
numpy>=1.24.0
91+
```
92+
93+
Install all at once:
94+
95+
```bash
96+
pip install PyQt5 matplotlib scikit-learn pandas numpy
97+
```
98+
99+
---
100+
101+
## Project Structure
102+
103+
```txt
104+
AcadAI/
105+
```

ai_academic_fixed/REAMDME.md

Lines changed: 0 additions & 237 deletions
This file was deleted.

ai_academic_fixed/analytics/analytics_engine.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# analytics/analytics_engine.py
22
import statistics
33
from database.db_manager import DatabaseManager
4+
from config import MAX_GPA_CHART_STUDENTS
45

56
class AnalyticsEngine:
67
def __init__(self, db: DatabaseManager):
@@ -11,6 +12,9 @@ def get_dashboard_stats(self):
1112

1213
def get_gpa_chart_data(self):
1314
students = self.db.get_all_students()
15+
# Limit number of students shown in the GPA chart to avoid visual saturation
16+
max_n = MAX_GPA_CHART_STUDENTS if MAX_GPA_CHART_STUDENTS and MAX_GPA_CHART_STUDENTS > 0 else len(students)
17+
students = students[:max_n]
1418
names = [s['name'].split()[0] for s in students]
1519
gpas = [s['gpa'] for s in students]
1620
return names, gpas

0 commit comments

Comments
 (0)