
Aplikasi Pengingat Ulang Tahun
Program memeriksa apakah seseorang berulang tahun dalam seminggu dan secara opsional mengirimkan pengingat ke seluruh grup. Ini melibatkan fungsionalitas yang diperlukan untuk memvalidasi input dan mengirim email. Repositori ini berisi 2 modul di mana bdayreminder.py melibatkan fungsi ini sementara tests.py menguji paket. Silakan merujuk ke persyaratan untuk mengimpor perpustakaan, paket, dan modul tambahan sebelum melihat penggunaan aplikasi atau fungsi, tes, pekerjaan cron, dan bidang lainnya.
Python 3.9.12 diperlukan untuk menjalankan modul paket dengan benar, pustaka yang diimpor dan fungsi yang ditentukan. Impor beberapa perpustakaan seperti Dotnet, Pytest untuk beberapa nama juga diperlukan. Beberapa versi yang diperlukan ditemukan di sini sementara yang tidak disebutkan datang dengan versi python bekas. Juga memeriksa variabel lingkungan dan otentikasi sebelum melanjutkan lebih lanjut. Untuk penggunaan program yang tepat, Anda mungkin perlu menjalankan Python3 daripada yang diusulkan Python seperti yang ditunjukkan dalam penggunaan. 1
1 Python atau Python3 tergantung pada cara Anda memasang ular python di mesin Anda.
Untuk dapat mengirim email, Anda perlu mengatur variabel lingkungan. Untuk melakukan ini secara lokal, silakan buat file .env dan tambahkan dua variabel env ke dalamnya dengan nilai yang valid, seperti ini: 1
USR=<youremail>
PSW=<yourpassword> or <token>
1 Jika Anda akan mengirim dari Gmail maka untuk mengatur kata sandi variabel lingkungan yang tepat, Anda perlu membuat token. Info lebih lanjut tentang ini di bawah bagian otentikasi.
Untuk dapat mengirim email setelah mengatur email Gmail di variabel lingkungan, Anda perlu membuat token. Detail tentang cara melakukannya dapat ditemukan di sini.
Setelah persyaratan dipenuhi, paket aplikasi ditetapkan di direktori dan terminal Anda dijalankan, Anda memiliki empat opsi 1,2,3 :
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
'''
'''
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
>>> python bdayreminder.py <data_file_path> 3
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 3
Please choose either 1 or 2
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
1 <data_file_path> harus terlihat seperti ini - dataset/data_20.csv, tetapi di direktori Anda. Jalur lengkap bagi saya adalah/pengguna/aurimasnausedas/documents/python/birthdayreminderapp/datasets/data_20.csv
2 Modul utama mengambil dua argumen saat dijalankan dari konsol.
3 Data yang digunakan untuk contoh adalah data_20.csv pada tanggal 23 Juni 2022.
Tinjauan fungsi yang ditemukan di dalam modul - bdayreminder.py :
Penjelasan mendalam tentang fungsi dapat ditemukan di dalam modul - bdayreminder.py.
Ada tiga kemungkinan set data untuk digunakan. Ini adalah data_20 dari 20 penerima, data_50 dari 50 penerima dan data_80 dari 80 penerima.
Tinjauan fungsi yang ditemukan di dalam modul - tests.py:
Dengan menavigasi ke folder program/aplikasi di mana ia diekstraksi - ulang tahun ReminderApp - satu folder sebelum di mana tests.py diadakan dan seseorang dapat menjalankan perintah uji ini:
>>> pyflakes .
>>> pyflakes Tests/tests.py
>>> python -m pytest Tests/tests.py
Mungkin ada beberapa kesalahan seperti:
>>> python bdayreminder.py Datasets/data_20.json 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 215, in run
raise Exception('ERROR: Wrong data format file')
Exception: ERROR: Wrong data format file
>>> python bdayreminder.py Datasets/data_13.csv 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 199, in run
raise Exception('ERROR: File doesn't exist')
Exception: ERROR: File doesn't exist
>>> python bdayreminder.py Datasets/data_20.csv versada
Argument passed not an integer
Masih ada lagi yang paling umum.
Untuk membangun pekerjaan cron di Mac Terminal Run:
>>> crontab -e
Sintaks untuk cronjob saat memasuki terminal bisa terlihat seperti ini: 1,2,3
>>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2
[Optional] >>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2 >> Public/birthdays.txt
1 <directory_to_app> - harus menjadi direktori di mana folder ulang tahun rigereminderApp seperti/pengguna/aurimasnausedas/dokumen/python/ulang tahunreminderapp
2 <Directory_to_python> harus berada di tempat Anda menginstal python pada mesin Anda seperti/pengguna/aurimasnausedas/opt/miniconda3/envs/simetris/bin/python
3 <date_file_path> harus menjadi dataset di direktori aplikasi seperti di/user/aurimasnausedas/documents/python/breatereminderapp dengan mengaturnya ke dataset/data_20.csv
Kustomisasi sintaks untuk pekerjaan cron dapat diperiksa di sini.
Folder publik berisi tiga file:
Logo aplikasi pengingat ulang tahun dapat ditemukan di sini.
Lisensi MIT