An Intelligent Knowledge & Study Management System built with Python, OOP, Data Structures, Algorithms, and SQLite.
MindMap AI is a Python-based academic study management system that represents learning topics as a dependency graph and uses algorithmic reasoning to help students identify what they should study next.
The project combines Object-Oriented Programming, Graph Algorithms, Priority Queues, Relational Database Design, CRUD operations, and a rule-based recommendation engine into one integrated system.
- Create and organize academic topics.
- Store topic descriptions, difficulty levels, and priorities.
- Organize topics under subjects.
- Define prerequisite relationships between topics.
The recommendation engine analyzes:
- Completed topics
- Topic prerequisites
- Topic priority
- Topic difficulty
- Completed prerequisites
It then calculates a score for available topics and recommends the most suitable next topic.
Topics are represented as a directed graph where:
Prerequisite โ Topic
For example:
Python โ OOP โ Inheritance
The system supports:
- BFS
- DFS
- Topological Sorting
- Dependency analysis
A priority queue is implemented using Python's heapq to efficiently organize topics according to their priority.
Students can:
- Add study sessions
- View study history
- Update study sessions
- Delete study sessions
- Track total study hours
The system tracks:
- Total topics
- Completed topics
- Remaining topics
- Completion percentage
- Total study hours
- Most studied topic
The project uses SQLite with relational tables for:
- Students
- Subjects
- Topics
- Prerequisites
- Study Sessions
- Completed Topics
Foreign keys and constraints are used to maintain data integrity.
The project includes automated tests for core functionality such as:
- Graph traversal
- Topological sorting
- Recommendation logic
- Prerequisite handling
mindmap_ai/
โ
โโโ app/
โ โ
โ โโโ algorithms/
โ โ โโโ graphz.py
โ โ โโโ priorityz.py
โ โ
โ โโโ models/
โ โ โโโ topicz.py
โ โ โโโ studentz.py
โ โ โโโ study_sessionz.py
โ โ
โ โโโ services/
โ โ โโโ recommendationz.py
โ โ
โ โโโ database/
โ โโโ __init__.py
โ โโโ databasez.py
โ
โโโ tests/
โ โโโ __init__.py
โ โโโ test_algorithms.py
โ
โโโ main.py
โโโ requirements.txt
โโโ README.md
โโโ .gitignore
โโโ mindmap_ai.db
The system is structured around independent classes representing the main entities of the application:
topiczstudentzstudy_sessionzgraphzpriorityzrecommendationzdatabasez
This separation makes the project easier to maintain and extend.
MindMap AI intentionally uses multiple fundamental data structures and algorithms.
| Concept | Usage |
|---|---|
| Graph | Represents topic dependencies |
| BFS | Traverses learning paths |
| DFS | Deep dependency traversal |
| Topological Sort | Determines valid learning order |
| Priority Queue | Prioritizes important topics |
| Set | Tracks completed topics |
| List | Stores graph relationships and results |
| Heap | Efficient priority management |
Python
โ
โผ
OOP
โ
โผ
Inheritance
A student cannot receive Inheritance as an available topic until its prerequisites have been completed.
The recommendation engine first filters topics based on prerequisite completion.
Then each available topic receives a score based on:
Priority Score
+
Difficulty Score
+
Completed Prerequisites Score
Conceptually:
Recommendation Score =
(Priority ร 2)
+ (6 โ Difficulty)
+ (Completed Prerequisites ร 3)
The topic with the highest score becomes the recommended next topic.
This makes the recommendation process explainable and rule-based rather than simply selecting a random topic.
The SQLite database contains the following main entities:
Students
โ
โโโโโโโโโ Study Sessions โโโโโโโ Topics
โ
โโโโโโโโโ Completed Topics โโโโโ Topics
Subjects โโโโโโโโโ Topics
Topics โโโโโโโโโ Prerequisites โโโโโโโโโ Topics
Stores student information and study statistics.
Stores academic subjects.
Stores:
- Name
- Description
- Difficulty
- Priority
- Subject
Represents many-to-many relationships between topics.
Stores the student's study activity.
Stores topics completed by each student.
The CLI provides the following functionality:
1. View Topics
2. Add Study Session
3. View Study Sessions
4. Update Study Session
5. Delete Study Session
6. Complete Topic
7. View Progress
8. Smart Recommendation
9. Knowledge Graph
10. Priority Queue
11. Exit
git clone https://github.com/ZeinabDiab/mindmap_ai.gitcd mindmap_aipython -m venv venvActivate it:
venv\Scripts\activatepython3 -m venv venvsource venv/bin/activatepip install -r requirements.txtThe project currently relies primarily on Python's standard library.
python main.pyFrom the project root:
python -m unittest discover -s tests -p "test_*.py" -vExpected result:
Ran 4 tests
OK
- Python
- Object-Oriented Programming
- Data Structures
- Algorithms
- SQLite
- SQL
- Unit Testing
- Git & GitHub
This project was designed to demonstrate practical understanding of:
- OOP principles
- Data structures
- Graph theory
- Algorithm design
- Database systems
- CRUD operations
- Software architecture
- Automated testing
- Problem-solving
Rather than implementing these concepts independently, MindMap AI integrates them into a single practical application.
Planned extensions include:
- ๐ค AI-powered Study Assistant
- ๐ AI-generated personalized study plans
- ๐ AI-generated quizzes
- ๐ก AI-powered topic explanations
- ๐ Advanced progress analytics
- ๐ Web-based interface
- ๐ Interactive knowledge graph visualization
- ๐ User authentication
- ๐ PostgreSQL support
- ๐ฑ Responsive dashboard
Zeinab Abd El Monem Mohamed Diab
Computer Science & Artificial Intelligence Student Information Systems
GitHub: ZeinabDiab
MindMap AI aims to demonstrate how software engineering + data structures + algorithms + databases + intelligent decision-making can be combined to build a practical academic system.
If you find the project interesting, feel free to โญ the repository.