Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Scheduler

A powerful scheduling application built with modern web technologies.

Technologies

Backend

Python Flask SQLAlchemy Jupyter

Frontend

React TypeScript Vite TailwindCSS Zustand Recharts

Algorithms

Ant Colony Optimization Genetic Algorithm Multi-Objective GA Hill Climbing

Data Visualization

Matplotlib NumPy

Dependencies

Backend Dependencies

  • Flask (2.3.3): A lightweight WSGI web application framework.
  • python-dotenv (1.0.0): Loads environment variables from .env files.
  • Flask-SQLAlchemy (3.1.1): Adds SQLAlchemy support to Flask application.
  • Flask-Migrate (4.0.5): Handles SQLAlchemy database migrations for Flask.
  • Flask-Cors (4.0.0): Handles Cross-Origin Resource Sharing (CORS).
  • Jupyter Notebook: Interactive computing environment for data analysis and visualization.
  • Matplotlib: Comprehensive library for creating static, animated, and interactive visualizations.
  • Pandas: Data analysis and manipulation library.
  • NumPy: Library for numerical computing with Python.

Frontend Dependencies

  • React (19.0.0): JavaScript library for building user interfaces.
  • React DOM (19.0.0): React package for DOM rendering.
  • React Router DOM (7.5.0): Declarative routing for React.
  • TypeScript (5.7.2): Strongly typed programming language.
  • Vite (6.2.0): Next generation frontend tooling.
  • TailwindCSS (4.1.4): Utility-first CSS framework.
  • Zustand (5.0.3): State management solution using simplified flux principles.
  • Axios (1.8.4): Promise-based HTTP client for the browser and Node.js.
  • Recharts (2.15.2): Redefined chart library built with React and D3.
  • Lucide React (0.488.0): Icon library for React applications.
  • Radix UI (1.2.0): Unstyled, accessible UI component library.
  • Class Variance Authority (0.7.1): Utility for creating consistent component variants.
  • Tailwind Merge (3.2.0): Utility for merging Tailwind CSS classes.
  • TW Animate CSS (1.2.5): Animation library for Tailwind CSS.

Optimization Algorithms

The application uses several advanced optimization algorithms to generate efficient schedules:

  • Ant Colony Optimization: Uses pheromone trails and heuristic information to find optimal solutions through collaborative search.
  • Multi-Objective Genetic Algorithm (MOGA): Evolves solutions using crossover and mutation while optimizing for multiple competing objectives.
  • Simple Genetic Algorithm: A streamlined genetic approach focused on quick convergence to good solutions.
  • Hill Climbing: A local search algorithm that continuously moves to neighboring states to find better solutions.

Data Analysis and Visualization

The backend utilizes Jupyter notebooks for algorithm development, testing, and visualization:

  • Algorithm Prototyping: Jupyter notebooks provide an interactive environment for developing and testing scheduling algorithms.
  • Performance Analysis: Visualize algorithm performance metrics including convergence rates and solution quality.
  • Schedule Visualization: Generate visual representations of created schedules for easier interpretation.
  • Comparative Analysis: Compare different algorithm approaches and parameter configurations to identify optimal solutions.

Jupyter notebooks are located in the backend/jupyter/ directory and include:

  • ant_colony.ipynb: Implementation and visualization of the Ant Colony Optimization algorithm
  • Additional algorithm notebooks for other optimization approaches

Using Jupyter Notebooks

To run the Jupyter notebooks:

cd backend
pip install jupyter matplotlib pandas numpy
jupyter notebook

Navigate to the jupyter/ directory to access the algorithm notebooks.

Getting Started

Backend Setup

cd backend
pip install -r requirements.txt
python -m venv venv
source venv/Scripts/activate
python app.py

Frontend Setup

cd frontend
npm install
npm run dev

License

MIT

About

Comperative Research Smart Scheduler app.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages