Integrated with Google Drive
Can automate save file or upload file from registration form to Google Drive.
Can send invoice registration document to Gmail.
Integrated with Discord Bot
Can send notification and file while user registered in app.
arabic-reshaper==2.1.3
asgiref==3.2.10
asn1crypto==1.5.1
cachetools==4.2.4
certifi==2022.6.15
cffi==1.15.1
charset-normalizer==2.1.1
click==8.1.3
cryptography==37.0.4
cssselect2==0.6.0
Django==3.1.1
django-environ==0.9.0
django-googledrive-storage==1.6.0
django-multiselectfield==0.1.12
djongo==1.3.6
dnspython==2.2.1
future==0.18.2
google-api-core==2.10.0
google-api-python-client==2.60.0
google-auth==1.35.0
google-auth-httplib2==0.1.0
googleapis-common-protos==1.56.4
gunicorn==20.0.4
html5lib==1.1
httplib2==0.20.4
idna==3.3
lxml==4.9.1
mock==4.0.3
mongoengine==0.24.2
oauth2client==4.1.3
oscrypto==1.3.0
Pillow==9.2.0
protobuf==4.21.5
psycopg2==2.9.3
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
PyDrive==1.3.1
pyHanko==0.13.2
pyhanko-certvalidator==0.19.5
pymongo==3.12.3
pyparsing==3.0.9
PyPDF3==1.0.6
python-bidi==0.4.2
python-dateutil==2.8.2
python-snappy==0.6.1
pytz==2022.2.1
pytz-deprecation-shim==0.1.0.post0
PyYAML==6.0
qrcode==7.3.1
reportlab==3.6.11
requests==2.28.1
rsa==4.9
six==1.16.0
sqlparse==0.2.4
svglib==1.4.1
tinycss2==1.1.1
tqdm==4.64.0
tzdata==2022.2
tzlocal==4.2
uritemplate==4.1.1
uritools==4.0.0
urllib3==1.26.12
webencodings==0.5.1
xhtml2pdf==0.2.8
└── FormRegistration
├── FormRegistration
│ ├── __init__.py
│ ├── asgi.py
│ ├── setting.py
│ ├── urls.py
│ ├── wsgi.py
├── FormRegistrationApp
│ ├── migrations
│ ├── templates
│ │ ├── FormRegistrationApp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── models.py
│ ├── urls.py
│ ├── views.py
│ └── test.py
├── client_secret.json
├── db.sqlite3
├── manage.py
├── requirements.txt
└── README.md
class RegistrationData(models.Model):
nomor_invoice = models.CharField(max_length=254, unique=True)
tanggal = models.CharField(max_length=254)
email = models.EmailField(max_length=254)
nama_lengkap = models.CharField(max_length=254)
nomor_telefon = models.CharField(max_length=254)
program_studi = models.CharField(max_length=254)
universitas = models.CharField(max_length=254)
informasi_mengenai_torche = models.CharField(max_length=500)
metode_pembelajaran = models.CharField(max_length=254)
mata_kuliah = models.CharField(max_length=254)
materi = models.TextField()
aplikasi_simulasi = models.CharField(max_length=254)
jumlah_sesi_yang_diikuti = models.CharField(max_length=254)
jumlah_peserta = models.CharField(max_length=10)
lampiran_file_siswa = models.FileField(upload_to='lampiran_siswa/%Y/%m/%d/', storage=gd_storage)
lampiran_invoice = models.URLField(max_length=1000)
lampiran_surat_tugas = models.URLField(max_length=1000)
sesi_hari = models.TextField()
sesi_jam = models.TextField()
biaya = models.CharField(max_length=254)
notes_for_tutor = models.TextField()
referral_code = models.CharField(max_length=254)
email_anggota_1 = models.CharField(max_length=1000)
nama_lengkap_anggota_1 = models.CharField(max_length=1000)
nomor_telefon_anggota_1 = models.CharField(max_length=1000)
akun_discord_anggota_1 = models.CharField(max_length=1000)
email_anggota_2 = models.CharField(max_length=1000)
nama_lengkap_anggota_2 = models.CharField(max_length=1000)
nomor_telefon_anggota_2 = models.CharField(max_length=1000)
akun_discord_anggota_2 = models.CharField(max_length=1000)
email_anggota_3 = models.CharField(max_length=1000)
nama_lengkap_anggota_3 = models.CharField(max_length=1000)
nomor_telefon_anggota_3 = models.CharField(max_length=1000)
akun_discord_anggota_3 = models.CharField(max_length=1000)
email_anggota_4 = models.CharField(max_length=1000)
nama_lengkap_anggota_4 = models.CharField(max_length=1000)
nomor_telefon_anggota_4 = models.CharField(max_length=1000)
akun_discord_anggota_4 = models.CharField(max_length=1000)
email_anggota_5 = models.CharField(max_length=1000)
nama_lengkap_anggota_5 = models.CharField(max_length=1000)
nomor_telefon_anggota_5 = models.CharField(max_length=1000)
akun_discord_anggota_5 = models.CharField(max_length=1000)
email_anggota_6 = models.CharField(max_length=1000)
nama_lengkap_anggota_6 = models.CharField(max_length=1000)
nomor_telefon_anggota_6 = models.CharField(max_length=1000)
akun_discord_anggota_6 = models.CharField(max_length=1000)
email_anggota_7 = models.CharField(max_length=1000)
nama_lengkap_anggota_7 = models.CharField(max_length=1000)
nomor_telefon_anggota_7 = models.CharField(max_length=1000)
akun_discord_anggota_7 = models.CharField(max_length=1000)
email_anggota_8 = models.CharField(max_length=1000)
nama_lengkap_anggota_8 = models.CharField(max_length=1000)
nomor_telefon_anggota_8 = models.CharField(max_length=1000)
akun_discord_anggota_8 = models.CharField(max_length=1000)
email_anggota_9 = models.CharField(max_length=1000)
nama_lengkap_anggota_9 = models.CharField(max_length=1000)
nomor_telefon_anggota_9 = models.CharField(max_length=1000)
akun_discord_anggota_9 = models.CharField(max_length=1000)
email_anggota_10 = models.CharField(max_length=1000)
nama_lengkap_anggota_10 = models.CharField(max_length=1000)
nomor_telefon_anggota_10 = models.CharField(max_length=1000)
akun_discord_anggota_10 = models.CharField(max_length=1000)
created_on = models.DateTimeField(auto_now_add=True)
class ReferralCode(models.Model):
referral_code = models.CharField(max_length=254)
created_on = models.DateTimeField(auto_now_add=True)
line 22, webhook = DiscordWebhook(url='<webhook_url>', username="<username>")
line 5, permission = GoogleDriveFilePermission(GoogleDrivePermissionRole.READER, GoogleDrivePermissionType.USER, "<sender_email>",)
line 23, SECRET_KEY = '<secret_key>'
line 43, GOOGLE_DRIVE_STORAGE_JSON_KEY_FILE = os.path.join(BASE_DIR,'<client_secrets.json path>')
line 140, EMAIL_SENDER = '<sender_email>'
line 141, EMAIL_HOST_USER = "<user_email>"
line 142, EMAIL_HOST_PASSWORD = "<password_application>"
file Formregistration/settings.py, line 140
file Formregistration/settings.py, line 79
pip install requirements.txt
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver