SDSC/open-pulse-hackathon-data-analysis huggingface dataset:
Repository: EPFL-Fresk/fresk-backend
Primary language: Scala

## sbt project compiled with Scala 3

### Usage

This is a normal sbt project. You can compile code with `sbt compile`, run it with `sbt run`, and `sbt console` will start a Scala 3 REPL.

For more information on the sbt-dotty plugin, see the
[scala3-example-project](https://github.com/scala/scala3-example-project/blob/main/README.md).
Repository: EPFL-Fresk/fresk-frontend
Description: Flutter front-end for Fresk
Primary language: C++

# Fresk

Flutter frontend for the Fresk project !

## Project strucure
```
lib/
├── main.dart                # Entry point of the app
├── models/                  # Data models
├── widgets/                 # Custom widgets
├── screens/                 # App screens
│   └── home_screen.dart     # Screen with the graph
├── utils/                   # Utilities or helpers
└── assets/                  # Static assets like images and logos
```
Repository: EishaMazhar/CV-Recommender
Primary language: JavaScript

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `npm start`

Runs the app in the development mode.<br />
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.<br />
You will also see any lint errors in the console.

### `npm test`

Launches the test runner in the interactive watch mode.<br />
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `npm run build`

Builds the app for production to the `build` folder.<br />
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.<br />
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `npm run eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting

### Analyzing the Bundle Size

This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

### Making a Progressive Web App

This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

### Advanced Configuration

This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

### Deployment

This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

### `npm run build` fails to minify

This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
Repository: EishaMazhar/CompilerConstruction-A1
Primary language: Java

# Code Generator for C Functions:

## What's code generation?

In computing, code generation is the process by which a compiler's code generator converts some intermediate representation of source code into a form that can be readily executed by a machine. Sophisticated compilers typically perform multiple passes over various intermediate forms.

## About the project

In this project, tail end recursive program is generated in C from a JSON object.

Input Directory for JSON: `input_function/`

Output Directory for C code: `output_code/`

`Build and Run Class CodeGeneratorDriver.`
Repository: EishaMazhar/DL-project
Primary language: Jupyter Notebook

# Glassdoor-Salary-Prediction

A salary predictor is created using the job listings from an employment website, in this case, Glassdoor.com. A data mining technique is used to generate a model which will scrape the number of jobs from the employment website, clean it on the basis of a number of factors including the rival companies, revenue, and skill required thereby predicting the salary to be expected when applying for a job. Techniques like linear regression, lasso regression, random forest regressors are optimized using GridsearchCV to reach the best model.  Another variation of modeling is applying the NN, RNN, and GRU on JD to predict the salary. The model can be further extended to build a fast API thus can be deployed on the internet for public usage.
Repository: EishaMazhar/Drive-H-er
Primary language: Python
Topics: flutter, python3, fastapi, adobexd, hacktoberfest2021, hacktoberfest

# Drive-H-er


The form that we used for collecting user requirements/needs : [click here](https://forms.gle/BjHC9DNdwmHXLZkA7)

## Prototype that is to be implemented in Flutter:

### [Click here to see Adobe XD prototype](https://xd.adobe.com/view/d7b0ec02-036d-4871-89dc-50d3e0386a23-82e3/)

## Tech Stack

- python
- fast-api
- adobexd
- figma
- flutter
Repository: EishaMazhar/EishaMazhar
Description: Profile readme

### Hi there 👋

<!--
**EishaMazhar/EishaMazhar** is a ✨ _special_ ✨ repository because its `README.md` (this file) appears on your GitHub profile.

Here are some ideas to get you started:

- 🔭 I’m currently working on ...
- 🌱 I’m currently learning ...
- 👯 I’m looking to collaborate on ...
- 🤔 I’m looking for help with ...
- 💬 Ask me about ...
- 📫 How to reach me: ...
- 😄 Pronouns: ...
- ⚡ Fun fact: ...
-->
<img src="https://github-readme-stats.vercel.app/api?username=EishaMazhar&&show_icons=true&title_color=38E0FF&icon_color=bb2acf&text_color=FFFFFF&bg_color=003C47">
Repository: EishaMazhar/Glassdoor-Salary-Predictor-ML-DL-models-
Primary language: Jupyter Notebook

# Glassdoor-Salary-Prediction

Data Science Project - Following the whole data science pipeline from webscraping to documentation

## Resources

https://towardsdatascience.com/selenium-tutorial-scraping-glassdoor-com-in-10-minutes-3d0915c6d905

## Steps and Methodology
1. Data Collection through web scraping

Through the selenium powered web-scraper, around 10000 job postings(against 14 different job titles) were being scraped from glassdoor.com. The data collected from the glassdoor included the following data points:

   - Job Title
   - Company Name
   - Salary Estimate
   - Job Description
   - Rating
   - Company Size
   - Company Founded Date
   - Type of Ownership
   - Industry
   - Sector
   - Revenue

Size of valid scraped values: 7984

1. Data Cleaning
   - Removing Duplicates
   - Salary Parsing
   - Company name - get text only
   - Age of Company
   - JD parsing
   -
Repository: EishaMazhar/HTML-CSS-and-JS-for-Web-Dev-coursera
Primary language: HTML

## Welcome to GitHub Pages

You can use the [editor on GitHub](https://github.com/EishaMazhar/HTML-CSS-and-JS-for-Web-Dev-coursera/edit/master/README.md) to maintain and preview the content for your website in Markdown files.

Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files.

### Markdown

Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for

```markdown
Syntax highlighted code block

# Eisha's Site
## Header 2
### Header 3

- Bulleted
- List

1. Numbered
2. List

**Bold** and _Italic_ and `Code` text

[Link](url) and ![Image](src)
```

For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/).

### Jekyll Themes

Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/EishaMazhar/HTML-CSS-and-JS-for-Web-Dev-coursera/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file.

### Support or Contact

Having trouble with Pages? Check out our [documentation](https://help.github.com/categories/github-pages-basics/) or [contact support](https://github.com/contact) and we’ll help you sort it out.
Repository: EishaMazhar/Hackathon-Ontology
Description: This project contains an ontology for hackathon ecosystem, relevant files, and sample sparql queries to run on that ontology
Primary language: Python

# Hackathon-Ontology

This project includes an ontology for the hackathon ecosystem, relevant files, and sample SPARQL queries to execute against that ontology. 
I created this ontology as part of my Semantic Web Technologies final Project.

## Features

- A domain ontology modeling hackathons, participants, projects, mentors, sponsors, prizes, and events.
- Sample instance data to illustrate how to populate the ontology.
- A set of SPARQL queries demonstrating common queries over the hackathon data.
- Python scripts to load the ontology and execute queries locally using RDF libraries.

## Getting started

Prerequisites

- Python 3.8+
- pip
- (Optional) Apache Jena Fuseki if you want a SPARQL server

Install basic Python requirements (example):

```bash
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install rdflib rdflib-jsonld
```

If you prefer to use a SPARQL server, download and run Apache Jena Fuseki: https://jena.apache.org/download/index.cgi

## Loading the ontology locally (rdflib)

Example Python snippet to load a Turtle file and run a SPARQL query using rdflib:

```python
from rdflib import Graph

g = Graph()
# replace with the path to your ontology/instance file
g.parse("ontology/hackathon.ttl", format="turtle")

q = '''
PREFIX ex: <http://example.org/hackathon#>
SELECT ?hackathon ?name
WHERE {
  ?hackathon a ex:Hackathon ;
             ex:name ?name .
}
'''

for row in g.query(q):
    print(row)
```

## Running SPARQL queries with Fuseki

1. Start Fuseki server and create a dataset (e.g., "hackathon").
2. Upload the ontology and data (Turtle/TTL files) to the dataset.
3. Use the Fuseki web console or a curl request to run queries.

Example curl request to run a SELECT query:

```bash
curl -X POST --data-urlencode "query@samples/queries/list-hackathons.sparql" \
  http://localhost:3030/hackathon/sparql
```

## Example SPARQL query to Get Started

Below are a first example queries you can adapt. Put these in samples/queries/*.sparql for convenience.

- List all Hackathons
```sparql
PREFIX hack: <http://example.org/hackathon#>

SELECT ?hackathon
WHERE {
  ?hackathon a hack:Hackathon .
}
ORDER BY ?hackathon
```

## Contributing

Contributions are welcome. Please:

1. Open an issue describing the change or feature.
2. Create a branch for your change.
3. Submit a pull request with tests or example usage where appropriate.

## License

No License at the moment

## Contact

If you have questions or suggestions, open an issue or contact me at eisha.mazhar19@gmail.com.


----
Repository: EishaMazhar/IR_Assignment2-VSM-tfidf
Primary language: Jupyter Notebook

# To Run the code

1. To run and open GUI CODE, the COMMANDS that you need to run in ANACONDA PROMPT are :
   code TFIDF_GUIcode.py (to open code in VScode)
   and
   python TFIDF_GUIcode.py (to run the code)

2. You can run code file with '.ipynb' extension easily in the jupyter notebook (it doesn't have GUI)

---

## Data Set

Data Set is a collection of Trump Speeches (File name: Trump Speeches 56 files) for implementing inverted index and positional index. A single file contains a single speech from All of Trump's Speeches from June 2015 to November 9, 2016.

Total unstructured text Documents: 52

## Provided Files

Files Provided:

1. TrumpSpeeches
2. Stop-words list as a single file
3. Queries in a single file.

# Results

## GUI - Fetched Documents and Query Score Based on Query and cut-off value

<img src="GUI_output.png" />

## Result Visualization

<img src="TFIDF_ScoreResults.png" />
Repository: EishaMazhar/JS-beginner-tasks
Primary language: JavaScript
Topics: javascript, js, roman-numerals, arrayofobjects

# JS-beginner-tasks
Find the second biggest element in the array of numbers. 

------
Transform array of numbers to array of functions that will alert that digits
 
------
sort array of objects wrt any of its properties

------
Write a function which will return you first two times 1, then 2, then 3, then 5 and so on (Fibonacci numbers). 

------ 

There are four substring missions that were born all in one day and you shouldn’t be needed more than one day to solve them. All of those mission can be simply solved by brute force, but is it always the best way to go? (you might not have access to all of those missions yet, but they are going to be available with more opened islands on the map).

This mission is the first one of the series. Here you should find the length of the longest substring that consists of the same letter. For example, line "aaabbcaaaa" contains four substrings with the same letters "aaa", "bb","c" and "aaaa". The last substring is the longest one which makes it an answer.

Input: String.

Output: Int.

Example 
longRepeat('sdsffffse') == 4
longRepeat('ddvvrwwwrggg') == 3

----------

Roman numerals come from the ancient Roman numbering system. They are based on specific letters of the alphabet which are combined to signify the sum (or, in some cases, the difference) of their values. The first ten Roman numerals are:

I, II, III, IV, V, VI, VII, VIII, IX, and X.

The Roman numeral system is decimal based but not directly positional and does not include a zero. Roman numerals are based on combinations of these seven symbols:

Numeral	Value
I	1 (unus)
V	5 (quinque)
X	10 (decem)
L	50 (quinquaginta)
C	100 (centum)
D	500 (quingenti)
M	1,000 (mille)

For this task, you should return a roman numeral using the specified integer value ranging from 1 to 3999.

Input: A number as an integer.

Output: The Roman numeral as a string.

Example:
romanNumerals(6) == 'VI'
romanNumerals(76) == 'LXXVI'
romanNumerals(13) == 'XIII'
romanNumerals(44) == 'XLIV'
romanNumerals(3999) == 'MMMCMXCIX'
Repository: EishaMazhar/PascalLexicalAnalyzer
Description: Pascal Lexical Analyzer - Compiler Construction - CS402 - Assignment # 2 - FAST NUCES Karachi
Primary language: Jupyter Notebook

# Pascal Lexical Analyzer 

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honour of the French mathematician, philosopher and physicist Blaise Pascal.

## Lexical Analysis
Lexical Analysis is the first phase of the compiler also known as a scanner. It converts the High level input program into a sequence of Tokens.

To Generate Tokens and symbol table from file in inputs folder:

    `python main.py ./inputs/source_code.pas`

Two Output files will be generated : 

    `outputs/pascal_tokens.csv`
    `outputs/symbol_table.csv`
Repository: EishaMazhar/Product-Title-Classification
Primary language: Jupyter Notebook

## Problem:
When an e-commerce site is scaled and they upload 1M or more products, manual labeling of categories becomes difficult but crucial.

## Methodology:
I have performed 3-tier product title classification on Lazada's dataset using LSTMs in this project.

![](https://github.com/EishaMazhar/Product-Title-Classification/blob/master/Screenshot%202024-02-08%20at%209.54.29%20PM.png)

## Metrics:
Metrics Used for comparison:

- Accuracy Score
- Cohen's kappa coefficient
    - Cohen's kappa coefficient is a statistic that is used to measure inter-rater reliability for qualitative items.

## Data Source:
Source: Mined from Lazada (E-commerce website), data is also available at https://arxiv.org/abs/1804.01000
Train Data Size: 11, 446
Test Data Size: 5, 528

## Reference Paper

https://github.com/EishaMazhar/Product-Title-Classification/blob/master/Product%20Title%20vs%20text%20classifictaion.pdf
Repository: EishaMazhar/Public-key-encryption-decryption
Description: Performing encryption and decryption using public private keys while storing keys in central location like slate database
Primary language: Python

# Public-key-encryption-decryption

Performing encryption and decryption using public private keys while storing keys in central location like slate database
ISS Activity
17K-3730

## Steps for running:

1. run the **config_parser.py** --- you can set your slate id pw here (you'll also need to add a message file in your slate workspace).

2. run the **get_data_from_slate.py** to get the message from slate.

3. finally, run the **public_key_encryption_decrytion.py** in order to perform public key encryption decryption.
Repository: EishaMazhar/Safe-Pooling
Primary language: Dart

# Safe Pooling App

===================

## Transport for Women by Women through rideshare.

Gone are the days of reliance on men for commuting! Females will be driving for females, not as an obligation but to empower each other’s role as students, professional or just a woman. Our idea calls for uniting unorganized female carpooling communities on social media platforms and to set them formally for easy usage.

Recent sexual harassment allegations — and past incidents of sexual assault by drivers — have presented challenges for companies like Careem,Uber. Meanwhile, this can be launched with hopes of opening up the industry to more women where they can travel on their own with females, alongside earning a few bucks.

<div>
<img src="Static\screens.png"  />
</div>
Repository: EishaMazhar/Safe-pooling-2020
Primary language: Java

Safe Pooling App
===================

## Transport for Women by Women through rideshare.

Gone are the days of reliance on men for commuting! Females will be driving for females, not as an obligation but to empower each other’s role as students, professional or just a woman. Our idea calls for uniting unorganized female carpooling communities on social media platforms and to set them formally for easy usage.

Recent sexual harassment allegations — and past incidents of sexual assault by drivers — have presented challenges for companies like Careem,Uber. Meanwhile, this can be launched with hopes of opening up the industry to more women where they can travel on their own with females, alongside earning a few bucks.


<div><img src="https://github.com/EishaMazhar/Safe-pooling-2020/blob/main/Hackday%20Resources/mockup1.jpeg" width="450" />
  <img src="https://github.com/EishaMazhar/Safe-pooling-2020/blob/main/Hackday%20Resources/mockup2.jpeg" width="450" />
</div>
 <div>
  <img src="https://github.com/EishaMazhar/Safe-pooling-2020/blob/main/Hackday%20Resources/mockup3.jpeg" width="450" />
  <img src="https://github.com/EishaMazhar/Safe-pooling-2020/blob/main/Hackday%20Resources/mockup4.jpeg" width="450" />
</div>
Repository: EishaMazhar/Software-Engineering-BackendCode-with-ProjectProposal-and-Report-CV-Recommender
Primary language: Python

CV-Recommender

Members: 17k-3730_Eisha, 17k-3658_Maham

SRS, SDS, Test Cases and Risk Analysis are in K17-3658-K17-3730-SE-Project-Final_Report

Front-end Repository Link: https://github.com/EishaMazhar/CV-Recommender
Repository: EishaMazhar/Text-classification-with-Clustering-
Primary language: Jupyter Notebook

# Text Document Classification & Clustering(code of KNN & clustring algorithm from scratch) 

Note: before running the code, kindly check the path 'bbcsports' folder in the directory.

## DataSet: 

### Total Documents: 737, Terms: 4613

The data contain BBC-Sports documents related to 5 different sports:
* Athletics
* Cricket
* Football
* Rugby
* Tennis

## Algorithms Implemented

### Assignment Objective
This assignment focuses on the tasks of classification and clustering.
#### Classification
First task is related to document classification. We have discussed three methods for the task of
text/document classification. These are Rocchio’s, Naïve Bayesian and KNN. In this assignment
you need to work on KNN using VSM model to hold documents and Euclidian distance measure
to estimate closeness of the instances in neighborhood. There is no training required for the KNN
algorithm, all you need to divide your data into suitable splits of train and test. Using the training
data, you need to check the labels of test instances using k=3. From the 5 classes in the dataset you
need to create you train and test sets from 737 instances. Using your idea of a good split set you
are free to create the train and test set. The evaluation of classification will be performed on
Accuracy of classification for the test split. For a detail description of KNN read the chapter 14 of
the textbook.
#### Clustering
For the task of clustering you need to implement a K-means clustering algorithm, assuming all
documents are represented by VSM of suitable feature space. There are 4613 features in the
dataset. The feature selection is what you need to perform as per your understanding. The
evaluation of clustering will be performed by measure purity of the dataset. For a detail description
of K-means read the chapter 16 of the textbook. 

## Output:

### Clustering
<img src='https://github.com/EishaMazhar/Text-classification-with-Clustering-/blob/master/clustering%20output.PNG'/>
Repository: EishaMazhar/TodoApp
Primary language: JavaScript

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `npm start`

Runs the app in the development mode.<br>
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.<br>
You will also see any lint errors in the console.

### `npm test`

Launches the test runner in the interactive watch mode.<br>
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `npm run build`

Builds the app for production to the `build` folder.<br>
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.<br>
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `npm run eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting

### Analyzing the Bundle Size

This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

### Making a Progressive Web App

This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

### Advanced Configuration

This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

### Deployment

This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

### `npm run build` fails to minify

This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
Repository: EishaMazhar/cheat-sheets
Primary language: PHP

# Cheat Sheets

**UPDATED REPO IS AT https://github.com/okeeffed/developer-notes**

This repo is more than deprecated. I've hardly pushed any notes here for the last year.

Since I've come back to surprising interest, there is a separate repo that I have just made public that has a bunch more notes on top of these and other concepts I've had to deal with in more recent years (think Deep Learning, Kubernetes etc).

That repo also publishes notes on a CD pipeline to here https://docs.dennisokeeffe.com/

Follow me on Twitter for rancid dev chat and good times https://twitter.com/d_okeeffe
Repository: EishaMazhar/todo-app-frontend
Primary language: Vue

# todo-app-frontend

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

<img src="landing_page.png">
Repository: FilipBajraktari/mx-master-4-webhid
Primary language: HTML

# HapticMorse: MX Master 4 WebHID Control

HapticMorse is a lightweight, web-based application designed to interface with the Logitech MX Master 4 mouse using the WebHID API. This project demonstrates the capability to control the device's haptic feedback engine without external dependencies, utilizing pure JavaScript.

The application serves as both a proof-of-concept driver and a functional demonstration of haptic communication through three distinct modules: a text-to-haptic translator, a screen reader, and a haptic input chat interface.

## Features

### Core Functionality

  - **Zero Dependencies**: Built entirely with vanilla JavaScript.
  - **WebHID Integration**: Direct browser-to-device communication.
  - **Custom Driver**: Includes a reusable `LogitechHapticDriver` class for integration into other projects.

### Application Modules

1.  **Text Translator**: Converts user input into standard Morse code vibrations played through the mouse's haptic motor.
2.  **Highlight Reader**: A background service that detects text selection on the page. When text is highlighted, the application translates the selection into haptic feedback after a one-second delay.
3.  **Haptic AI Chatbot**: A bidirectional interface allowing users to communicate with an AI.
      - **Input**: Users input text via mouse clicks (Left Click = Dot/Dash, Middle Click = Confirm Letter/Space).
      - **Output**: AI responses are translated into haptic vibrations.

## Prerequisites

  - **Hardware**: Logitech MX Master 4 (connected via Bluetooth or USB Receiver).
  - **Software**: A Chromium-based browser (Chrome, Edge, Opera) with WebHID support enabled.

## Installation and Usage

Due to the usage of ES Modules, this project requires a local web server to function correctly. It cannot be run directly from the file system.

### Option 1: Python

Run the following command in the project root:

```bash
python3 -m http.server 8000
```

Navigate to `http://localhost:8000/app/` in your browser.

### Option 2: Node.js

```bash
npx http-server .
```

## Developer API Reference

The core logic is encapsulated within `app/logitech-haptic-driver.js`.

### Initialization

```javascript
import { LogitechHapticDriver } from './app/logitech-haptic-driver.js';

const driver = new LogitechHapticDriver();
```

## Configuration

The driver allows for configuration overrides during initialization if necessary:

```javascript
const driver = new LogitechHapticDriver({
    vendorId: 0x046d,
    productId: 0xb042
});
```

## Disclaimer

This software is an experimental project and is not officially supported by or affiliated with Logitech. Use at your own discretion.
Repository: Gabriel29062001/hackathon
Description: BMS challenge
Primary language: JavaScript

# Lauzhack 2023

Here you can find our codebase for the EPFL hackaton Lauzhack 2023.

It includes:
- A web app developed on Flutter
- A customized python project (forked from [ecg_ptbxl_benchmarking repository](https://github.com/helme/ecg_ptbxl_benchmarking))
- An API developed in Django
Repository: Gustavove/lauzhack2024
Primary language: JavaScript

# Collaborative Classroom Project - LauzHack Hackathon

## Overview

The **Collaborative Classroom Project** is an innovative solution for real-time, interactive learning in a virtual classroom environment. Built for the **MetaQuest 3S** and using **MX Ink**, this project enables teachers to create, share, and collaborate with students as they teach, all within a fully immersive experience. Students can view the teacher's creations live on their own browser clients, facilitating an engaging and collaborative learning process.

## Features

- **Real-time Collaboration:** Teachers can create content and share it live with students, all while interacting with the content through a shared virtual environment.
- **Immersive Experience:** Using **WebXR**, teachers can draw and interact with content from their MetaQuest 3S in real time, bringing a new dimension to virtual learning.
- **Student Client:** Students use a simple web browser to view the teacher’s content, making it easy to access without special hardware.
- **WebSocket Communication:** WebSockets enable seamless communication between the teacher's client (MetaQuest 3S) and student clients, ensuring live updates as the teacher draws and creates.
- **ReactJS & Three.js for 3D Visualization:** The student-side interface is built using **ReactJS** and **Three.js** to provide an interactive and engaging experience.

## Technologies Used

- **ReactJS:** Frontend framework used for building the student-facing website client.
- **Three.js:** JavaScript library for rendering 3D graphics within the browser, creating an immersive experience for students.
- **WebXR:** Used for the teacher’s point-of-view, allowing them to draw and interact within the virtual environment via the MetaQuest 3S.
- **WebSockets:** Facilitates real-time communication between the teacher and students, allowing live updates to be pushed from the teacher’s drawing session to the student clients.
- **Node.js:** Backend server that handles WebSocket connections and manages the flow of data.
- **Git:** Version control system used to manage code changes and collaboration during development.

## Installation

### Prerequisites

Before you can get started, you need to have the following tools installed:

- **Node.js** (v14 or later)
- **npm** (Node Package Manager)
- **Git**