├── .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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------