├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── greet-contributors.yml │ └── python-publish.yml ├── Applications ├── Alarm │ ├── alarmtiming.py │ └── audio.wav ├── Audio Visualization Tool │ ├── README.md │ └── source-code.py ├── Birthday Reminder │ ├── README.md │ └── source-code.py ├── CSPRNG │ ├── CSPRNG_1 │ │ ├── FreshProject.py │ │ └── GETdata.py │ ├── CSPRNG_2 │ │ ├── FreshProject1.py │ │ └── recordAudio.py │ ├── CSPRNG_3 │ │ └── FreshProject2.py │ ├── CSPRNG_4 │ │ └── FreshProject3.py │ └── README.md ├── Calendar │ └── calendar.py ├── Extract mp3 from mp4 │ ├── README.md │ ├── source-code.py │ └── source-code.pyw ├── Link Shortener and Extractor │ ├── README.md │ └── source-code.py ├── Merge Multiple PDF │ ├── README.md │ └── source-code.py ├── Noscreensaver │ ├── Readme.md │ └── noscreensaver.py ├── Object Detection │ └── ObjectDetection.py.txt ├── Paint │ └── paint.py ├── Password Protect PDF │ ├── README.md │ └── source-code.py ├── README.md ├── Random Password Generator │ ├── README.md │ ├── random pass.py │ └── source-code.py ├── ScreenShot │ └── screenshot.py ├── Search Engine │ └── wikipediasearch.py ├── Terminal Tricks │ ├── README.md │ ├── source-code-color.py │ └── source-code-funky.py ├── Voice Recorder │ ├── README.md │ └── source-code.py ├── Windows Notification │ ├── README.md │ ├── jokes-desktop-notifier.py │ ├── source-code-custom.py │ └── source-code-timer.py ├── audiobook │ ├── audiobook.py │ └── book.txt └── pong_game │ ├── __pycache__ │ ├── ball.cpython-310.pyc │ ├── paddle.cpython-310.pyc │ └── scoreboard.cpython-310.pyc │ ├── ball.py │ ├── main.py │ ├── paddle.py │ ├── scoreboard.py │ └── tempCodeRunnerFile.py ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md └── passpdf.py /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: Birthday-Reminder, Extract-mp3-from-mp4, Link-Shortener, Password-Protect-PDF, 6 | Random-Password-Generator, Terminal-Tricks, Voice-Recorder, Voice-Visualization-Tool, 7 | Windows-Notification, bug, documentation, good first issue, help wanted, question 8 | assignees: xiaowuc2 9 | 10 | --- 11 | 12 | **Describe the bug** 13 | If the program does produce any runtime error or lack some special feature then create an issue! 14 | 15 | 16 | **Expected behavior** 17 | Run and produce the output as it should be(described in readme.md) 18 | 19 | **Screenshots** 20 | 21 | 22 | **Desktop (please complete the following information):** 23 | - OS: Windows 24 | - Browser: chrome, safari, brave, edge 25 | 26 | **Additional context** 27 | Python must be installed in the machine. 28 | 29 | **ThankYou** 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: Birthday-Reminder, Extract-mp3-from-mp4, Link-Shortener, Password-Protect-PDF, 6 | Random-Password-Generator, Terminal-Tricks, Voice-Recorder, Voice-Visualization-Tool, 7 | Windows-Notification, bug, documentation, good first issue, help wanted, question 8 | assignees: CodeSadhu, xiaowuc2 9 | 10 | --- 11 | 12 | **Is your feature request related to a problem? Please describe.** 13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 14 | 15 | **Describe the solution you'd like** 16 | A clear and concise description of what you want to happen. 17 | 18 | **Describe alternatives you've considered** 19 | A clear and concise description of any alternative solutions or features you've considered. 20 | 21 | **Additional context** 22 | Add any other context or screenshots about the feature request here. 23 | -------------------------------------------------------------------------------- /.github/workflows/greet-contributors.yml: -------------------------------------------------------------------------------- 1 | name: "GreetContributor" 2 | on: 3 | pull_request: 4 | types: [opened,synchronize] 5 | 6 | jobs: 7 | GreetCommitter: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: "Greet contributor" 11 | uses: ibakshay/greet-contributors-action@v3 12 | env: 13 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 14 | -------------------------------------------------------------------------------- /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflows will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | name: Upload Python Package 5 | 6 | on: 7 | release: 8 | types: [created] 9 | 10 | jobs: 11 | deploy: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Set up Python 18 | uses: actions/setup-python@v2 19 | with: 20 | python-version: '3.x' 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install setuptools wheel twine 25 | - name: Build and publish 26 | env: 27 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 28 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 29 | run: | 30 | python setup.py sdist bdist_wheel 31 | twine upload dist/* 32 | -------------------------------------------------------------------------------- /Applications/Alarm/alarmtiming.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | from playsound import playsound 3 | import winsound 4 | 5 | 6 | #input the time in HH:MM where HH is hour and MM is minutes in 12 hour format 7 | 8 | 9 | 10 | alarm_date=input('Enter the date on which you want to set the alarm: ').strip() 11 | alarm_time=''.join(input("Enter the time of alarm to be set in HH:MM,AM/PM format: ").split()) 12 | music_or_beep = input("Enter m for a music or b for beep sound: ") 13 | if music_or_beep=='b': 14 | dur=int(input("duration in seconds: "))*1000 #winsound takes in milliseconds 15 | freq = int(input("frequency of the noise: ")) #optimal- 500 16 | alarm_hour=alarm_time[0:2] 17 | alarm_minute=alarm_time[3:5] 18 | alarm_period=alarm_time[6:8].upper() 19 | 20 | 21 | 22 | print('setting alarm.....') 23 | 24 | 25 | 26 | while True: 27 | current_time=datetime.now() 28 | current_hour=current_time.strftime('%I') 29 | current_minute=current_time.strftime('%M') 30 | current_period=current_time.strftime('%p') 31 | current_date=current_time.strftime('%d') 32 | if current_date==alarm_date and current_period==alarm_period and current_hour==alarm_hour and current_minute==alarm_minute: 33 | print('*'*10) 34 | print('| '+'Wake up!'+' |') 35 | print('*'*10) 36 | if music_or_beep=='m': 37 | playsound('audio.wav') 38 | else: 39 | winsound.Beep(freq,dur) 40 | break -------------------------------------------------------------------------------- /Applications/Alarm/audio.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fireman03151/python_project/00ce23754a5fca8aac5fb720c5df5ab124aa913a/Applications/Alarm/audio.wav -------------------------------------------------------------------------------- /Applications/Audio Visualization Tool/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Audio-Visualization-Tool

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can create a real-time audio visualization tool using `Python`. In this project we will use a GUI(Graphical User Interface) tool named `tkinter` to create a window to plot grapth / audio visualizer plots. 17 | ``` 18 | What the program does? 19 | 20 | - It uses your default mic to take voice as input 21 | - Creates a window and show plot for measuring frame rate 22 | - Takes Binary data > convert to integers > make up np array > offset it by 127 and 128 23 | - Finlly update the girure canvas and show the final graph 24 | ``` 25 | ### Requirements 26 | 27 | * Python 28 | * Python Libraries: `pyaudio` `os` `struct` `numpy` `matplotlib.pyplot` `time` `tkinter` 29 | 30 | ### Contributing 31 | 32 | Any kind of contributions to `qxresearch-event-1/audio-visualization-tool` are welcome. While creating an issue(for this project) use `Audio-Visualization-Tool` Label. 33 | 34 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 35 | 2. Commit your Changes 36 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 37 | 38 | ### Video Tutorial 39 | 40 | * **YouTube :** [Audio Visualization Tool](https://youtu.be/0_wde7Db48E) 41 | 42 | ### Become Official Member @qxresearch 43 | 44 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 45 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 46 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 47 | 48 | 49 |

50 | 51 |

52 |
53 |
54 | View Demo 55 | · 56 | Report Bug 57 | · 58 | Request Feature 59 |
60 |
61 |

62 |

63 | -------------------------------------------------------------------------------- /Applications/Audio Visualization Tool/source-code.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | Notebook for streaming data from a microphone in realtime 4 | 5 | audio is captured using pyaudio 6 | then converted from binary data to ints using struct 7 | then displayed using matplotlib 8 | 9 | if you don't have pyaudio, then run 10 | 11 | >>> pip install pyaudio 12 | 13 | note: with 2048 samples per chunk, I'm getting 20FPS 14 | """ 15 | 16 | import pyaudio 17 | import os 18 | import struct 19 | import numpy as np 20 | import matplotlib.pyplot as plt 21 | import time 22 | from tkinter import TclError 23 | 24 | # use this backend to display in separate Tk window 25 | 56 26 | 27 | # constants 28 | CHUNK = 1024 * 2 # samples per frame 29 | FORMAT = pyaudio.paInt16 # audio format (bytes per sample?) 30 | CHANNELS = 1 # single channel for microphone 31 | RATE = 44100 # samples per second 32 | 33 | # create matplotlib figure and axes 34 | fig, ax = plt.subplots(1, figsize=(15, 7)) 35 | 36 | # pyaudio class instance 37 | p = pyaudio.PyAudio() 38 | 39 | # get list of availble inputs 40 | info = p.get_host_api_info_by_index(0) 41 | numdevices = info.get('deviceCount') 42 | for i in range(0, numdevices): 43 | if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0: 44 | print ("Input Device id ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name')) 45 | 46 | # select input 47 | audio_input = input("\n\nSelect input by Device id: ") 48 | 49 | # stream object to get data from microphone 50 | stream = p.open( 51 | input_device_index=int(audio_input), 52 | format=FORMAT, 53 | channels=CHANNELS, 54 | rate=RATE, 55 | input=True, 56 | output=True, 57 | frames_per_buffer=CHUNK 58 | ) 59 | 60 | # variable for plotting 61 | x = np.arange(0, 2 * CHUNK, 2) 62 | 63 | # create a line object with random data 64 | line, = ax.plot(x, np.random.rand(CHUNK), '-', lw=2) 65 | 66 | # basic formatting for the axes 67 | ax.set_title('AUDIO WAVEFORM') 68 | ax.set_xlabel('samples') 69 | ax.set_ylabel('volume') 70 | ax.set_ylim(0, 255) 71 | ax.set_xlim(0, 2 * CHUNK) 72 | plt.setp(ax, xticks=[0, CHUNK, 2 * CHUNK], yticks=[0, 128, 255]) 73 | 74 | # show the plot 75 | plt.show(block=False) 76 | 77 | print('stream started') 78 | 79 | # for measuring frame rate 80 | frame_count = 0 81 | start_time = time.time() 82 | 83 | while True: 84 | 85 | # binary data 86 | data = stream.read(CHUNK) 87 | 88 | # convert data to integers, make np array, then offset it by 127 89 | data_int = struct.unpack(str(2 * CHUNK) + 'B', data) 90 | 91 | # create np array and offset by 128 92 | data_np = np.array(data_int, dtype='b')[::2] + 128 93 | 94 | line.set_ydata(data_np) 95 | 96 | # update figure canvas 97 | try: 98 | fig.canvas.draw() 99 | fig.canvas.flush_events() 100 | frame_count += 1 101 | 102 | except TclError: 103 | 104 | # calculate average frame rate 105 | frame_rate = frame_count / (time.time() - start_time) 106 | 107 | print('stream stopped') 108 | print('average frame rate = {:.0f} FPS'.format(frame_rate)) 109 | break 110 | -------------------------------------------------------------------------------- /Applications/Birthday Reminder/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Birthday Reminder

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can create a normal birthday reminder program using `python`. You need to set the date and time of the birthday and reminder and you'll get an reminder of your or your friend's birthday notification. But I feel that this program is useless because you've to keep this code runnig... we can create a notification to make this code cooler and ready to public use. Well, develop and add features to this code mr. `Developer` `Researcher` 17 | ``` 18 | What the program does? 19 | 20 | - User will select birthday 21 | - User will select time of the reminder 22 | - In that day | time program will wish her/him a happy birthday ❤️ 23 | ``` 24 | ### Requirements 25 | 26 | * Python 27 | * Python Libraries: `datetime` 28 | 29 | ### Contributing 30 | 31 | Any kind of contributions to `qxresearch-event-1/birthday-reminder` are welcome. While creating an issue(for this project) use `Birthday-Reminder` Label. 32 | 33 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 34 | 2. Commit your Changes 35 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 36 | 37 | ### Video Tutorial 38 | 39 | * **YouTube :** [Birthday Reminder](https://youtu.be/qHloV2ZCo4s) 40 | 41 | ### Become Official Member @qxresearch 42 | 43 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 44 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 45 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 46 | 47 | 48 |

49 | 50 |

51 |
52 |
53 | View Demo 54 | · 55 | Report Bug 56 | · 57 | Request Feature 58 |
59 |
60 |

61 |

62 | -------------------------------------------------------------------------------- /Applications/Birthday Reminder/source-code.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | current_date = datetime.date.today().strftime('%Y-%m-%d') 3 | current_date_lst = current_date.split('-') 4 | bday_log = [ 5 | ('Ayushi', ('1999', '10', '19')), 6 | ('Yash', ('1999', '04', '21')), 7 | ] 8 | add = input('To add birthday type y:').strip().lower() 9 | 10 | if add[:1] == 'y': 11 | new = input('Add birthday in format yyyy-mm-dd:') 12 | # print(new_lst) 13 | name = input('Whose bday?') 14 | date = new.split( '-' ) 15 | 16 | 17 | bday_log.append((name, tuple(date))) 18 | 19 | for birthday in bday_log: 20 | # current_dat[1] == birthday[1][1] this will check if current month is same as birth month and current date is same as 21 | # birth date as per preadded log 22 | 23 | 24 | if current_date_lst[1] == birthday[1][1] and current_date_lst[2] == birthday[1][2]: 25 | age = int(current_date_lst[0]) - int(birthday[1][0]) 26 | ordinal_suffix = {1: 'st', 2: 'nd', 3: 'rd', 11: 'th', 12: 'th', 13: 'th'}.get(age % 10 if not 10 < age <= 13 else age % 14, 'th') 27 | print(f" It's {birthday[0]}'s {age}{ordinal_suffix} Birthday") 28 | 29 | -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_1/FreshProject.py: -------------------------------------------------------------------------------- 1 | import random 2 | import time 3 | import requests 4 | 5 | api_key = '194775dc6dd9f7b8f5f0e77f1733a330' 6 | city_list = ['bangkok', 'mumbai', 'kolkata', 'tokyo', 'chennai', 'dhaka', 7 | 'jaipur', 'beijing', 'delhi', 'punjab', 'pune', 'kashmir', 'lucknow', 'dubai', 'bangalore'] 8 | 9 | city = random.choice(city_list) 10 | 11 | url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric' 12 | response = requests.get(url) 13 | 14 | if response.status_code == 200: 15 | data = response.json() 16 | # print(f'Current temperature in {city}: {data["main"]["temp"]}°C') 17 | else: 18 | print(f'Error {response.status_code}: {response.reason}') 19 | 20 | for i in data: 21 | print(f"{i} : {data[i]}") 22 | # Measure the CPU fan noise for a certain period of time 23 | 24 | def measure_noise(): 25 | noise = [] 26 | start_time = time.time() 27 | while time.time() - start_time < 5: # measure for 5 seconds 28 | noise.append(random.random()) 29 | return noise 30 | 31 | # Use the CPU fan noise to generate random numbers 32 | 33 | def generate_numbers(): 34 | noise = measure_noise() 35 | random.seed(sum(noise)) 36 | random_numbers = [] 37 | for i in range(10): # generate 10 random numbers 38 | random_numbers.append(random.random() * data["main"]["temp"] * data["wind"]["speed"]) 39 | return random_numbers 40 | 41 | # # Test the program 42 | print(generate_numbers()) 43 | print(type(data["main"]["temp"])) 44 | -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_1/GETdata.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import random 3 | api_key = '194775dc6dd9f7b8f5f0e77f1733a330' 4 | 5 | city_list = ['bangkok', 'mumbai', 'kolkata', 'tokyo', 'chennai', 'dhaka', 6 | 'jaipur', 'beijing', 'delhi', 'punjab', 'pune', 'kashmir', 'lucknow', 'dubai', 'bangalore'] 7 | 8 | city = random.choice(city_list) 9 | 10 | url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric' 11 | response = requests.get(url) 12 | 13 | if response.status_code == 200: 14 | data = response.json() 15 | print(f'Current temperature in {city}: {(data["main"]["temp"])}°C') 16 | else: 17 | print(f'Error {response.status_code}: {response.reason}') -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_2/FreshProject1.py: -------------------------------------------------------------------------------- 1 | import pyaudio 2 | import struct 3 | import random 4 | 5 | import requests 6 | api_key = '194775dc6dd9f7b8f5f0e77f1733a330' 7 | 8 | city_list = ['bangkok', 'mumbai', 'kolkata', 'tokyo', 'chennai', 'dhaka', 9 | 'jaipur', 'beijing', 'delhi', 'punjab', 'pune', 'kashmir', 'lucknow', 'dubai', 'bangalore'] 10 | 11 | city = random.choice(city_list) 12 | 13 | url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric' 14 | response = requests.get(url) 15 | 16 | if response.status_code == 200: 17 | info = response.json() 18 | # print(f'Current temperature in {city}: {data["main"]["temp"]}°C') 19 | else: 20 | print(f'Error {response.status_code}: {response.reason}') 21 | 22 | 23 | # set the chunk size and recording format 24 | chunk = 1024 25 | format = pyaudio.paInt16 26 | channels = 1 27 | rate = 44100 28 | record_seconds = 5 29 | 30 | # create a PyAudio object 31 | p = pyaudio.PyAudio() 32 | 33 | # open the microphone and start recording 34 | stream = p.open(format=format, channels=channels, rate=rate, input=True, frames_per_buffer=chunk) 35 | frames = [] 36 | for i in range(0, int(rate / chunk * record_seconds)): 37 | data = stream.read(chunk) 38 | frames.append(data) 39 | 40 | # print(frames) 41 | 42 | # stop recording and close the stream 43 | stream.stop_stream() 44 | stream.close() 45 | p.terminate() 46 | 47 | # process the recorded audio to generate random numbers 48 | random_numbers = [] 49 | for frame in frames: 50 | # unpack the audio data to get the amplitude values 51 | amplitude_values = struct.unpack(str(2 * chunk) + 'B', frame) 52 | # print(amplitude_values) 53 | # generate a random number based on the amplitude values 54 | random_number = sum(amplitude_values) % 100 55 | temp = int(info["main"]["temp"]) 56 | random_numbers.append(random_number * temp) 57 | 58 | # print the generated random numbers 59 | print(random_numbers) 60 | -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_2/recordAudio.py: -------------------------------------------------------------------------------- 1 | import pyaudio 2 | import wave 3 | 4 | # set the chunk size and recording format 5 | chunk = 1024 6 | format = pyaudio.paInt16 7 | channels = 1 8 | rate = 44100 9 | record_seconds = 5 10 | output_filename = "output.wav" 11 | 12 | # create a PyAudio object 13 | p = pyaudio.PyAudio() 14 | 15 | # open the microphone and start recording 16 | stream = p.open(format=format, channels=channels, rate=rate, input=True, frames_per_buffer=chunk) 17 | frames = [] 18 | for i in range(0, int(rate / chunk * record_seconds)): 19 | data = stream.read(chunk) 20 | frames.append(data) 21 | 22 | # stop recording and close the stream 23 | stream.stop_stream() 24 | stream.close() 25 | p.terminate() 26 | 27 | # save the recorded audio to a WAV file 28 | wf = wave.open(output_filename, 'wb') 29 | wf.setnchannels(channels) 30 | wf.setsampwidth(p.get_sample_size(format)) 31 | wf.setframerate(rate) 32 | wf.writeframes(b''.join(frames)) 33 | wf.close() 34 | -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_3/FreshProject2.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | import string 4 | 5 | # Define the length of the random string 6 | length = 10 7 | 8 | # Generate a string of random bytes 9 | random_bytes = os.urandom(length) 10 | 11 | # Convert the random bytes to a string 12 | string_list = [] 13 | for i in range(10): 14 | random_string = ''.join([random.choice(string.ascii_letters + string.digits) for n in range(length)]) 15 | string_list.append(random_string) 16 | 17 | print(string_list) 18 | -------------------------------------------------------------------------------- /Applications/CSPRNG/CSPRNG_4/FreshProject3.py: -------------------------------------------------------------------------------- 1 | import secrets 2 | 3 | # rand_bytes = secrets.token_bytes(4) 4 | # print("Random bytes:", rand_bytes) 5 | 6 | number_list = [] 7 | for i in range(10): 8 | number_list.append(secrets.randbelow(10000) + 1) 9 | 10 | print(number_list) -------------------------------------------------------------------------------- /Applications/CSPRNG/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Applications/Calendar/calendar.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | import calendar 3 | 4 | win = Tk() 5 | win.title("GUI Calendar") 6 | 7 | def text(): 8 | year_str = year.get() 9 | month_str = month.get() 10 | year_int = int(year_str) 11 | month_int = int (month_str) 12 | cal = calendar.month(year_int, month_int) 13 | textfield.delete(0.0, END) 14 | textfield.insert(INSERT, cal) 15 | 16 | label1 = Label(win, text = '{Year} ') 17 | label1.grid(row = 0, column = 0) 18 | label1 = Label(win, text = '{Month} ') 19 | label1.grid(row = 0, column = 1) 20 | 21 | year = Spinbox(win, from_= 1947, to = 2150, width = 24) 22 | year.grid(row = 1, column = 0, padx = 16) 23 | month = Spinbox(win, from_= 1, to = 12, width = 3) 24 | month.grid(row = 1, column = 1) 25 | 26 | button = Button(win, text = "{GO}", command = text) 27 | button.grid(row = 1, column = 2) 28 | 29 | textfield = Text(win, height = 10, width = 30, foreground = 'brown') 30 | textfield.grid(row = 3, columnspan = 3) 31 | 32 | win.mainloop() 33 | -------------------------------------------------------------------------------- /Applications/Extract mp3 from mp4/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Extract mp3 From mp4

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can extract audio(``mp3``) from a video(`mp4`) file using `Python` in 5 lines of code. Your need to have the source-code in the same location of the video file, the program will generate a new mp3 file in that location. weeee 🎉 17 | ``` 18 | What the program does? 19 | 20 | - video will be taken as input 21 | - moviepy will detach audio from the video 22 | - New audio file with .mp3 extention will be created in the same location of source-code 23 | ``` 24 | ### Requirements 25 | 26 | * Python 27 | * Python Libraries: `moviepy` 28 | 29 | ### Contributing 30 | 31 | Any kind of contributions to `qxresearch-event-1/extract-mp3-from-mp4` are welcome. While creating an issue(for this project) use `Extract-mp3-From-mp4` Label. 32 | 33 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 34 | 2. Commit your Changes 35 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 36 | 37 | ### Video Tutorial 38 | 39 | * YouTube : [Extract mp3 from mp4](https://youtu.be/Wu4hR_pRn6k) 40 | 41 | ### Become Official Member @qxresearch 42 | 43 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 44 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 45 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 46 | 47 | 48 |

49 | 50 |

51 |
52 |
53 | View Demo 54 | · 55 | Report Bug 56 | · 57 | Request Feature 58 |
59 |
60 |

61 |

62 | -------------------------------------------------------------------------------- /Applications/Extract mp3 from mp4/source-code.py: -------------------------------------------------------------------------------- 1 | import moviepy 2 | import moviepy.editor 3 | 4 | 5 | # Get this library installed in your system 6 | 7 | # Import your video file 8 | # Media file should be local 9 | video = moviepy.editor.VideoFileClip("") # Put your file path in here 10 | 11 | # Convert video to audio 12 | audio = video.audio 13 | audio.write_audiofile('new_audio.mp3') 14 | 15 | -------------------------------------------------------------------------------- /Applications/Extract mp3 from mp4/source-code.pyw: -------------------------------------------------------------------------------- 1 | # welcome 2 | # rename this file extension from .pyw to .py to show console window. 3 | 4 | import moviepy # moviepy - Get this library installed in your system [pip install moviepy]. 5 | import moviepy.editor 6 | import tkinter as tk # import Tkinter module 7 | from tkinter.filedialog import askopenfilename ,asksaveasfilename # file dialog to get video and audio file paths. 8 | 9 | global open_file_path 10 | global save_file_path 11 | 12 | # to get file path of video file. 13 | def fileopen(): 14 | global open_file_path 15 | open_file_path = askopenfilename( 16 | filetypes=[("All Files", "*.*")] # Here you can specify different file extensions. 17 | ) 18 | if not open_file_path: 19 | return 20 | open_path.insert(0, open_file_path) # insert the file path to Entry. 21 | 22 | # to get file path for audio file to be saved. 23 | def filesave(): 24 | global save_file_path 25 | save_file_path = (asksaveasfilename( 26 | filetypes=[("audio file", '*.MP3'),("All files", '*.*')] # Here you can specify different file extensions. 27 | ) + ".mp3") 28 | if not save_file_path: 29 | return 30 | save_path.insert(0, save_file_path) # insert the file path to Entry. 31 | 32 | # The main program to convert a video file to audio file. 33 | def file_convert(video_file,audio_file): # Here video_file and audio_file are the file paths. 34 | video = moviepy.editor.VideoFileClip(video_file) 35 | audio = video.audio # Main convertion from video to audio. 36 | audio.write_audiofile(audio_file) 37 | popup = tk.Toplevel() # A popup window saying completed. 38 | popup.title("completed!") 39 | popup_text=tk.Label(popup, text="sucessfully converted and saved to your location \n\n\n credits:qxresearch @ GitHub ",height=10).pack(side=tk.TOP,anchor='nw') 40 | popup.mainloop() 41 | 42 | # The main window to enter video and audio file paths. 43 | uiwindow = tk.Tk() 44 | uiwindow.title("video to audio converter") 45 | main_frame = tk.Frame(uiwindow, height=20,width=80).pack(side=tk.TOP, fill=tk.BOTH) # A main frame which holds video and audio file paths. 46 | open_label = tk.Label(main_frame, text="enter the path of the video file to be converted:").pack(side=tk.TOP ,anchor='w') 47 | open_path = tk.Entry(main_frame, width=50) # Entry for video file path. 48 | open_path.pack(side=tk.TOP, fill=tk.BOTH) 49 | open_Button = tk.Button(main_frame, text="Browse..",bg="sky Blue",command = lambda:fileopen()).pack(side=tk.TOP, anchor='e') # Button to locate video file. 50 | empty_space = tk.Label(main_frame, height=3).pack(side=tk.TOP,fill=tk.BOTH) # Empty Label for good look. 51 | save_label = tk.Label(main_frame, text="enter the path for the converted audio file to be saved:",height=1).pack(side=tk.TOP ,anchor='w') 52 | save_path = tk.Entry(main_frame, width=50) # Entry for audio file path. 53 | save_path.pack(side=tk.TOP, fill=tk.BOTH) 54 | save_button = tk.Button(main_frame, text="Browse..",bg="sky Blue", command=lambda:filesave()).pack(side=tk.TOP, anchor='e') # Button to locate audio file to be saved. 55 | empty_space2 = tk.Label(uiwindow, text="______________________________________________________________________",height=2,fg="green") 56 | empty_space2.pack(side=tk.TOP,fill=tk.BOTH,anchor='s') # Empty Label for good look. 57 | second_frame = tk.Frame(uiwindow,width=100).pack(side=tk.TOP) # A second frame which holds cancel and convert Buttons. 58 | convert_button = tk.Button(second_frame, text="convert",bg="pink",borderwidth=4,command=lambda:[file_convert(open_file_path,save_file_path)]) 59 | convert_button.pack(side=tk.RIGHT, anchor='ne', padx=5,pady=5) # The convert Button. 60 | # cancel Button. 61 | cancel_Button = tk.Button(second_frame, text="cancel",bg="pink",borderwidth=4,command=lambda:uiwindow.destroy()).pack(side=tk.RIGHT, anchor='ne',padx=5, pady=5) 62 | uiwindow.mainloop() 63 | 64 | ''' 65 | comment: The main program [non-graphical interface] is here.. 66 | import moviepy 67 | import moviepy.editor 68 | video = moviepy.editor.VideoFileClip('#') # - path to video file. 69 | audio = video.audio 70 | audio.write_audiofile('#') # - path to audio file. 71 | ''' 72 | 73 | # qxresearch @ GitHub. 74 | # Thank You. 75 | -------------------------------------------------------------------------------- /Applications/Link Shortener and Extractor/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Link Shortener and Link Extractor

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can create a `Python` program which can be used to shorten a big link and also to extract original link from a shortened link. For shortening the link, we'll use a shortening web service named `tinyurl`. You need to give your link in the terminal and you'll get the shortened link/ original link in the print-screen. 17 | ``` 18 | What the program does? 19 | 20 | 1. Shortening Links 21 | - You have to give your big link in the terminal 22 | - Program will use tinyurl server for shortening the link without using any browser 23 | - Shortened link will pass by print() function 24 | 25 | 2. Extracting Original Links 26 | - You have to give a shortened link in the terminal 27 | - Program will extract the original URL from the shortened link 28 | - Original link will pass by print() function 29 | ``` 30 | ### Requirements 31 | 32 | * Python 33 | * Python Libraries: `pyshorteners`, `urllib3`, `requests` 34 | 35 | ### Contributing 36 | 37 | Any kind of contributions to `qxresearch-event-1/link-shortener` are welcome. While creating an issue(for this project) use `Link-Shortener` Label. 38 | 39 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 40 | 2. Commit your Changes 41 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 42 | 43 | ### Video Tutorial 44 | 45 | * **YouTube : ** [Link Shortener](https://youtu.be/JOx_c7ehwKI) 46 | 47 | ### Become Official Member @qxresearch 48 | 49 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 50 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 51 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 52 | 53 | 54 |

55 | 56 |

57 |
58 |
59 | View Demo 60 | · 61 | Report Bug 62 | · 63 | Request Feature 64 |
65 |
66 |

67 |

-------------------------------------------------------------------------------- /Applications/Link Shortener and Extractor/source-code.py: -------------------------------------------------------------------------------- 1 | import pyshorteners 2 | from urllib.request import urlopen 3 | 4 | def link_shortener(link): 5 | shortener = pyshorteners.Shortener() #class object 6 | short_link = shortener.tinyurl.short(link) #shorting the link 7 | 8 | #Display 9 | print('\t[+] Real Link: ' + link) 10 | print('\t[+] Shortened Link: ' + short_link) 11 | 12 | def link_opener(link): 13 | shortened_url = urlopen(link) 14 | real_link = shortened_url.geturl() # getting real link 15 | 16 | # Display 17 | print('\t[+] Shortened Link: ' + link) 18 | print('\t[+] Real Link: ' + real_link) 19 | 20 | if __name__ == '__main__' : 21 | 22 | num = input("Enter your choice ...\n" 23 | "1. Type 1 for shortening link\n" 24 | "2. Type 2 for extrcting real link from a shorten link\n") 25 | 26 | link = input("Enter the link: ") 27 | 28 | if (num == '1') : 29 | link_shortener(link) 30 | else : 31 | link_opener(link) -------------------------------------------------------------------------------- /Applications/Merge Multiple PDF/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Merge-Multiple-PDF

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can merge multiple PDF files into on PDF using `Python` in 10 lines of code. You need to have your source-code in the same location of your PDF files. If you run the code all single pdf files will be deleted and a new big pdf file will be created. 17 | ``` 18 | What the program does? 19 | 20 | - Prgram finds all files with extention .pdf in the source code folder 21 | - Create a new pdf with all pdf files 22 | - Delete all pdf which are used in the program 23 | ``` 24 | ### Requirements 25 | 26 | * Python 27 | * Python Libraries: `PyPDF2` `os` 28 | 29 | ### Contributing 30 | 31 | Any kind of contributions to `qxresearch-event-1/merge-multiple-pdf` are welcome. While creating an issue(for this project) use `Merge-Multiple-PDF` Label. 32 | 33 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 34 | 2. Commit your Changes 35 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 36 | 37 | ### Video Tutorial 38 | 39 | * **YouTube :** [Merge Multiple PDF](https://youtu.be/Tp1nz2hzsiY) 40 | 41 | ### Become Official Member @qxresearch 42 | 43 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 44 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 45 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 46 | 47 | 48 |

49 | 50 |

51 |
52 |
53 | View Demo 54 | · 55 | Report Bug 56 | · 57 | Request Feature 58 |
59 |
60 |

61 |

62 | -------------------------------------------------------------------------------- /Applications/Merge Multiple PDF/source-code.py: -------------------------------------------------------------------------------- 1 | from PyPDF4 import PdfFileMerger 2 | import os 3 | #var = os.getcwd() For extracting from enother folder 4 | merger = PdfFileMerger() 5 | for items in os.listdir(): 6 | if items.endswith('.pdf'): 7 | merger.append(items) 8 | merger.write("Final_pdf.pdf") 9 | merger.close() 10 | 11 | for items in os.listdir(): 12 | if items != ( 'Final_pdf.pdf') and items.endswith('.pdf'): 13 | os.remove(items) -------------------------------------------------------------------------------- /Applications/Noscreensaver/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # Noscreensaver 3 | 4 | * While writing from a pdf on our computer after sometime we need to move the mouse in order to prevent the screensaver from being turned on. 5 | * Or sometimes when the user needs to keep the computer always engaged. 6 | --- 7 | #### We can use this then. 8 | 9 | 10 | ## Run Locally 11 | 12 | Just copy the code and ensure you have pyautogui installed. 13 | 14 | If not then you can install by 15 | 16 | ` pip install pyautogui ` 17 | 18 | To close the program if run from terminal press `Ctrl+C` or if from IDLE then just simply close the interface. -------------------------------------------------------------------------------- /Applications/Noscreensaver/noscreensaver.py: -------------------------------------------------------------------------------- 1 | import pyautogui 2 | 3 | # A infinite loop 4 | while 1>0: 5 | # makes the mouse sleep or wait for 40 seconds 6 | pyautogui.sleep(40) 7 | # clicks about in the corner of the screen like 8 | # on the co-ordinates of (50,400) 9 | pyautogui.click(50,400) -------------------------------------------------------------------------------- /Applications/Object Detection/ObjectDetection.py.txt: -------------------------------------------------------------------------------- 1 | from imageai.Detection import ObjectDetection 2 | import os 3 | 4 | execution_path = os.getcwd() 5 | 6 | detector = ObjectDetection() 7 | detector.setModelTypeAsRetinaNet() 8 | detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5")) 9 | detector.loadModel() 10 | 11 | detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg")) 12 | 13 | for eachObject in detections: 14 | print(eachObject["name"] , " : " , eachObject["percentage_probability"] ) 15 | 16 | from IPython.display import Image 17 | Image(filename='imagenew.jpg') 18 | -------------------------------------------------------------------------------- /Applications/Paint/paint.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | from tkinter.colorchooser import askcolor 3 | 4 | class Paint(object): 5 | pen_size = 5.0 6 | color = 'black' 7 | 8 | def __init__(self): 9 | self.root = Tk() 10 | 11 | self.pen_button = Button(self.root, text = 'pen', command = self.use_pen) 12 | self.pen_button.grid(row = 0, column = 0) 13 | 14 | self.brush_button = Button(self.root, text = 'brush', command = self.use_brush) 15 | self.brush_button.grid(row=0, column=1) 16 | 17 | self.color_button = Button(self.root, text='color', command=self.choose_color) 18 | self.color_button.grid(row=0, column=2) 19 | 20 | self.eraser_button = Button(self.root, text='eraser', command=self.use_eraser) 21 | self.eraser_button.grid(row=0, column=3) 22 | 23 | self.choose_size_button = Scale(self.root, from_=1, to=10, orient=HORIZONTAL) 24 | self.choose_size_button.grid(row=0, column=4) 25 | 26 | self.c=Canvas(self.root, bg='white', width=600, height=600) 27 | self.c.grid(row=1, columnspan=5) 28 | 29 | self.setup() 30 | self.root.mainloop() 31 | 32 | def setup(self): 33 | self.old_x = None 34 | self.old_y = None 35 | self.line_width = self.choose_size_button.get() 36 | self.color = self.color 37 | self.eraser_on = False 38 | self.active_button = self.pen_button 39 | self.c.bind('', self.print) 40 | self.c.bind('', self.reset) 41 | 42 | def use_pen(self): 43 | self.activate_button(self.pen_button) 44 | 45 | def use_brush(self): 46 | self.activate_button(self.brush_button) 47 | 48 | def choose_color(self): 49 | self.eraser_on = False 50 | self.color = askcolor(color=self.color)[1] 51 | 52 | def use_eraser(self): 53 | self.activate_button(self.eraser_button, eraser_mode=True) 54 | 55 | def activate_button(self, some_button, eraser_mode=False): 56 | self.activate_button.config(relief=RAISED) 57 | some_button.config(relief=SUNKEN) 58 | self.active_button = some_button 59 | self.eraser_on = eraser_mode 60 | 61 | def print(self, event): 62 | self.line_width = self.choose_size_button.get() 63 | paint_color = 'white' if self.eraser_on else self.color 64 | if self.old_x and self.old_y: 65 | self.c.create_line(self.old_x, self.old_y, event.x, event.y, width=self.line_width, fill=paint_color, capstyle=ROUND, smooth=TRUE, splinesteps=36) 66 | self.old_x = event.x 67 | self.old_y = event.y 68 | 69 | def reset(self, event): 70 | self.old_x, self.old_y = None, None 71 | 72 | if __name__ =='__main__': 73 | Paint() 74 | -------------------------------------------------------------------------------- /Applications/Password Protect PDF/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Password-Protect-PDF

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can protect your PDF file with a custom password using `Python` in 10 lines of code. You need to have your source-code in the same location of your PDF file. In the program you'll give your source-pdf-name | Password | Output-pdf-name. 17 | ``` 18 | What the program does? 19 | 20 | - A copy of original pdf is created 21 | - Protect it with a password 22 | - Original file is deleted 23 | ``` 24 | ### Requirements 25 | 26 | * Python 27 | * Python Libraries: `PyPDF2` 28 | 29 | ### Contributing 30 | 31 | Any kind of contributions to `qxresearch-event-1/password-protect-pdf` are welcome. While creating an issue(for this project) use `Password-Protect-PDF` Label. 32 | 33 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 34 | 2. Commit your Changes 35 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 36 | 37 | 38 | ### Video Tutorial 39 | 40 | * **YouTube :** [**Password Protect PDF**](https://youtu.be/Cxi3R3A7yMQ) 41 | 42 | ### Become Official Member @qxresearch 43 | 44 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 45 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 46 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 47 | 48 | 49 |

50 | 51 |

52 |
53 |
54 | View Demo 55 | · 56 | Report Bug 57 | · 58 | Request Feature 59 |
60 |
61 |

62 |

63 | -------------------------------------------------------------------------------- /Applications/Password Protect PDF/source-code.py: -------------------------------------------------------------------------------- 1 | from PyPDF2 import PdfWriter, PdfReader 2 | import getpass 3 | pdfwriter=PdfWriter() 4 | pdf=PdfReader("1.pdf") 5 | for page_num in range(len(pdf.pages)): 6 | pdfwriter.add_page(pdf.pages[page_num]) 7 | passw=getpass.getpass(prompt='Enter Password: ') 8 | pdfwriter.encrypt(passw) 9 | with open('ho.pdf','wb') as f: 10 | pdfwriter.write(f) -------------------------------------------------------------------------------- /Applications/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Applications/Random Password Generator/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Random-Password-Generator

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can create your personal random password generator tool using `Python`. In this project we will use a GUI(Graphical User Interface) tool named `tkinter` to create a window to get a cool software like feel into it. 17 | ``` 18 | What the program does? 19 | 20 | - You need to select some parameters: ascii_letters | Punctuation | digits | alpha | symbol | number 21 | - A random password will be generated using random() function 22 | - A new window and button will be created 23 | - As you click the button, a password will be generated and display on the screen 24 | ``` 25 | ### Requirements 26 | 27 | * Python 28 | * Python Libraries: `random` `tkinter` `string` 29 | 30 | ### Contributing 31 | 32 | Any kind of contributions to `qxresearch-event-1/windows-notification` are welcome. While creating an issue(for this project) use `Random-Password-Generator` Label. 33 | 34 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 35 | 2. Commit your Changes 36 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 37 | 38 | ### Video Tutorial 39 | 40 | * YouTube : [Random Password Generator](https://youtu.be/lihcQHcrMD8) 41 | 42 | ### Become Official Member @qxresearch 43 | 44 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 45 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 46 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 47 | 48 | 49 |

50 | 51 |

52 |
53 |
54 | View Demo 55 | · 56 | Report Bug 57 | · 58 | Request Feature 59 |
60 |
61 |

62 |

63 | -------------------------------------------------------------------------------- /Applications/Random Password Generator/random pass.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | import random 3 | import string 4 | 5 | root = Tk() 6 | root.geometry("400x200") 7 | 8 | passstr = StringVar() 9 | pwd_len = IntVar() 10 | 11 | # function to generate the password 12 | def get_pass(): 13 | pass1 = string.ascii_letters + string.digits + string.punctuation 14 | password = "" 15 | 16 | for x in range(pwd_len.get()): #loop to generate the user given length for password 17 | password = password + random.choice(pass1) 18 | passstr.set(password) 19 | 20 | #tkinter command to generate the gui 21 | Label(root, text="Password Generator", font="calibri 18 bold").pack() 22 | Label(root, text="Enter length of Password").pack(pady=9) 23 | Entry(root, textvariable=pwd_len).pack(pady=2) 24 | Button(root, text="Generate Password", command=generate).pack(pady=15) 25 | Entry(root, textvariable=passstr).pack(pady=2) 26 | 27 | root.mainloop() -------------------------------------------------------------------------------- /Applications/Random Password Generator/source-code.py: -------------------------------------------------------------------------------- 1 | import random 2 | from tkinter import * 3 | import string 4 | from tkinter.font import Font 5 | 6 | def generate_password(): 7 | password=[] 8 | for i in range(2): 9 | alpha=random.choice(string.ascii_letters) 10 | symbol=random.choice(string.punctuation) 11 | numbers=random.choice(string.digits) 12 | password.append(alpha) 13 | password.append(symbol) 14 | password.append(numbers) 15 | y="".join(str(x)for x in password) 16 | lbl.config(text=y) 17 | 18 | root=Tk() 19 | root.geometry("250x200") 20 | btn=Button(root,text="Generate Password",command=generate_password) 21 | btn.place(relx=0.5, rely=0.2, anchor=N) 22 | myFont = Font(family="Times New Roman", size=12) 23 | lbl=Label(root,font=myFont) 24 | lbl.place(relx=0.5, rely=0.5, anchor=CENTER) 25 | root.mainloop() 26 | -------------------------------------------------------------------------------- /Applications/ScreenShot/screenshot.py: -------------------------------------------------------------------------------- 1 | from tkinter import* 2 | 3 | win = Tk() 4 | win.title("LoopGlitch Screenshoter") 5 | 6 | def callback(): 7 | mySS = pyautogui.screenshot() 8 | mySS.save(r'E:\PyCharm\mySSpy.jpg') #r'Path to save the screenshot\file name.png or jpg' 9 | 10 | button = Button(win, text = "Screenshot This !", command = callback) 11 | button.grid(row = 50, column = 50) 12 | 13 | win.mainloop() 14 | -------------------------------------------------------------------------------- /Applications/Search Engine/wikipediasearch.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | import wikipedia 3 | 4 | 5 | def get_data(): 6 | entry_value = entry.get() 7 | answer.delete(1.0, END) 8 | try: 9 | answer_value = wikipedia.summary(entry_value) 10 | answer.insert(INSERT, answer_value) 11 | except: 12 | answer.insert(INSERT, "ERROR! Invalid input or poor internet connection") 13 | 14 | win = Tk() 15 | win.title("Wikipedia Search") 16 | topframe = Frame(win) 17 | entry = Entry(topframe) 18 | entry.pack() 19 | button = Button(topframe, text="search", command=get_data) 20 | button.pack() 21 | topframe.pack(side = TOP) 22 | 23 | 24 | bottomframe = Frame(win) 25 | scroll = Scrollbar(bottomframe) 26 | scroll.pack(side=RIGHT, fill=Y) 27 | answer = Text(bottomframe, width=50, height=20, yscrollcommand = scroll.set, wrap=WORD) 28 | scroll.config(command=answer.yview) 29 | answer.pack() 30 | bottomframe.pack() 31 | 32 | win.mainloop() 33 | -------------------------------------------------------------------------------- /Applications/Terminal Tricks/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Terminal Tricks

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can play tricks with terminal using `python` program. You'll get 2 codes one will change the text color in terminal and second one will help you to write anything using alphabet | Number | Symbolic structure. 17 | ``` 18 | What the program does? 19 | 20 | - You've to choose the color 21 | - You've to select: alphabet | Number | Symbol style 22 | - This is what qxresearch(alphabetic) looks like: 23 | h 24 | h 25 | qqq x x rrr eee ss eee aa rrr ccc hhh 26 | q q x r e e s e e a a r c h h 27 | qqq x x r ee ss ee aaa r ccc h h 28 | q 29 | qq 30 | ``` 31 | ### Requirements 32 | 33 | * Python 34 | * Python Libraries: `pyfiglet` `colorama` 35 | 36 | ### Contributing 37 | 38 | Any kind of contributions to `qxresearch-event-1/terminal-tricks` are welcome. While creating an issue(for this project) use `Terminal-Tricks` Label. 39 | 40 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 41 | 2. Commit your Changes 42 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 43 | 44 | ### Video Tutorial 45 | 46 | * **YouTube : ** [Terminal Tricks](https://youtu.be/sykK0IVAb84) 47 | 48 | ### Become Official Member @qxresearch 49 | 50 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 51 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 52 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 53 | 54 | 55 |

56 | 57 |

58 |
59 |
60 | View Demo 61 | · 62 | Report Bug 63 | · 64 | Request Feature 65 |
66 |
67 |

68 |

69 | -------------------------------------------------------------------------------- /Applications/Terminal Tricks/source-code-color.py: -------------------------------------------------------------------------------- 1 | from colorama import init 2 | init() 3 | from colorama import Fore , Back , Style # Fore- font color | Back- Background 4 | 5 | print(Fore.GREEN,"hello qxresearcher") 6 | 7 | print(Back.RED,"hello qxresearcher") 8 | 9 | #to get back to boring B&W: print(Styoe.RESET_ALL) 10 | 11 | ``` 12 | All Variaton on Colors: 13 | 14 | Fore: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE RESET 15 | Back: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE RESET 16 | Style: DIM NORMAL BRIGHT RESET_ALL 17 | 18 | ``` 19 | -------------------------------------------------------------------------------- /Applications/Terminal Tricks/source-code-funky.py: -------------------------------------------------------------------------------- 1 | import pyfiglet 2 | word = pyfiglet.figlet_format("qxresearch",font="alphabet") 3 | print(word) 4 | 5 | ``` 6 | Output: 7 | h 8 | h 9 | qqq x x rrr eee ss eee aa rrr ccc hhh 10 | q q x r e e s e e a a r c h h 11 | qqq x x r ee ss ee aaa r ccc h h 12 | q 13 | qq 14 | 15 | 16 | ``` 17 | -------------------------------------------------------------------------------- /Applications/Voice Recorder/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Voice-Recorder

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | This is a simple voice recorder program, written in `Python` by `@qxresearch org.` User have to set the time-limit and run the program. After that specific time the program will stop and a file will be created with `.wav` extention in the same location of source-code. 17 | 18 | ``` 19 | What the program does? 20 | 21 | - Your default mic starts recording 22 | - The recording is saved in the same locatoin of source-code 23 | - After custorm time the program exits 24 | ``` 25 | 26 | ### Requirements 27 | 28 | * Python[ >= python3.1] 29 | * Python Libraries: `sounddevice` `scipy` 30 | * provide your required `time` in `second` for record during the compilation 31 | 32 | ### Contributing 33 | 34 | Any kind of contributions to `qxresearch-event-1/voice-recorder` are welcome. While creating an issue(for this project) use `Voice-Recorder` Label. 35 | 36 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 37 | 2. Commit your Changes 38 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 39 | 40 | ### Video Tutorial 41 | 42 | * **YouTube :** [Voice Recorder](https://youtu.be/eTtPUk01cGc) 43 | 44 | ### Become Official Member @qxresearch 45 | 46 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 47 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 48 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 49 | 50 | 51 |

52 | 53 |

54 |
55 |
56 | View Demo 57 | · 58 | Report Bug 59 | · 60 | Request Feature 61 |
62 |
63 |

64 |

65 | -------------------------------------------------------------------------------- /Applications/Voice Recorder/source-code.py: -------------------------------------------------------------------------------- 1 | import sounddevice 2 | from scipy.io.wavfile import write 3 | fs=44100 #sample_rate 4 | second=int(input("Enter the time duration in second: ")) #enter your required time.. 5 | print("Recording....\n") 6 | record_voice=sounddevice.rec(int(second * fs),samplerate=fs,channels=2) 7 | sounddevice.wait() 8 | write("out.wav",fs,record_voice) 9 | print("Finished...\nPlease Check it...") 10 | -------------------------------------------------------------------------------- /Applications/Windows Notification/README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

Windows-Notification

8 | 9 |

10 | Python Application | 10 lines of code + Video Explanation 🧭 11 |
12 |
13 |

14 |

15 | 16 | You can create a custom windows notificatoin and timer notification using `Python` in 10 lines of code. You can create custom name | custom label | custon notification icon | set time limit and you've your custom notificatoin for your app. 🎉 17 | ``` 18 | What the program does? 19 | 20 | - You give custon heading | sub heading | icon | duration 21 | - You set a notification time or hourly reminder 22 | - Output displays an actual notification on your computer rather than on terminal screen 23 | ``` 24 | ### Requirements 25 | 26 | * Python 27 | * Python Libraries: `win10toast` `time` 28 | 29 | ### Contributing 30 | 31 | Any kind of contributions to `qxresearch-event-1/windows-notification` are welcome. While creating an issue(for this project) use `Windows-Notification` Label. 32 | 33 | 1. [Fork](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 34 | 2. Commit your Changes 35 | 3. Open a [Pull Request](https://github.com/qxresearch/qxresearch-event-1/pulls) 36 | 37 | ### Video Tutorial 38 | 39 | * YouTube : [Windows Notificatoin](https://youtu.be/ReUE47SgIuY) 40 | 41 | ### Become Official Member @qxresearch 42 | 43 | * Join Mozilla Group [@qxresearch](https://community.mozilla.org/en/groups/qx-research/) 44 | * Join Telegram Group [@qxresearch](https://t.me/qxresearch) 45 | * email me your GitHub id (**subject**: GitHub id @qxresearch) 46 | 47 | 48 |

49 | 50 |

51 |
52 |
53 | View Demo 54 | · 55 | Report Bug 56 | · 57 | Request Feature 58 |
59 |
60 |

61 |

62 | -------------------------------------------------------------------------------- /Applications/Windows Notification/jokes-desktop-notifier.py: -------------------------------------------------------------------------------- 1 | import pyjokes 2 | import time 3 | from win10toast import ToastNotifier 4 | 5 | while 1: 6 | notify = ToastNotifier() 7 | notify.show_toast("Time to laugh!", pyjokes.get_joke(), duration = 20) 8 | time.sleep(1800) 9 | -------------------------------------------------------------------------------- /Applications/Windows Notification/source-code-custom.py: -------------------------------------------------------------------------------- 1 | import win10toast 2 | toaster = win10toast.ToastNotifier() 3 | toaster.show_toast("python","success ! This is working!", duration=10) 4 | -------------------------------------------------------------------------------- /Applications/Windows Notification/source-code-timer.py: -------------------------------------------------------------------------------- 1 | from win10toast import ToastNotifier 2 | import time 3 | while True: 4 | current_time = time.strftime("%H:%M:%S") 5 | if current_time=="00.36.00": 6 | print(current_time) 7 | break 8 | else: 9 | pass 10 | hr=ToastNotifier() 11 | hr.show_toast("alarm","this is the message") 12 | -------------------------------------------------------------------------------- /Applications/audiobook/audiobook.py: -------------------------------------------------------------------------------- 1 | import pyttsx3 2 | book=open(r"book.txt") 3 | book_text=book.readlines() 4 | engine = pyttsx3.init() 5 | for i in book_text: 6 | engine.say(i) 7 | engine.runAndWait() 8 | -------------------------------------------------------------------------------- /Applications/audiobook/book.txt: -------------------------------------------------------------------------------- 1 | This is an audiobook created by MASTERMIND. 2 | Listen and Enjoy! -------------------------------------------------------------------------------- /Applications/pong_game/__pycache__/ball.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fireman03151/python_project/00ce23754a5fca8aac5fb720c5df5ab124aa913a/Applications/pong_game/__pycache__/ball.cpython-310.pyc -------------------------------------------------------------------------------- /Applications/pong_game/__pycache__/paddle.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fireman03151/python_project/00ce23754a5fca8aac5fb720c5df5ab124aa913a/Applications/pong_game/__pycache__/paddle.cpython-310.pyc -------------------------------------------------------------------------------- /Applications/pong_game/__pycache__/scoreboard.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fireman03151/python_project/00ce23754a5fca8aac5fb720c5df5ab124aa913a/Applications/pong_game/__pycache__/scoreboard.cpython-310.pyc -------------------------------------------------------------------------------- /Applications/pong_game/ball.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | class Ball(Turtle): 4 | def __init__(self): 5 | super().__init__() 6 | self.shape("circle") 7 | self.color("white") 8 | self.penup() 9 | self.X_move = 10 10 | self.Y_move = 10 11 | self.move_speed = 0.1 12 | 13 | def move(self): 14 | new_X = self.xcor() + self.X_move 15 | new_Y = self.ycor() + self.Y_move 16 | self.goto(new_X,new_Y) 17 | 18 | def bounce_Y(self): 19 | self.Y_move *= -1 20 | 21 | def bounce_X(self): 22 | self.X_move *= -1 23 | self.move_speed *= 0.9 24 | 25 | def reset_position(self): 26 | self.goto(0,0) 27 | self.move_speed = 0.1 28 | self.bounce_X() -------------------------------------------------------------------------------- /Applications/pong_game/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle,Screen 2 | from paddle import Paddle 3 | from ball import Ball 4 | import time 5 | from scoreboard import Scoreboard 6 | 7 | 8 | paddle = Turtle() 9 | screen=Screen() 10 | screen.setup(height=600,width=800) 11 | screen.bgcolor("black") 12 | screen.title("Pong") 13 | screen.tracer(0) #animation gets turned off 14 | 15 | #Calling of all classes 16 | r_paddle = Paddle((350,0)) 17 | l_paddle = Paddle((-350,0)) 18 | ball = Ball() 19 | scoreboard = Scoreboard() 20 | #screen listening and paddle controlling 21 | screen.listen() 22 | screen.onkey(r_paddle.go_Up, "Up") 23 | screen.onkey(r_paddle.go_Down, "Down") 24 | screen.onkey(l_paddle.go_Up, "w") 25 | screen.onkey(l_paddle.go_Down, "s") 26 | 27 | 28 | game_is_on = True 29 | 30 | while game_is_on: 31 | time.sleep(ball.move_speed) 32 | screen.update() 33 | ball.move() 34 | 35 | # Detecting collision 36 | if ball.ycor() > 280 or ball.ycor() < -280: 37 | ball.bounce_Y() 38 | 39 | #Detect collision with right paddle 40 | if ball.distance(r_paddle) < 50 and ball.xcor() > 320 or ball.distance(l_paddle) < 50 and ball.xcor() < -320: 41 | ball.bounce_X() 42 | 43 | # right paddle misses the ball 44 | if ball.xcor() > 380: 45 | ball.reset_position() 46 | scoreboard.l_point() 47 | 48 | #Detect left side 49 | if ball.xcor() < -380: 50 | ball.reset_position() 51 | scoreboard.r_point() 52 | 53 | screen.exitonclick() -------------------------------------------------------------------------------- /Applications/pong_game/paddle.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | 4 | class Paddle(Turtle): 5 | def __init__(self,position): 6 | super().__init__() 7 | self.shape("square") 8 | self.color("white") 9 | self.shapesize(stretch_wid=5,stretch_len=1) 10 | self.penup() 11 | self.goto(position) 12 | 13 | def go_Up(self): 14 | new_y = self.ycor() + 20 15 | self.goto(self.xcor(), new_y) 16 | 17 | def go_Down(self): 18 | new_y = self.ycor() - 20 19 | self.goto(self.xcor(), new_y) 20 | -------------------------------------------------------------------------------- /Applications/pong_game/scoreboard.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | class Scoreboard(Turtle): 4 | def __init__(self): 5 | super().__init__() 6 | self.color("white") 7 | self.penup() 8 | self.hideturtle() 9 | self.l_score = 0 10 | self.r_score = 0 11 | self.update_scoreboard() 12 | 13 | def update_scoreboard(self): 14 | self.clear() 15 | self.goto(-100,200) 16 | self.write(self.l_score, align="center", font=("Courier",80,"normal")) 17 | self.goto(100,200) 18 | self.write(self.r_score, align="center", font=("Courier",80,"normal")) 19 | 20 | def l_point(self): 21 | self.l_score += 1 22 | self.update_scoreboard() 23 | 24 | def r_point(self): 25 | self.r_score += 1 26 | self.update_scoreboard() -------------------------------------------------------------------------------- /Applications/pong_game/tempCodeRunnerFile.py: -------------------------------------------------------------------------------- 1 | if ball.xcor() < -380: 2 | # ball.reset_position() -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Citizen Code of Conduct 2 | 3 | ## 1. Purpose 4 | 5 | A primary goal of qxresearch-event-1 is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). 6 | 7 | This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior. 8 | 9 | We invite all those who participate in qxresearch-event-1 to help us create safe and positive experiences for everyone. 10 | 11 | ## 2. Open [Source/Culture/Tech] Citizenship 12 | 13 | A supplemental goal of this Code of Conduct is to increase open [source/culture/tech] citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. 14 | 15 | Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. 16 | 17 | If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know. 18 | 19 | ## 3. Expected Behavior 20 | 21 | The following behaviors are expected and requested of all community members: 22 | 23 | * Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. 24 | * Exercise consideration and respect in your speech and actions. 25 | * Attempt collaboration before conflict. 26 | * Refrain from demeaning, discriminatory, or harassing behavior and speech. 27 | * Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. 28 | * Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations. 29 | 30 | ## 4. Unacceptable Behavior 31 | 32 | The following behaviors are considered harassment and are unacceptable within our community: 33 | 34 | * Violence, threats of violence or violent language directed against another person. 35 | * Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. 36 | * Posting or displaying sexually explicit or violent material. 37 | * Posting or threatening to post other people's personally identifying information ("doxing"). 38 | * Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. 39 | * Inappropriate photography or recording. 40 | * Inappropriate physical contact. You should have someone's consent before touching them. 41 | * Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances. 42 | * Deliberate intimidation, stalking or following (online or in person). 43 | * Advocating for, or encouraging, any of the above behavior. 44 | * Sustained disruption of community events, including talks and presentations. 45 | 46 | ## 5. Weapons Policy 47 | 48 | No weapons will be allowed at qxresearch-event-1 events, community spaces, or in other spaces covered by the scope of this Code of Conduct. Weapons include but are not limited to guns, explosives (including fireworks), and large knives such as those used for hunting or display, as well as any other item used for the purpose of causing injury or harm to others. Anyone seen in possession of one of these items will be asked to leave immediately, and will only be allowed to return without the weapon. Community members are further expected to comply with all state and local laws on this matter. 49 | 50 | ## 6. Consequences of Unacceptable Behavior 51 | 52 | Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. 53 | 54 | Anyone asked to stop unacceptable behavior is expected to comply immediately. 55 | 56 | If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event). 57 | 58 | ## 7. Reporting Guidelines 59 | 60 | If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. . 61 | 62 | 63 | 64 | Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress. 65 | 66 | ## 8. Addressing Grievances 67 | 68 | If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify qxresearch with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. 69 | 70 | 71 | 72 | ## 9. Scope 73 | 74 | We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues--online and in-person--as well as in all one-on-one communications pertaining to community business. 75 | 76 | This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members. 77 | 78 | ## 10. Contact info 79 | 80 | 81 | 82 | ## 11. License and attribution 83 | 84 | The Citizen Code of Conduct is distributed by [Stumptown Syndicate](http://stumptownsyndicate.org) under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/). 85 | 86 | Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy). 87 | 88 | _Revision 2.3. Posted 6 March 2017._ 89 | 90 | _Revision 2.2. Posted 4 February 2016._ 91 | 92 | _Revision 2.1. Posted 23 June 2014._ 93 | 94 | _Revision 2.0, adopted by the [Stumptown Syndicate](http://stumptownsyndicate.org) board on 10 January 2013. Posted 17 March 2013._ 95 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ### What is qxresearch? 2 | 3 | **QX Research** is an online Developer **|** Research club in collaboration with `Mozilla Campus Club`. We focus on the application of `Programming` with `AI` `ML` `Cloud Computing` `Computer Vision` `IOT` etc. Our Research Sessions will take place remotely over [video chat](https://www.youtube.com/channel/UCX7oe66V8zyFpAJyMfPL9VA), so you can be anywhere in the world. 4 | 5 | ### Contributing 6 | 7 | Any kind of contributions to `qxresearch-event-1` are welcome. Contributions are what make the open source community such an amazing place to learn, inspire, and create. 8 | 9 | 1. [**Fork**](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 10 | 2. Create your Feature Branch 11 | 3. Commit your Changes 12 | 4. Push to the Branch 13 | 5. Open a [**Pull Request**](https://github.com/qxresearch/qxresearch-event-1/pulls) 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 qxresearch 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Logo 5 | 6 | 7 |

8 | 9 | 10 | 11 | Welcome to our GitHub repository featuring 50+ Python applications with only 10 lines of code! In this repository, you'll find a wide range of topics such as Machine Learning, Deep Learning, GUI, Computer Vision, and API development. Each application is designed to be simple and concise, making it easy to understand and modify. Whether you're a beginner or an experienced developer, these applications are perfect for learning and experimenting with Python. So dive in, explore, and have fun! 12 | 13 | Additionally, we understand that sometimes code can be complex, which is why we've created video explanations for each project available on our YouTube channel. With these resources at your disposal, you can quickly gain a deep understanding of the code and easily customize it to suit your needs. Subscribe to the YouTube channel [@qxresearch](https://www.youtube.com/@qxresearch/) to receive updates on new projects! Which also enables you to join a community of like-minded Python enthusiasts and stay connected with a passionate group of learners and experts. 14 | 15 | 16 |
17 |
18 | 19 |

20 | About Us : 21 | 22 | @qxresearch 23 | 24 | 25 |

26 | 27 | qxresearch AI is a research lab focused on Machine Learning, Deep Learning, and Computer Vision. Our team aspires to make discoveries that hold a broad impact, and at the core of our approach lies the sharing of our findings in the field. Our researchers regularly publish in academic journals, release projects as open source on GitHub, and apply these findings in practical applications. 28 | 29 | **We are looking for passionate new PhD students, Postdocs, and Master students to join the team!** 30 | 31 | - Follow us on [LinkedIn](https://linkedin.com/company/qxresearch) for timely updates regarding new opportunities. 32 | - Kindly email us your research interests and proposal for consideration. 33 | 34 | ``` 35 | ✔️ If you think this repository has helped you learn something new you can give a star ⭐ 36 | ❌ If not, point out 'why' and spam the issue section 🚩 37 | ``` 38 | 39 |
40 |
41 | 42 | ### Python Application 43 | 44 | * 📼 [Voice Recorder](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Voice%20Recorder) : Simple voice recorder with custom time limit 45 | * 🔑 [Password Protect PDF](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Password%20Protech%20PDF) : Protect a pdf with custom password 46 | * 🗏 [Merge Multiple PDF](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Merge%20Multiple%20PDF) : Merge multiple pdfs with python scripting 47 | * 🔔 [Windows Notification](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Windows%20Notification) : Custom windows notification maker 48 | * 🎬 [Audio Visualization Tool](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Audio%20Visualization%20Tool) : Awesome audio visualization tool! 49 | * 📟 [Random Password Generator](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Random%20Password%20Generator) : Random secured password generator app 50 | * 🎶 [Extract mp3 from mp4](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Extract%20mp3%20from%20mp4) : Extract audio from video with parsing 51 | * 🔗 [Link Shortener and Extractor](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Link%20Shortener%20and%20Extractor) : URL shortner and Extractor from terminal 52 | * 🔋 [Terminal Tricks](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Terminal%20Tricks) : Cool terminal tricks #scripting 53 | * 🎂 [Birthday Reminder](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Birthday%20Reminder) : Birthday reminder for lazy coders 54 | * 📻 [Audiobook](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/audiobook) : Audiobook creator from text file 55 | * ⏰ [Alarm](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Alarm) : Friendly alarm for programmers to take a break 56 | * ⏱️ [Schedule YouTube Video](https://github.com/xiaowuc2/Schedule-YouTube-video-Python/blob/master/python%20code.py) : Python script will play a youtube video at sheduled time 57 | * 📆 [Calendar](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Calendar) : A tkinter(GUI toolkit) based calendar app 58 | * ✏️ [Paint](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Paint) : A tkinter(GUI toolkit) based interactive paint clone 59 | * 💻 [Screenshot taker](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/ScreenShot) : A tkinter based screenshot app with clickable button 60 | * 📖 [Wikipedia Search Engine](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/Search%20Engine) : Wekipedia API integrated tkinter based search engine 61 | * 🛠️ [Cryptographically Secured Random Number Generator](https://github.com/qxresearch/qxresearch-event-1/tree/master/Applications/CSPRNG) : Building a CSRNG from scratch 62 | 63 | 64 | 65 | 66 |
67 | 68 | ### Machine Learning Applications 69 | 70 | `chatGPT` 71 | 72 | - ✒️ [email-automation](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/email-automation) : Tool to automate automate news briefing and blogging from custom senders (mail) 73 | - ⭐ [custom-chatbot](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/chatbot) : ask chatbot to do custom work on the bases of the task (eg. script writer) 74 | - 📟 [whisper-speech-text](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/whisper-speech-text) : OpenAI's anoher API to convert text from audio 75 | - ⚙️ [finetuned-gpt](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/finetuned-gpt) : Train chatGPT on your custom data & ask queries from that data 76 | - 💠 [voice-assistant](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/voice-assistant) : Voice assistant based on ChatGPT and WhisperAPI (Audio input & output) 77 | - 🐻 [web-scraping-summarizer](https://github.com/xiaowuc2/ChatGPT-Python-Applications/tree/main/web-scraping-summarizer) : This tool scrapes a given website and summarizes the main context 78 | - ⌚ [your-prespective](https://raw.githubusercontent.com/xiaowuc2/ChatGPT-Python-Applications/main/resource/git4.png) : You can train ChatGPT to perceive things the way you do, and it will imitate you! 79 | - 📖 [bhagavad-gita-gpt](https://raw.githubusercontent.com/xiaowuc2/ChatGPT-Python-Applications/main/resource/git4.png) : A religious book which contains all the answers to find our purpose and to live it fully 80 | - 🏜 [vector-databse](https://github.com/xiaowuc2/ChatGPT-Python-Applications/blob/main/vector-database/Vector_Databse.ipynb) : This is how you can send big text files to chatgpt and avoid the token limits 81 | 82 | 83 |
84 | 85 | ### Setup 86 | 87 | Refer to this [setup video](https://youtu.be/beEBeQw5tpc) to install the dependencies and generate API keys and incorporate with our applications. I've articulated the steps in text format here : 88 | 89 | - Install the dependencies following these steps : 90 | 91 | - Star this repository (top right corner) 92 | - <>Code > Download ZIP > Open cmd/terminal in that location 93 | - Run this command : `pip install -r requirements.txt` 94 | - Replace API keys in `yml` files 95 | 96 | \* The setup for different projects might not be the same. Please refer to the individual setup guides given for each project. 97 | 98 |
99 | 100 | ### Contributing 101 | 102 | Any kind of contributions to `qxresearch-event-1` are welcome. Contributions are what make the open source community such an amazing place to learn, inspire, and create. 103 | 104 | 1. [**Fork**](https://github.com/qxresearch/qxresearch-event-1/fork) the Project 105 | 2. Create your Feature Branch 106 | 3. Commit your Changes 107 | 4. Push to the Branch 108 | 5. Open a [**Pull Request**](https://github.com/qxresearch/qxresearch-event-1/pulls) 109 | 110 | 111 |
112 | 113 | 114 | ### Do you want to join @qxresearch and contribute to new projects? 115 | 116 | * Fill up this [Form](https://forms.gle/tqR8Pa6j27CHaorT6) 117 | * Subscribe to support : [@qxresearch](https://www.youtube.com/qxresearch) 118 | 119 |
120 | 121 | 122 | 123 | trackgit-views 124 | 125 | -------------------------------------------------------------------------------- /passpdf.py: -------------------------------------------------------------------------------- 1 | from PyPDF2 import PdfFileWriter, PdfFileReader 2 | import getpass 3 | 4 | # Making an instance of the PdfFileWriter class and storing it in a variable 5 | writer = PdfFileWriter() 6 | 7 | 8 | # Explicitly ask the user what the name of the original file is 9 | pdf_name = input('Pleast type in the name of the pdf file suffixed with its extention: ') 10 | 11 | # Making an instance of the PdfFileReader class with the original file as an argument 12 | original_file = PdfFileReader(pdf_name) 13 | 14 | # Copies the content of the original file to the writer variable 15 | for page in range(original_file.numPages): 16 | writer.addPage(original_file.getPage(page)) 17 | 18 | # Retrieve a preferred password from the user 19 | password = getpass.getpass(prompt = "Set a Password: ") 20 | 21 | # Encrypt the copy of the original file 22 | writer.encrypt(password) 23 | 24 | # Opens a new pdf (write brinary permission) and writes the content of the 'writer' into it 25 | with open('secured.pdf', 'wb') as f: 26 | writer.write(f) 27 | f.close() 28 | --------------------------------------------------------------------------------