Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿง  MindMap AI

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.


โœจ Features

๐Ÿ“š Topic Management

  • Create and organize academic topics.
  • Store topic descriptions, difficulty levels, and priorities.
  • Organize topics under subjects.
  • Define prerequisite relationships between topics.

๐Ÿง  Smart Recommendation System

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.

๐Ÿ•ธ๏ธ Knowledge Graph

Topics are represented as a directed graph where:

Prerequisite โ†’ Topic

For example:

Python โ†’ OOP โ†’ Inheritance

The system supports:

  • BFS
  • DFS
  • Topological Sorting
  • Dependency analysis

โšก Priority Queue

A priority queue is implemented using Python's heapq to efficiently organize topics according to their priority.

โฑ๏ธ Study Sessions

Students can:

  • Add study sessions
  • View study history
  • Update study sessions
  • Delete study sessions
  • Track total study hours

โœ… Progress Tracking

The system tracks:

  • Total topics
  • Completed topics
  • Remaining topics
  • Completion percentage
  • Total study hours
  • Most studied topic

๐Ÿ’พ Persistent Database

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.

๐Ÿงช Unit Testing

The project includes automated tests for core functionality such as:

  • Graph traversal
  • Topological sorting
  • Recommendation logic
  • Prerequisite handling

๐Ÿ—๏ธ Architecture

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

๐Ÿงฉ Core Concepts

Object-Oriented Programming

The system is structured around independent classes representing the main entities of the application:

  • topicz
  • studentz
  • study_sessionz
  • graphz
  • priorityz
  • recommendationz
  • databasez

This separation makes the project easier to maintain and extend.


๐Ÿ“Š Data Structures & Algorithms

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

Example Learning Graph

        Python
           โ”‚
           โ–ผ
          OOP
           โ”‚
           โ–ผ
      Inheritance

A student cannot receive Inheritance as an available topic until its prerequisites have been completed.


๐ŸŽฏ Recommendation Logic

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.


๐Ÿ—„๏ธ Database Design

The SQLite database contains the following main entities:

Students
    โ”‚
    โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Study Sessions โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Topics
    โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Completed Topics โ”€โ”€โ”€โ”€โ”€ Topics

Subjects โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Topics

Topics โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Prerequisites โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Topics

Main Tables

Students

Stores student information and study statistics.

Subjects

Stores academic subjects.

Topics

Stores:

  • Name
  • Description
  • Difficulty
  • Priority
  • Subject

Prerequisites

Represents many-to-many relationships between topics.

Study Sessions

Stores the student's study activity.

Completed Topics

Stores topics completed by each student.


๐Ÿ–ฅ๏ธ Application Menu

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

๐Ÿš€ Getting Started

1. Clone the Repository

git clone https://github.com/ZeinabDiab/mindmap_ai.git
cd mindmap_ai

2. Create a Virtual Environment

Windows

python -m venv venv

Activate it:

venv\Scripts\activate

Linux / macOS

python3 -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

The project currently relies primarily on Python's standard library.


4. Run the Application

python main.py

๐Ÿงช Run Tests

From the project root:

python -m unittest discover -s tests -p "test_*.py" -v

Expected result:

Ran 4 tests

OK

๐Ÿ› ๏ธ Technologies

  • Python
  • Object-Oriented Programming
  • Data Structures
  • Algorithms
  • SQLite
  • SQL
  • Unit Testing
  • Git & GitHub

๐ŸŽ“ Academic Purpose

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.


๐Ÿ”ฎ Future Improvements

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

๐Ÿ‘ฉโ€๐Ÿ’ป Author

Zeinab Abd El Monem Mohamed Diab

Computer Science & Artificial Intelligence Student Information Systems

GitHub: ZeinabDiab


โญ Project Goal

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.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages