Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms Learning System

An interactive Flask learning site for visualizing core data structures and algorithms. It combines step-by-step browser animations with an optional OpenAI-powered teaching assistant.

Learning modules

  • Sorting: bubble, insertion, quick, and merge sort
  • Trees: traversal, binary trees, and BST insert/search/delete
  • Graphs: BFS, DFS, and Dijkstra's algorithm
  • Data structures: arrays and linked lists
  • Contextual chat assistant through /chat-api

Tech stack

  • Python and Flask
  • Vanilla JavaScript visualizations
  • HTML/CSS templates
  • OpenAI API for the optional assistant

Setup

git clone https://github.com/mark2146/education_system.git
cd education_system
python -m venv .venv
source .venv/bin/activate          # Windows: .venv\Scripts\activate
python -m pip install -r requirements.txt
cp .env.example .env

The visualizations work without an API key. To enable chat, set OPENAI_API_KEY in .env. For a shared deployment, also set APP_ACCESS_TOKEN and configure the frontend/reverse proxy to send it as a bearer token.

Run

flask --app app run --debug

Open http://127.0.0.1:5000. For a production-like process:

gunicorn app:app

Structure

app.py             Flask routes and chat endpoint
templates/         pages for individual topics
static/js/         visualization algorithms
static/css/        site styling
requirements.txt   Python runtime dependencies

Security notes

  • Keep .env and OPENAI_API_KEY out of version control.
  • /chat-api supports optional bearer-token protection, a 32 KB request limit, and a 2,000-character message limit. Add per-client rate limiting before public deployment.
  • Internal exceptions are logged server-side and are not returned to clients.
  • Set request-size limits and production security headers at the application or reverse proxy.

Status

Educational project. The visualizations prioritize clarity and are not intended as production algorithm libraries.

About

Interactive data structures and algorithms learning system with visualizations and an optional AI tutor

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages