Khaled Ashraf's Projects
This is a C++ project that uses Windows API and OpenGL to create a graphical user interface (GUI) for drawing and manipulating 2D shapes. The project implements various algorithms for line, circle, ellipse, curve, filling, and clipping operations. The user can interact with the window using mouse only, and can choose the shape color, filling quarte
This program implements a histogram using MPI and OpenMP to analyze a dataset containing group ages that watch a TV show. The goal is to calculate statistics about the groups of age and generate a frequency histogram.
This repository contains an ontology built using ProtΓ©gΓ© for modeling the domain of airfields, runways, taxiways, gates, and aircrafts. The ontology captures various constraints and relationships between different entities in the airfield domain.
This project is an auto-filling text program implemented in Python using N-gram models. The program suggests the next word based on the input given by the user. It utilizes N-gram models, specifically Trigrams and Bigrams, to generate predictions.
This is a C++ implementation of an AVL tree, which is a self-balancing binary search tree. An AVL tree maintains the balance factor of each node, which is the difference between the heights of its left and right subtrees. Whenever a node becomes unbalanced (its balance factor is either -2 or 2), the tree performs a rotation to restore the balance.
This contains a C++ code that implements a B-Tree data structure. A B-Tree is a self-balancing tree that can store and retrieve data efficiently. It is commonly used in databases and file systems.
This is a simple calculator app that can perform basic arithmetic operations such as addition, subtraction, multiplication, and division. It is built with HTML, CSS, and JavaScript only. No frameworks or libraries are used.
This project aims to perform sentiment analysis on tweets related to ChatGPT, a popular language model developed by OpenAI. The dataset used for training and testing consists of 219,293 tweets collected over a month. Each tweet is classified as positive ("good"), negative ("bad"), or ("neutral").
This is a Java-based implementation of the Chinese Checkers game with a graphical user interface (GUI). The game allows you to play against an AI opponent using the Alpha-Beta Pruning algorithm. The objective of the game is to move all your marbles to the opposite point of the star-shaped game board. The first player to achieve this wins the game.
Clothify-System is an online shopping website that allows users to browse, search, and purchase products. The website features a user-friendly interface, and an administration page that enables the management of products. The website also follows the color scheme and UI/UX principles of the other apps in the project. The project was developed using
This project is a Java program with a graphical user interface (GUI) designed to simulate different CPU scheduling algorithms. The goal of this project is to provide a hands-on experience and visual representation of various CPU scheduling algorithms, including Non-Preemptive Priority Scheduling, Non-Preemptive Shortest Job First (SJF), Shortest-Re
This program implements a genetic algorithm for curve fitting using a polynomial equation. The goal is to find the best coefficients for the polynomial equation that minimize the distance between the curve and a given set of data points. The genetic algorithm is used to search for the optimal solution by evolving a population of candidate solutions
This repository contains a C++ implementation of the Banker's algorithm, which is used to avoid deadlock in a system. The program allows processes to request and release resources, and the banker will grant a request only if it leaves the system in a safe state. If a request would lead to an unsafe state, it will be denied. The program also include
It's a Java-based repository that aims to implement and compare various disk scheduling algorithms. The project focuses on optimizing the movement of the disk head while accessing I/O blocks on cylinders. It provides a comprehensive solution for analyzing and visualizing the performance of different algorithms.
DriveMe is a Java application that helps users to communicate with car drivers to transport users to any area. It uses SOLID principles, software engineering, and OOP concepts to implement the functionality and design of the application. The application has two versions: one with web service in Spring Boot and another with console.
This Python code utilizes the decision tree algorithm from the scikit-learn library to perform banknote authentication. The code aims to analyze the impact of different train-test split ratios and training set sizes on the accuracy and size of the learned decision tree.
This repository contains the implementation of several expert systems using the CLIPS (C Language Integrated Production System) programming language. Each problem is implemented as a separate module within the repository. The expert systems cover a range of domains including family relationships, flag colors, GPA calculation, shape manipulation, an
FinTracker is a command-line application designed to empower you with control over your finances. It streamlines the process of recording, tracking, and analyzing your financial transactions, providing valuable insights into your spending habits.
This repository contains an assembly program written in AT&T syntax called FPU-Analyzer. The program analyzes a series of floating-point numbers and calculates their sum and average.
This is a implementation of a FTP (File Transfer Protocol) client-server application using Java sockets. The client can connect to the server, login with username and password, and download files from the server. The server can handle multiple clients and authenticate them using a file that stores the authorized users and their passwords. The serve
It's a Java-based application that provides functions and tools for designing and simulating fuzzy logic systems. It offers a user-friendly interface for creating and testing fuzzy logic systems by allowing users to define and configure input variables, output variables, membership functions, rules, and defuzzification methods.
This repository contains a C++ program that solves the Knapsack Problem using a Genetic Algorithm. The Knapsack Problem is a classic optimization problem where we aim to maximize the total value of items to be packed in a knapsack, given the knapsack's weight capacity and a set of items with their respective weights and values.
This project is a booking system for football playgrounds. It serves the players and playground owners as well as an administrator who oversees the overall operations of the system. The project is developed as part of a software engineering course.
This repository contains test scripts written in Robot Framework with Selenium Library for automating and conducting comprehensive testing scenarios on the IMDb website, ensuring the functionality, performance, and user experience of the website are thoroughly validated.
It's a comprehensive testing project aimed at thoroughly testing a Todo application. It includes testing for both the backend and frontend components. The project is built using a Spring Boot backend server and an HTML/JavaScript frontend.
This program implements the K-means clustering algorithm using OpenMP APIs. The K-means algorithm is a popular method of vector quantization that aims to partition n observations into k clusters. Each observation is assigned to the cluster with the nearest mean, serving as a prototype of the cluster.
My Home Page
This repository contains a Python implementation of a K-Nearest Neighbors (KNN) classifier from scratch. It's applied to the "BankNote_Authentication" dataset, which consists of four features (variance, skew, curtosis, and entropy) and a class attribute indicating whether a banknote is real or forged.
This project is a Library Management System API built using Spring Boot. It allows librarians to manage books, patrons, and borrowing records efficiently.
This program implements linear regression from scratch using the gradient descent algorithm in Python. It predicts car prices based on selected features and uses a dataset of cars with their respective prices.