├── accounts ├── __init__.py ├── migrations │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── 0001_initial.cpython-36.pyc │ └── 0001_initial.py ├── tests.py ├── media │ ├── 1.jpg │ └── profile_pics │ │ ├── 1.jpg │ │ └── adult-doctor-girl-355934.jpg ├── apps.py ├── static │ ├── images │ │ ├── 1.jpg │ │ ├── 10.jpg │ │ ├── tick.png │ │ ├── uci.JPG │ │ ├── anirudh.jpg │ │ ├── heart.jpg │ │ ├── image 3.jpg │ │ ├── image1.jpg │ │ ├── image2.jpg │ │ ├── jupyter.png │ │ ├── mansi1.jpg │ │ ├── deepanshi.jpg │ │ ├── mansukh1.jpg │ │ └── about_image1.jpg │ ├── fonts │ │ ├── fontello.eot │ │ ├── fontello.ttf │ │ ├── fontello.woff │ │ ├── fontomas-webfont.eot │ │ ├── fontomas-webfont.ttf │ │ ├── fontomas-webfont.woff │ │ ├── fontello.svg │ │ └── fontomas-webfont.svg │ ├── video │ │ └── laptop.mp4 │ ├── js │ │ └── jquery.vide.min.js │ └── css │ │ ├── popuo-box.css │ │ ├── style.css │ │ ├── style1.css │ │ ├── style2.css │ │ └── jquery-ui.css ├── __pycache__ │ ├── admin.cpython-36.pyc │ ├── forms.cpython-36.pyc │ ├── urls.cpython-36.pyc │ ├── views.cpython-36.pyc │ ├── __init__.cpython-36.pyc │ └── models.cpython-36.pyc ├── admin.py ├── urls.py ├── models.py ├── forms.py ├── templates │ └── accounts │ │ ├── login.html │ │ ├── register.html │ │ ├── profileview.html │ │ └── about.html └── views.py ├── predict_risk ├── __init__.py ├── migrations │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── 0001_initial.cpython-36.pyc │ │ ├── 0002_auto_20190228_2016.cpython-36.pyc │ │ └── 0003_auto_20190228_2026.cpython-36.pyc │ ├── 0002_auto_20190228_2016.py │ ├── 0003_auto_20190228_2026.py │ └── 0001_initial.py ├── tests.py ├── apps.py ├── production │ ├── svc_model.pkl │ ├── standard_scalar.pkl │ ├── naive_bayes_model.pkl │ ├── decision_tree_model.pkl │ ├── Logistic_regression_model.pkl │ └── LinearSVC.pkl ├── __pycache__ │ ├── urls.cpython-36.pyc │ ├── admin.cpython-36.pyc │ ├── forms.cpython-36.pyc │ ├── models.cpython-36.pyc │ ├── views.cpython-36.pyc │ ├── __init__.cpython-36.pyc │ └── data_provider.cpython-36.pyc ├── machine_learning_models │ ├── Log_ROC.png │ ├── newdata.csv │ ├── naive_bayes.py │ ├── decision_tree.py │ ├── README.md │ ├── svc.py │ ├── logistic_regression.py │ └── HealthData.csv ├── urls.py ├── admin.py ├── forms.py ├── data_provider.py ├── models.py ├── views.py └── templates │ └── predict.html ├── heart_disease_prediction ├── __init__.py ├── __pycache__ │ ├── urls.cpython-36.pyc │ ├── wsgi.cpython-36.pyc │ ├── __init__.cpython-36.pyc │ └── settings.cpython-36.pyc ├── wsgi.py ├── urls.py └── settings.py ├── db.sqlite3 ├── screenshots ├── Login.png ├── About us.png ├── Signup.png ├── User database.png ├── predict_page.png ├── Cleverland_dataset.JPG ├── django-admin-login.png ├── prediction_result.png ├── predictions database.png ├── django_admin_dashboard.png ├── prediction_page_filled.png └── user_profile_database.png ├── .gitattributes ├── manage.py ├── requirements.txt ├── README.md └── dotfile.dot /accounts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /predict_risk/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /accounts/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /heart_disease_prediction/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /predict_risk/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /accounts/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/db.sqlite3 -------------------------------------------------------------------------------- /predict_risk/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /accounts/media/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/media/1.jpg -------------------------------------------------------------------------------- /screenshots/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/Login.png -------------------------------------------------------------------------------- /screenshots/About us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/About us.png -------------------------------------------------------------------------------- /screenshots/Signup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/Signup.png -------------------------------------------------------------------------------- /accounts/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AccountsConfig(AppConfig): 5 | name = 'accounts' 6 | -------------------------------------------------------------------------------- /accounts/static/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/1.jpg -------------------------------------------------------------------------------- /accounts/static/images/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/10.jpg -------------------------------------------------------------------------------- /screenshots/User database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/User database.png -------------------------------------------------------------------------------- /screenshots/predict_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/predict_page.png -------------------------------------------------------------------------------- /accounts/static/images/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/tick.png -------------------------------------------------------------------------------- /accounts/static/images/uci.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/uci.JPG -------------------------------------------------------------------------------- /accounts/media/profile_pics/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/media/profile_pics/1.jpg -------------------------------------------------------------------------------- /accounts/static/fonts/fontello.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontello.eot -------------------------------------------------------------------------------- /accounts/static/fonts/fontello.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontello.ttf -------------------------------------------------------------------------------- /accounts/static/images/anirudh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/anirudh.jpg -------------------------------------------------------------------------------- /accounts/static/images/heart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/heart.jpg -------------------------------------------------------------------------------- /accounts/static/images/image 3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/image 3.jpg -------------------------------------------------------------------------------- /accounts/static/images/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/image1.jpg -------------------------------------------------------------------------------- /accounts/static/images/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/image2.jpg -------------------------------------------------------------------------------- /accounts/static/images/jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/jupyter.png -------------------------------------------------------------------------------- /accounts/static/images/mansi1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/mansi1.jpg -------------------------------------------------------------------------------- /accounts/static/video/laptop.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/video/laptop.mp4 -------------------------------------------------------------------------------- /predict_risk/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class PredictRiskConfig(AppConfig): 5 | name = 'predict_risk' 6 | -------------------------------------------------------------------------------- /screenshots/Cleverland_dataset.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/Cleverland_dataset.JPG -------------------------------------------------------------------------------- /screenshots/django-admin-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/django-admin-login.png -------------------------------------------------------------------------------- /screenshots/prediction_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/prediction_result.png -------------------------------------------------------------------------------- /accounts/static/fonts/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontello.woff -------------------------------------------------------------------------------- /accounts/static/images/deepanshi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/deepanshi.jpg -------------------------------------------------------------------------------- /accounts/static/images/mansukh1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/mansukh1.jpg -------------------------------------------------------------------------------- /screenshots/predictions database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/predictions database.png -------------------------------------------------------------------------------- /accounts/static/images/about_image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/images/about_image1.jpg -------------------------------------------------------------------------------- /predict_risk/production/svc_model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/production/svc_model.pkl -------------------------------------------------------------------------------- /screenshots/django_admin_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/django_admin_dashboard.png -------------------------------------------------------------------------------- /screenshots/prediction_page_filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/prediction_page_filled.png -------------------------------------------------------------------------------- /screenshots/user_profile_database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/screenshots/user_profile_database.png -------------------------------------------------------------------------------- /accounts/__pycache__/admin.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/admin.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/__pycache__/forms.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/forms.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/__pycache__/urls.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/urls.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/__pycache__/views.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/views.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/__pycache__/models.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/__pycache__/models.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/static/fonts/fontomas-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontomas-webfont.eot -------------------------------------------------------------------------------- /accounts/static/fonts/fontomas-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontomas-webfont.ttf -------------------------------------------------------------------------------- /accounts/static/fonts/fontomas-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/static/fonts/fontomas-webfont.woff -------------------------------------------------------------------------------- /predict_risk/__pycache__/urls.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/urls.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/production/standard_scalar.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/production/standard_scalar.pkl -------------------------------------------------------------------------------- /predict_risk/__pycache__/admin.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/admin.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/__pycache__/forms.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/forms.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/__pycache__/models.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/models.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/__pycache__/views.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/views.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/production/naive_bayes_model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/production/naive_bayes_model.pkl -------------------------------------------------------------------------------- /predict_risk/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/Log_ROC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/machine_learning_models/Log_ROC.png -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/newdata.csv: -------------------------------------------------------------------------------- 1 | age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal 2 | 65,1,0,145,233,1,2,150,1,2.3,3,0,7 3 | -------------------------------------------------------------------------------- /predict_risk/production/decision_tree_model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/production/decision_tree_model.pkl -------------------------------------------------------------------------------- /predict_risk/__pycache__/data_provider.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/__pycache__/data_provider.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/production/Logistic_regression_model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/production/Logistic_regression_model.pkl -------------------------------------------------------------------------------- /accounts/media/profile_pics/adult-doctor-girl-355934.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/media/profile_pics/adult-doctor-girl-355934.jpg -------------------------------------------------------------------------------- /accounts/migrations/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/migrations/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /heart_disease_prediction/__pycache__/urls.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/heart_disease_prediction/__pycache__/urls.cpython-36.pyc -------------------------------------------------------------------------------- /heart_disease_prediction/__pycache__/wsgi.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/heart_disease_prediction/__pycache__/wsgi.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/migrations/__pycache__/0001_initial.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/accounts/migrations/__pycache__/0001_initial.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/migrations/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/migrations/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | app_name='predict' 4 | urlpatterns=[ 5 | url(r'^(?P\d+)$',views.PredictRisk,name='predict') 6 | ] 7 | -------------------------------------------------------------------------------- /heart_disease_prediction/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/heart_disease_prediction/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /heart_disease_prediction/__pycache__/settings.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/heart_disease_prediction/__pycache__/settings.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/migrations/__pycache__/0001_initial.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/migrations/__pycache__/0001_initial.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/migrations/__pycache__/0002_auto_20190228_2016.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/migrations/__pycache__/0002_auto_20190228_2016.cpython-36.pyc -------------------------------------------------------------------------------- /predict_risk/migrations/__pycache__/0003_auto_20190228_2026.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansi1597/Heart-disease-prediction/HEAD/predict_risk/migrations/__pycache__/0003_auto_20190228_2026.cpython-36.pyc -------------------------------------------------------------------------------- /accounts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from accounts.models import UserProfileInfo 3 | 4 | class UserProfile(admin.ModelAdmin): 5 | list_display = ('user', 'profile_pic') 6 | admin.site.register(UserProfileInfo,UserProfile) 7 | # Register your models here. 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | accounts/static/* linguist-vendored 2 | # Source files 3 | # ============ 4 | *.pxd text diff=python 5 | *.py text diff=python 6 | *.py3 text diff=python 7 | *.pyw text diff=python 8 | *.pyx text diff=python 9 | 10 | # Binary files 11 | # ============ 12 | *.db binary 13 | *.p binary 14 | *.pkl binary 15 | *.pyc binary 16 | *.pyd binary 17 | *.pyo binary 18 | -------------------------------------------------------------------------------- /accounts/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | app_name = 'accounts' 4 | urlpatterns=[ 5 | url(r'^register/$', views.register, name='register'), 6 | url(r'^logout/$',views.user_logout,name='logout'), 7 | url(r'^profile/(?P\d+)/$', views.ProfileDetailView.as_view(), name='profile'), 8 | #url(r'^profile/(?P\d+)/edit/$', views.profile_update, name='edit_profile'), 9 | ] 10 | -------------------------------------------------------------------------------- /predict_risk/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from predict_risk.models import Predictions 3 | from django import forms 4 | 5 | class Prediction(admin.ModelAdmin): 6 | list_display=('profile','age','sex','cp','resting_bp','bloodcholesterol','fasting_blood_sugar','resting_ecg','max_heart_rate','exercise_induced_angina','st_depression','st_slope','number_of_vessels','thallium_scan_results','predicted_on','num') 7 | admin.site.register(Predictions,Prediction) 8 | # Register your models here. 9 | -------------------------------------------------------------------------------- /accounts/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.contrib.auth.models import User 3 | from django.conf.urls import url 4 | from django.shortcuts import resolve_url 5 | 6 | 7 | class UserProfileInfo(models.Model): 8 | user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') 9 | profile_pic = models.ImageField(upload_to='profile_pics', default="1.jpg") 10 | 11 | def __str__(self): 12 | return self.user.username 13 | 14 | # Create your models here. 15 | -------------------------------------------------------------------------------- /heart_disease_prediction/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for heart_disease_prediction project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'heart_disease_prediction.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /predict_risk/migrations/0002_auto_20190228_2016.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.7 on 2019-02-28 14:46 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('predict_risk', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='predictions', 15 | name='fasting_blood_sugar', 16 | field=models.IntegerField(choices=[(1, '> 120 mg/dl'), (0, '< 120 mg/dl')], default=0), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == '__main__': 6 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'heart_disease_prediction.settings') 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /predict_risk/migrations/0003_auto_20190228_2026.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.7 on 2019-02-28 14:56 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('predict_risk', '0002_auto_20190228_2016'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='predictions', 15 | name='cp', 16 | field=models.IntegerField(choices=[(0, 'None'), (1, 'Typical Angina'), (2, 'Atypical Angina'), (3, 'Non-Angina'), (4, 'Asymptomatic')], default=0), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # This file may be used to create an environment using: 2 | # $ conda create --name --file 3 | # platform: win-64 4 | certifi==2022.12.7 5 | daal 6 | daal4py 7 | django==2.2.28 8 | intel-openmp 9 | libopencv 10 | libpng-bins 11 | libtiff 12 | mkl 13 | mkl_fft==1.0.6 14 | mkl-random 15 | numpy==1.22.0 16 | opencv-python 17 | openssl-python 18 | pillow==9.3.0 19 | pip==21.1 20 | pydot==1.4.1 21 | pyparsing==2.2.0 22 | graphviz 23 | pytz==2018.4 24 | scikit-learn==0.20.0 25 | scipy==1.1.0 26 | setuptools==65.5.1 27 | six==1.12.0 28 | simple-sqlite 29 | tbb 30 | tbb4py 31 | Tcl 32 | tk 33 | vc 34 | wheel==0.38.1 35 | wincertstore==0.2 36 | python-xz 37 | -------------------------------------------------------------------------------- /accounts/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.7 on 2019-02-22 14:20 2 | 3 | from django.conf import settings 4 | from django.db import migrations, models 5 | import django.db.models.deletion 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | migrations.swappable_dependency(settings.AUTH_USER_MODEL), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='UserProfileInfo', 19 | fields=[ 20 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 21 | ('profile_pic', models.ImageField(default='1.jpg', upload_to='profile_pics')), 22 | ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)), 23 | ], 24 | ), 25 | ] 26 | -------------------------------------------------------------------------------- /predict_risk/production/LinearSVC.pkl: -------------------------------------------------------------------------------- 1 | �csklearn.svm.classes 2 | LinearSVC 3 | q)�q}q(Xdualq�X fit_interceptq�Xclasses_qcsklearn.externals.joblib.numpy_pickle 4 | NumpyArrayWrapper 5 | q)�q}q(Xdtypeq cnumpy 6 | dtype 7 | q 8 | Xi8q KK�q Rq (KX 2 | 3 | 4 | Copyright (C) 2015 by original authors @ fontello.com 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /heart_disease_prediction/urls.py: -------------------------------------------------------------------------------- 1 | """heart_disease_prediction URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.1/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path 18 | from django.conf.urls import url,include 19 | from accounts.views import Aboutpageview 20 | from accounts import views 21 | from heart_disease_prediction import settings 22 | 23 | from django.contrib.staticfiles.urls import static 24 | from django.contrib.staticfiles.urls import staticfiles_urlpatterns 25 | 26 | urlpatterns = [ 27 | path('admin/', admin.site.urls), 28 | url(r'^$',views.user_login,name='user_login'), 29 | url(r'^about/',Aboutpageview.as_view(),name='about'), 30 | url(r'^accounts/',include('accounts.urls')), 31 | url(r'^predict/',include('predict_risk.urls')), 32 | ] 33 | 34 | 35 | urlpatterns += staticfiles_urlpatterns() 36 | urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 37 | -------------------------------------------------------------------------------- /predict_risk/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from predict_risk.models import Predictions 3 | 4 | class Predict_Form(forms.ModelForm): 5 | class Meta: 6 | model = Predictions 7 | fields = ('age','sex','cp','resting_bp','serum_cholesterol','fasting_blood_sugar','resting_ecg','max_heart_rate', 8 | 'exercise_induced_angina','st_depression','st_slope','number_of_vessels','thallium_scan_results') 9 | widgets = {'age': forms.TextInput(attrs={'class': 'form-control'}), 10 | 'sex': forms.Select(attrs={'class': 'form-control'}), 11 | 'cp': forms.Select(attrs={'class': 'form-control'}), 12 | 'resting_bp':forms.TextInput(attrs={'class': 'form-control'}), 13 | 'serum_cholesterol':forms.TextInput(attrs={'class': 'form-control'}), 14 | 'fasting_blood_sugar':forms.Select(attrs={'class': 'form-control'}), 15 | 'resting_ecg':forms.Select(attrs={'class': 'form-control'}), 16 | 'max_heart_rate':forms.TextInput(attrs={'class': 'form-control'}), 17 | 'exercise_induced_angina':forms.Select(attrs={'class': 'form-control'}), 18 | 'st_depression':forms.TextInput(attrs={'class': 'form-control'}), 19 | 'st_slope':forms.Select(attrs={'class': 'form-control'}), 20 | 'number_of_vessels':forms.Select(attrs={'class': 'form-control'}), 21 | 'thallium_scan_results':forms.Select(attrs={'class': 'form-control'}), 22 | } 23 | -------------------------------------------------------------------------------- /predict_risk/data_provider.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pickle 3 | from sklearn.externals import joblib 4 | 5 | config = { 6 | 'heart': { 7 | 'SVC': 'production/svc_model.pkl', 8 | 'LogisticRegression': 'production/Logistic_regression_model.pkl', 9 | 'NaiveBayes': 'production/naive_bayes_model.pkl', 10 | 'DecisionTree':'production/decision_tree_model.pkl', 11 | 'scalar_file': 'production/standard_scalar.pkl', 12 | }} 13 | 14 | dir = os.path.dirname(__file__) 15 | 16 | def GetJobLibFile(filepath): 17 | if os.path.isfile(os.path.join(dir, filepath)): 18 | return joblib.load(os.path.join(dir, filepath)) 19 | else: 20 | print("file does not exit") 21 | 22 | def GetPickleFile(filepath): 23 | if os.path.isfile(os.path.join(dir, filepath)): 24 | return pickle.load( open(os.path.join(dir, filepath), "rb" ) ) 25 | return None 26 | 27 | def GetStandardScalarForHeart(): 28 | return GetPickleFile(config['heart']['scalar_file']) 29 | 30 | def GetAllClassifiersForHeart(): 31 | return (GetSVCClassifierForHeart(),GetLogisticRegressionClassifierForHeart(),GetNaiveBayesClassifierForHeart(),GetDecisionTreeClassifierForHeart()) 32 | 33 | def GetSVCClassifierForHeart(): 34 | return GetJobLibFile(config['heart']['SVC']) 35 | 36 | def GetLogisticRegressionClassifierForHeart(): 37 | return GetJobLibFile(config['heart']['LogisticRegression']) 38 | 39 | def GetNaiveBayesClassifierForHeart(): 40 | return GetJobLibFile(config['heart']['NaiveBayes']) 41 | 42 | def GetDecisionTreeClassifierForHeart(): 43 | return GetJobLibFile(config['heart']['DecisionTree']) 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Heart Disease Prediction System using machine learning 2 | >The aim of this project is to predict heart disease using data mining techniques and machine learning algorithms.This project implements 4 classificiation models using scikit-learn: Logistic Regression, Naïve Bayes, Support Vector Classifier and Decision Tree Model to investigate their performance on heart disease datasets obtained from the UCI data repository. 3 | 4 | All the machine learning features can be viewed here: [Machine Learning features](predict_risk/machine_learning_models) 5 | 6 | It supports following features: 7 | 8 | * Login/ Sign Up 9 | * Viewing and Editing Profile 10 | * User can enter the values of various parameters on the basis of which his risk factor will be calculated using machine learning algorithms. 11 | 12 |

13 | 14 |

15 | 16 |

17 | 18 |

19 | 20 |

21 | 22 |

23 | 24 |

25 | 26 |

27 | 28 | 29 |

30 | 31 |

32 | 33 | Quick start 34 | ----------- 35 | 1. (optional) create virtual env ex. mkvirtualenv mytest_env 36 | 2. pip install -r requirements.txt 37 | 3. python manage.py migrate 38 | 4. python manage.py runserver 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /accounts/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from .models import UserProfileInfo 3 | from django.contrib.auth.models import User 4 | 5 | class UserForm(forms.ModelForm): 6 | username = forms.CharField(widget=forms.TextInput( 7 | attrs={'class': 'form-control', 'placeholder': 'Enter username'} 8 | ), required=True, max_length=50) 9 | 10 | email = forms.CharField(widget=forms.EmailInput( 11 | attrs={'class': 'form-control', 'placeholder': 'Enter Email Id'} 12 | ), required=True, max_length=50) 13 | 14 | password = forms.CharField(widget=forms.PasswordInput( 15 | attrs={'class': 'form-control', 'placeholder': 'Enter password'} 16 | ), required=True, max_length=50) 17 | 18 | confirm_password = forms.CharField(widget=forms.PasswordInput( 19 | attrs={'class': 'form-control', 'placeholder': 'Confirm password'} 20 | ), required=True, max_length=50) 21 | 22 | class Meta: 23 | model = User 24 | fields = ('username', 'email', 'password') 25 | 26 | def clean(self): 27 | cleaned_data = super(UserForm, self).clean() 28 | password = cleaned_data.get("password") 29 | confirm_password = cleaned_data.get("confirm_password") 30 | 31 | if password != confirm_password: 32 | raise forms.ValidationError( 33 | "Password and Confirm password does not match" 34 | ) 35 | 36 | 37 | class UserProfileInfoForm(forms.ModelForm): 38 | class Meta: 39 | model = UserProfileInfo 40 | fields = ('profile_pic',) 41 | 42 | 43 | class UpdateProfileForm(forms.ModelForm): 44 | class Meta: 45 | model = User 46 | fields = ('username', 'first_name', 'last_name', 'email') 47 | widgets = {'username': forms.TextInput(attrs={'readonly': 'True'})} 48 | -------------------------------------------------------------------------------- /predict_risk/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from accounts.models import UserProfileInfo 3 | from django.utils import timezone 4 | from django.urls import reverse 5 | # Create your models here. 6 | sex_choices=((0, 'Female'),(1, 'Male')) 7 | cp_choice=((0,'None'),(1, 'Typical Angina'),(2, 'Atypical Angina'),(3, 'Non-Angina'),(4, 'Asymptomatic')) 8 | fasting_blood_sugar_choices=((1,'> 120 mg/dl'),((0,'< 120 mg/dl'))) 9 | resting_ecg_choices=((0, 'Normal'),(1, 'Having ST-T wave abnormality'),(2, 'hypertrophy')) 10 | exercise_induced_angina_choices=((0, 'No'),(1, 'Yes')) 11 | st_slope_choices=((1, 'Upsloping'),(2, 'Flat'),(3, 'Down Sloping')) 12 | number_of_vessels_choices=((0, 'None'),(1, 'One'),(2, 'Two'),(3, 'Three')) 13 | thallium_scan_results_choices=((3, 'Normal'),(6, 'Fixed Defect'),(7, 'Reversible Defect')) 14 | 15 | class Predictions(models.Model): 16 | profile = models.ForeignKey(UserProfileInfo, on_delete=models.CASCADE, related_name='predict') 17 | age = models.IntegerField() 18 | sex = models.IntegerField(choices=sex_choices, default=0) 19 | cp = models.IntegerField(choices=cp_choice,default=0) 20 | resting_bp = models.IntegerField() 21 | serum_cholesterol = models.IntegerField() 22 | fasting_blood_sugar = models.IntegerField(choices=fasting_blood_sugar_choices,default=0) 23 | resting_ecg = models.IntegerField(choices=resting_ecg_choices,default=0) 24 | max_heart_rate = models.IntegerField() 25 | exercise_induced_angina = models.IntegerField(choices=exercise_induced_angina_choices,default=0) 26 | st_depression = models.DecimalField(max_digits=4, decimal_places=2) 27 | st_slope = models.IntegerField(choices=st_slope_choices) 28 | number_of_vessels = models.IntegerField(choices=number_of_vessels_choices) 29 | thallium_scan_results = models.IntegerField(choices=thallium_scan_results_choices) 30 | predicted_on = models.DateTimeField(default=timezone.now) 31 | num=models.IntegerField() 32 | 33 | def get_absolute_url(self): 34 | return reverse('predict:predict', kwargs={'pk': self.profile.pk}) 35 | -------------------------------------------------------------------------------- /accounts/templates/accounts/login.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Heart disease prediction 11 | 12 | 13 | 14 |
15 |
16 | 17 |
18 |

Heart Disease Prediction System

19 |
20 | 21 |
22 | 27 |
28 | 29 |
30 | 31 |
32 | {%if user.is_authenticated %} 33 |

You are already logged in !!

34 | 35 | {%else%} 36 |

Login Now

37 |
38 |
39 |
40 |
41 | {% csrf_token %} 42 |
43 | 44 |
45 |
46 | 47 |
48 |
49 | 50 |
51 |
52 |
53 |
54 |
55 |
56 | 57 |
58 | 59 | {% endif %} 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /predict_risk/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.7 on 2019-02-27 13:01 2 | 3 | from django.db import migrations, models 4 | import django.db.models.deletion 5 | import django.utils.timezone 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | ('accounts', '0001_initial'), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='Predictions', 19 | fields=[ 20 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 21 | ('age', models.IntegerField()), 22 | ('sex', models.IntegerField(choices=[(0, 'Female'), (1, 'Male')], default=0)), 23 | ('cp', models.IntegerField(choices=[(1, 'Typical Angina'), (2, 'Atypical Angina'), (3, 'Non-Angina'), (4, 'Asymptomatic')], default=1)), 24 | ('resting_bp', models.IntegerField()), 25 | ('serum_cholesterol', models.IntegerField()), 26 | ('fasting_blood_sugar', models.IntegerField(choices=[(1, 'true'), (2, 'false')], default=0)), 27 | ('resting_ecg', models.IntegerField(choices=[(0, 'Normal'), (1, 'Having ST-T wave abnormality'), (2, 'hypertrophy')], default=0)), 28 | ('max_heart_rate', models.IntegerField()), 29 | ('exercise_induced_angina', models.IntegerField(choices=[(0, 'No'), (1, 'Yes')], default=0)), 30 | ('st_depression', models.DecimalField(decimal_places=2, max_digits=4)), 31 | ('st_slope', models.IntegerField(choices=[(1, 'Upsloping'), (2, 'Flat'), (3, 'Down Sloping')])), 32 | ('number_of_vessels', models.IntegerField(choices=[(0, 'None'), (1, 'One'), (2, 'Two'), (3, 'Three')])), 33 | ('thallium_scan_results', models.IntegerField(choices=[(3, 'Normal'), (6, 'Fixed Defect'), (7, 'Reversible Defect')])), 34 | ('predicted_on', models.DateTimeField(default=django.utils.timezone.now)), 35 | ('num', models.IntegerField()), 36 | ('profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='predict', to='accounts.UserProfileInfo')), 37 | ], 38 | ), 39 | ] 40 | -------------------------------------------------------------------------------- /accounts/static/fonts/fontomas-webfont.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This is a custom SVG webfont generated by Font Squirrel. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/naive_bayes.py: -------------------------------------------------------------------------------- 1 | # Importing the libraries 2 | import numpy as np 3 | import matplotlib.pyplot as plt 4 | import pandas as pd 5 | 6 | # Importing the dataset 7 | dataset = pd.read_csv('HealthData.csv') 8 | X = dataset.iloc[:,:-1].values 9 | y = dataset.iloc[:, 13].values 10 | 11 | #handling missing data 12 | 13 | from sklearn.preprocessing import Imputer 14 | imputer=Imputer(missing_values='NaN',strategy='mean',axis=0) 15 | imputer=imputer.fit(X[:,11:13]) 16 | X[:,11:13]=imputer.transform(X[:,11:13]) 17 | 18 | 19 | 20 | # Splitting the dataset into the Training set and Test set 21 | from sklearn.model_selection import train_test_split 22 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.15, random_state = 0) 23 | 24 | # Feature Scaling 25 | from sklearn.preprocessing import StandardScaler 26 | sc = StandardScaler() 27 | X_train = sc.fit_transform(X_train) 28 | X_test = sc.transform(X_test) 29 | 30 | #EXPLORING THE DATASET 31 | import seaborn as sn 32 | sn.countplot(x='num',data=dataset) 33 | dataset.num.value_counts() 34 | 35 | 36 | # Fitting Naive Bayes to the Training set 37 | from sklearn.naive_bayes import GaussianNB 38 | classifier = GaussianNB() 39 | classifier.fit(X_train, y_train) 40 | 41 | from sklearn.externals import joblib 42 | 43 | #filename = 'naive_bayes_model.pkl' 44 | #joblib.dump(classifier,filename) 45 | 46 | # Predicting the Test set results 47 | y_pred = classifier.predict(X_test) 48 | 49 | #ACCURACY SCORE 50 | from sklearn.metrics import accuracy_score 51 | accuracy_score(y_test,y_pred) 52 | 53 | # Making the Confusion Matrix 54 | from sklearn.metrics import confusion_matrix 55 | cm = confusion_matrix(y_test, y_pred) 56 | 57 | 58 | #Interpretation: 59 | from sklearn.metrics import classification_report 60 | print(classification_report(y_test, y_pred)) 61 | 62 | 63 | #ROC 64 | from sklearn.metrics import roc_auc_score 65 | from sklearn.metrics import roc_curve 66 | logit_roc_auc = roc_auc_score(y_test, classifier.predict(X_test)) 67 | fpr, tpr, thresholds = roc_curve(y_test, classifier.predict_proba(X_test)[:,1]) 68 | plt.figure() 69 | plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc) 70 | plt.plot([0, 1], [0, 1],'r--') 71 | plt.xlim([0.0, 1.0]) 72 | plt.ylim([0.0, 1.05]) 73 | plt.xlabel('False Positive Rate') 74 | plt.ylabel('True Positive Rate') 75 | plt.title('Receiver operating characteristic') 76 | plt.legend(loc="lower right") 77 | plt.savefig('Log_ROC') 78 | plt.show() 79 | 80 | 81 | ##PREDICTION FOR NEW DATASET 82 | 83 | Newdataset = pd.read_csv('newdata.csv') 84 | ynew=classifier.predict(Newdataset) 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/decision_tree.py: -------------------------------------------------------------------------------- 1 | # Importing the libraries 2 | import numpy as np 3 | import matplotlib.pyplot as plt 4 | import pandas as pd 5 | 6 | # Importing the dataset 7 | dataset = pd.read_csv('HealthData.csv') 8 | X = dataset.iloc[:,:-1].values 9 | y = dataset.iloc[:, 13].values 10 | 11 | 12 | #handling missing data 13 | 14 | from sklearn.preprocessing import Imputer 15 | imputer=Imputer(missing_values='NaN',strategy='mean',axis=0) 16 | imputer=imputer.fit(X[:,11:13]) 17 | X[:,11:13]=imputer.transform(X[:,11:13]) 18 | 19 | 20 | # Splitting the dataset into the Training set and Test set 21 | from sklearn.model_selection import train_test_split 22 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.15, random_state = 0) 23 | 24 | # Feature Scaling 25 | from sklearn.preprocessing import StandardScaler 26 | sc = StandardScaler() 27 | X_train = sc.fit_transform(X_train) 28 | X_test = sc.transform(X_test) 29 | 30 | #EXPLORING THE DATASET 31 | import seaborn as sn 32 | sn.countplot(x='num',data=dataset) 33 | dataset.num.value_counts() 34 | 35 | # Fitting Decision Tree Classification to the Training set 36 | from sklearn.tree import DecisionTreeClassifier 37 | classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0) 38 | classifier.fit(X_train, y_train) 39 | 40 | from sklearn.externals import joblib 41 | filename = 'decision_tree_model.pkl' 42 | joblib.dump(classifier,filename) 43 | 44 | # Predicting the Test set results 45 | y_pred = classifier.predict(X_test) 46 | 47 | #ACCURACY SCORE 48 | from sklearn.metrics import accuracy_score 49 | accuracy_score(y_test,y_pred) 50 | 51 | ##CONFUSION MATRIX 52 | from sklearn.metrics import classification_report, confusion_matrix 53 | cm=confusion_matrix(y_test, y_pred) 54 | 55 | #Interpretation: 56 | from sklearn.metrics import classification_report 57 | print(classification_report(y_test, y_pred)) 58 | 59 | #ROC 60 | from sklearn.metrics import roc_auc_score 61 | from sklearn.metrics import roc_curve 62 | logit_roc_auc = roc_auc_score(y_test, classifier.predict(X_test)) 63 | fpr, tpr, thresholds = roc_curve(y_test, classifier.predict_proba(X_test)[:,1]) 64 | plt.figure() 65 | plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc) 66 | plt.plot([0, 1], [0, 1],'r--') 67 | plt.xlim([0.0, 1.0]) 68 | plt.ylim([0.0, 1.05]) 69 | plt.xlabel('False Positive Rate') 70 | plt.ylabel('True Positive Rate') 71 | plt.title('Receiver operating characteristic') 72 | plt.legend(loc="lower right") 73 | plt.savefig('Log_ROC') 74 | plt.show() 75 | 76 | 77 | ##PREDICTION FOR NEW DATASET 78 | 79 | Newdataset = pd.read_csv('newdata.csv') 80 | ynew=classifier.predict(Newdataset) 81 | 82 | -------------------------------------------------------------------------------- /accounts/templates/accounts/register.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/README.md: -------------------------------------------------------------------------------- 1 | # Heart-Disease-Prediction 2 | 3 | Cardiovascular diseases are the leading cause of death globally, resulted in 17.9 million deaths (32.1%) in 2015, up from 12.3 million (25.8%) in 1990. It is estimated that 90% of CVD is preventable. There are many risk factors for heart diseases that we will take a closer look at. 4 | 5 | The main objective of this study is to build a model that can predict the heart disease occurrence, based on a combination of features (risk factors) describing the disease. Different machine learning classification techniques will be implemented and compared upon standard performance metric such as accuracy. 6 | 7 | The dataset used for this study was taken from UCI machine learning repository 8 | 9 | Description: 10 | 11 | This data set currently contains 303 instances, some of which aren't complete (some features may be missing for a certain instance). In the case that this happens, the instance has been removed. There are 14 relevant features which have been extracted, from a maximum of 76 in the total dataset. 12 | 13 | Features information: 14 | 15 | 1.age - age in years 16 | 17 | 2.sex - sex(1 = male; 0 = female) 18 | 19 | 3.chest_pain - chest pain type (1 = typical angina; 2 = atypical angina; 3 = non-anginal pain; 4 = asymptomatic) 20 | 21 | 4.blood_pressure - resting blood pressure (in mm Hg on admission to the hospital) 22 | 23 | 5.serum_cholestoral - serum cholestoral in mg/dl 24 | 25 | 6.fasting_blood_sugar - fasting blood sugar > 120 mg/dl (1 = true; 0 = false) 26 | 27 | 7.electrocardiographic - resting electrocardiographic results (0 = normal; 1 = having ST-T; 2 = hypertrophy) 28 | 29 | 8.max_heart_rate - maximum heart rate achieved 30 | 31 | 9.induced_angina - exercise induced angina (1 = yes; 0 = no) 32 | 33 | 10.ST_depression - ST depression induced by exercise relative to rest 34 | 35 | 11.slope - the slope of the peak exercise ST segment (1 = upsloping; 2 = flat; 3 = downsloping) 36 | 37 | 12.no_of_vessels - number of major vessels (0-3) colored by flourosopy 38 | 39 | 13.thal - 3 = normal; 6 = fixed defect; 7 = reversable defect 40 | 41 | 14.num:diagnosis - the predicted attribute - diagnosis of heart disease (angiographic disease status) (Value 0 = < 50% diameter narrowing; Value 1 = > 50% diameter narrowing) 42 | 43 | 44 | Types of features: 45 | 46 | A. Categorical features (Has two or more categories and each value in that feature can be categorised by them): sex, chest_pain 47 | 48 | 49 | B. Ordinal features (Variable having relative ordering or sorting between the values): fasting_blood_sugar, electrocardiographic, induced_angina, slope, no_of_vessels, thal, diagnosis 50 | 51 | 52 | C. Continuous features (Variable taking values between any two points or between the minimum or maximum values in the feature column): age, blood_pressure, serum_cholestoral, max_heart_rate, ST_depression 53 | 54 | The main goal is to predict heart disease occurrence with the highest accuracy. In order to achieve this, several classification algorithms are tested. 55 | 56 | 1.LOGISTIC REGRESSION 57 | 2.NAIVE BAYES 58 | 3.DECISION TREE 59 | 4.SVC 60 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/svc.py: -------------------------------------------------------------------------------- 1 | # Importing the libraries 2 | import numpy as np 3 | import matplotlib.pyplot as plt 4 | import pandas as pd 5 | 6 | # Importing the dataset 7 | dataset = pd.read_csv('HealthData.csv') 8 | X = dataset.iloc[:, :-1].values 9 | y = dataset.iloc[:, 13].values 10 | 11 | 12 | #handling missing data 13 | 14 | from sklearn.preprocessing import Imputer 15 | imputer=Imputer(missing_values='NaN',strategy='mean',axis=0) 16 | imputer=imputer.fit(X[:,11:13]) 17 | X[:,11:13]=imputer.transform(X[:,11:13]) 18 | 19 | #splitting dataset into training set and test set 20 | 21 | from sklearn.model_selection import train_test_split 22 | X_train,X_test,Y_train,Y_test=train_test_split(X,y,test_size=0.25) 23 | 24 | #feature scaling 25 | 26 | from sklearn.preprocessing import StandardScaler 27 | sc_X=StandardScaler() 28 | X_train=sc_X.fit_transform(X_train) 29 | X_test=sc_X.transform(X_test) 30 | 31 | 32 | #EXPLORING THE DATASET 33 | import seaborn as sn 34 | 35 | sn.countplot(x='num',data=dataset) 36 | dataset.num.value_counts() 37 | 38 | 39 | 40 | ##SUPPORT VECTOR CLASSIFICATIONS 41 | 42 | ##checking for different kernels 43 | 44 | from sklearn.svm import SVC 45 | svc_scores = [] 46 | kernels = ['linear', 'poly', 'rbf', 'sigmoid'] 47 | for i in range(len(kernels)): 48 | svc_classifier = SVC(kernel = kernels[i]) 49 | svc_classifier.fit(X_train, Y_train) 50 | svc_scores.append(svc_classifier.score(X_test, Y_test)) 51 | 52 | from matplotlib.cm import rainbow 53 | ##%matplotlib inline 54 | colors = rainbow(np.linspace(0, 1, len(kernels))) 55 | plt.bar(kernels, svc_scores, color = colors) 56 | for i in range(len(kernels)): 57 | plt.text(i, svc_scores[i], svc_scores[i]) 58 | plt.xlabel('Kernels') 59 | plt.ylabel('Scores') 60 | plt.title('Support Vector Classifier scores for different kernels') 61 | 62 | 63 | #dataset.describe() 64 | 65 | # Fitting SVM to the Training set 66 | 67 | classifier = SVC(kernel = 'rbf', random_state = 0 ,probability=True) 68 | classifier.fit(X_train, Y_train) 69 | 70 | 71 | # Predicting the Test set results 72 | 73 | y_pred = classifier.predict(X_test) 74 | 75 | from sklearn.metrics import accuracy_score 76 | accuracy_score(Y_test,y_pred) 77 | 78 | 79 | # Making the Confusion Matrix 80 | from sklearn.metrics import confusion_matrix 81 | cm = confusion_matrix(Y_test, y_pred) 82 | 83 | #Interpretation: 84 | 85 | from sklearn.metrics import classification_report 86 | print(classification_report(Y_test, y_pred)) 87 | 88 | 89 | #ROC 90 | from sklearn.metrics import roc_auc_score 91 | from sklearn.metrics import roc_curve 92 | logit_roc_auc = roc_auc_score(Y_test, classifier.predict(X_test)) 93 | fpr, tpr, thresholds = roc_curve(Y_test, classifier.predict_proba(X_test)[:,1]) 94 | plt.figure() 95 | plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc) 96 | plt.plot([0, 1], [0, 1],'r--') 97 | plt.xlim([0.0, 1.0]) 98 | plt.ylim([0.0, 1.05]) 99 | plt.xlabel('False Positive Rate') 100 | plt.ylabel('True Positive Rate') 101 | plt.title('Receiver operating characteristic') 102 | plt.legend(loc="lower right") 103 | plt.savefig('Log_ROC') 104 | plt.show() 105 | 106 | ##PREDICTION FOR NEW DATASET 107 | 108 | Newdataset = pd.read_csv('newdata.csv') 109 | ynew=classifier.predict(Newdataset) 110 | 111 | -------------------------------------------------------------------------------- /accounts/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | from .forms import UserForm, UserProfileInfoForm, UpdateProfileForm 3 | from django.views.generic import DetailView,UpdateView,TemplateView 4 | from django.contrib.auth import authenticate, login, logout 5 | from django.http import HttpResponseRedirect, HttpResponse 6 | from django.urls import reverse 7 | from django.contrib.auth.mixins import LoginRequiredMixin 8 | from django.contrib.auth.decorators import login_required 9 | from .models import UserProfileInfo, User 10 | from django.shortcuts import get_object_or_404 11 | # Create your views here. 12 | 13 | @login_required 14 | def user_logout(request): 15 | #del request.session['user_id'] 16 | request.session.flush() 17 | logout(request) 18 | return HttpResponseRedirect(reverse('user_login')) 19 | 20 | class Aboutpageview(TemplateView): 21 | template_name='accounts/about.html'; 22 | 23 | 24 | def register(request): 25 | 26 | registered = False 27 | 28 | if request.method == 'POST': 29 | user_form = UserForm(data=request.POST) 30 | profile_form = UserProfileInfoForm(data=request.POST) 31 | 32 | if user_form.is_valid() and profile_form.is_valid(): 33 | 34 | user = user_form.save() 35 | user.set_password(user.password) 36 | user.save() 37 | 38 | profile = profile_form.save(commit=False) 39 | profile.user = user 40 | 41 | if 'profile_pic' in request.FILES: 42 | profile.profile_pic = request.FILES['profile_pic'] 43 | 44 | profile.save() 45 | 46 | registered = True 47 | 48 | else: 49 | print(user_form.errors, profile_form.errors) 50 | 51 | if registered: 52 | return HttpResponseRedirect(reverse('user_login')) 53 | 54 | else: 55 | user_form = UserForm() 56 | profile_form = UserProfileInfoForm() 57 | 58 | return render(request, 'accounts/register.html', 59 | {'user_form': user_form, 'profile_form': profile_form, 'registered': registered}) 60 | 61 | 62 | def user_login(request): 63 | 64 | if request.method == 'POST': 65 | username = request.POST.get('username') 66 | password = request.POST.get('password') 67 | 68 | user = authenticate(username=username, password=password) 69 | 70 | if user: 71 | if user.is_active: 72 | login(request, user) 73 | request.session['user_id'] = user.profile.pk 74 | 75 | return HttpResponseRedirect(reverse('predict:predict', kwargs={'pk': user.profile.pk})) 76 | else: 77 | return HttpResponse("Account not active") 78 | else: 79 | print("Tried login and failed") 80 | print("username: {} and password: {}".format(username, password)) 81 | return HttpResponse("Invalid login details supplied!") 82 | 83 | else: 84 | return render(request, 'accounts/login.html', {}) 85 | 86 | class ProfileDetailView(LoginRequiredMixin, DetailView): 87 | login_url = '/' 88 | redirect_field_name = '/' 89 | model = UserProfileInfo 90 | template_name = 'accounts/profileview.html' 91 | 92 | def get_context_data(self, **kwargs): 93 | if self.request.session.has_key('user_id'): 94 | u_id = self.request.session['user_id'] 95 | context = super(ProfileDetailView, self).get_context_data(**kwargs) 96 | context['user_id'] = u_id 97 | 98 | return context 99 | -------------------------------------------------------------------------------- /predict_risk/views.py: -------------------------------------------------------------------------------- 1 | import csv,io 2 | from django.shortcuts import render 3 | from .forms import Predict_Form 4 | from predict_risk.data_provider import * 5 | from accounts.models import UserProfileInfo 6 | from django.shortcuts import get_object_or_404, redirect, render 7 | from django.http import HttpResponseRedirect, HttpResponse 8 | from django.contrib.auth.decorators import login_required,permission_required 9 | from django.urls import reverse 10 | from django.contrib import messages 11 | 12 | @login_required(login_url='/') 13 | def PredictRisk(request,pk): 14 | predicted = False 15 | predictions={} 16 | if request.session.has_key('user_id'): 17 | u_id = request.session['user_id'] 18 | 19 | if request.method == 'POST': 20 | form = Predict_Form(data=request.POST) 21 | profile = get_object_or_404(UserProfileInfo, pk=pk) 22 | 23 | if form.is_valid(): 24 | features = [[ form.cleaned_data['age'], form.cleaned_data['sex'], form.cleaned_data['cp'], form.cleaned_data['resting_bp'], form.cleaned_data['serum_cholesterol'], 25 | form.cleaned_data['fasting_blood_sugar'], form.cleaned_data['resting_ecg'], form.cleaned_data['max_heart_rate'], form.cleaned_data['exercise_induced_angina'], 26 | form.cleaned_data['st_depression'], form.cleaned_data['st_slope'], form.cleaned_data['number_of_vessels'], form.cleaned_data['thallium_scan_results']]] 27 | 28 | standard_scalar = GetStandardScalarForHeart() 29 | features = standard_scalar.transform(features) 30 | SVCClassifier,LogisticRegressionClassifier,NaiveBayesClassifier,DecisionTreeClassifier=GetAllClassifiersForHeart() 31 | 32 | 33 | predictions = {'SVC': str(SVCClassifier.predict(features)[0]), 34 | 'LogisticRegression': str(LogisticRegressionClassifier.predict(features)[0]), 35 | 'NaiveBayes': str(NaiveBayesClassifier.predict(features)[0]), 36 | 'DecisionTree': str(DecisionTreeClassifier.predict(features)[0]), 37 | } 38 | pred = form.save(commit=False) 39 | 40 | l=[predictions['SVC'],predictions['LogisticRegression'],predictions['NaiveBayes'],predictions['DecisionTree']] 41 | count=l.count('1') 42 | 43 | result=False 44 | 45 | if count>=2: 46 | result=True 47 | pred.num=1 48 | else: 49 | pred.num=0 50 | 51 | pred.profile = profile 52 | 53 | pred.save() 54 | predicted = True 55 | 56 | colors={} 57 | 58 | if predictions['SVC']=='0': 59 | colors['SVC']="table-success" 60 | elif predictions['SVC']=='1': 61 | colors['SVC']="table-danger" 62 | 63 | if predictions['LogisticRegression']=='0': 64 | colors['LR']="table-success" 65 | else: 66 | colors['LR']="table-danger" 67 | 68 | if predictions['NaiveBayes']=='0': 69 | colors['NB']="table-success" 70 | else: 71 | colors['NB']="table-danger" 72 | 73 | if predictions['DecisionTree']=='0': 74 | colors['DT']="table-success" 75 | else: 76 | colors['DT']="table-danger" 77 | 78 | if predicted: 79 | return render(request, 'predict.html', 80 | {'form': form,'predicted': predicted,'user_id':u_id,'predictions':predictions,'result':result,'colors':colors}) 81 | 82 | else: 83 | form = Predict_Form() 84 | 85 | return render(request, 'predict.html', 86 | {'form': form,'predicted': predicted,'user_id':u_id,'predictions':predictions}) 87 | -------------------------------------------------------------------------------- /accounts/templates/accounts/profileview.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 34 |
35 | 50 |
51 | 52 |
53 |
54 |
55 | 56 | 57 | 58 | 59 |
60 |
61 |
62 |
63 |
Predictions
64 |
65 | 66 | 67 | {% for pred in userprofileinfo.predict.all %} 68 |
69 | 70 | 81 |
82 | {% endfor %} 83 | 84 | 85 |
86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /heart_disease_prediction/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for heart_disease_prediction project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.1.7. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.1/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.1/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 'qg!*c3)#-_14=4sc!)22u^vm99wq0q*6s#!#hg&qdla6f1o)_$' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | 'accounts','predict_risk', 41 | ] 42 | 43 | MIDDLEWARE = [ 44 | 'django.middleware.security.SecurityMiddleware', 45 | 'django.contrib.sessions.middleware.SessionMiddleware', 46 | 'django.middleware.common.CommonMiddleware', 47 | 'django.middleware.csrf.CsrfViewMiddleware', 48 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 49 | 'django.contrib.messages.middleware.MessageMiddleware', 50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 51 | ] 52 | 53 | ROOT_URLCONF = 'heart_disease_prediction.urls' 54 | 55 | TEMPLATES = [ 56 | { 57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 58 | 'DIRS': [os.path.join(BASE_DIR, 'accounts/templates'),os.path.join(BASE_DIR, 'predict_risk/templates')], 59 | 'APP_DIRS': True, 60 | 'OPTIONS': { 61 | 'context_processors': [ 62 | 'django.template.context_processors.debug', 63 | 'django.template.context_processors.request', 64 | 'django.contrib.auth.context_processors.auth', 65 | 'django.contrib.messages.context_processors.messages', 66 | ], 67 | }, 68 | }, 69 | ] 70 | 71 | WSGI_APPLICATION = 'heart_disease_prediction.wsgi.application' 72 | 73 | 74 | # Database 75 | # https://docs.djangoproject.com/en/2.1/ref/settings/#databases 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.sqlite3', 80 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 81 | } 82 | } 83 | 84 | 85 | # Password validation 86 | # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators 87 | 88 | AUTH_PASSWORD_VALIDATORS = [ 89 | { 90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 91 | }, 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 100 | }, 101 | ] 102 | 103 | 104 | # Internationalization 105 | # https://docs.djangoproject.com/en/2.1/topics/i18n/ 106 | 107 | LANGUAGE_CODE = 'en-us' 108 | 109 | TIME_ZONE = 'UTC' 110 | 111 | USE_I18N = True 112 | 113 | USE_L10N = True 114 | 115 | USE_TZ = True 116 | 117 | LOGIN_URL='/' 118 | LOGIN_REDIRECT_URL = '/' 119 | 120 | # Static files (CSS, JavaScript, Images) 121 | # https://docs.djangoproject.com/en/2.1/howto/static-files/ 122 | STATIC_DIR = os.path.join(BASE_DIR,'accounts/static') 123 | STATICFILES_DIRS = [ 124 | STATIC_DIR 125 | ] 126 | STATIC_URL = '/static/' 127 | 128 | #media 129 | MEDIA_DIR = os.path.join(BASE_DIR, "accounts/media") 130 | MEDIA_ROOT = MEDIA_DIR 131 | MEDIA_URL = '/media/' 132 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/logistic_regression.py: -------------------------------------------------------------------------------- 1 | # Importing the libraries 2 | 3 | import numpy as np 4 | import matplotlib.pyplot as plt 5 | import pandas as pd 6 | 7 | 8 | # Importing the dataset 9 | DIR='C:/Users/Mansi/Desktop/Heart_disease_prediction_project/predict_risk/machine_learning_models' 10 | 11 | dataset = pd.read_csv(DIR+'/HealthData.csv') 12 | X = dataset.iloc[:, :-1].values 13 | y = dataset.iloc[:, 13].values 14 | 15 | 16 | #handling missing data 17 | 18 | from sklearn.preprocessing import Imputer 19 | imputer=Imputer(missing_values='NaN',strategy='mean',axis=0) 20 | imputer=imputer.fit(X[:,11:13]) 21 | X[:,11:13]=imputer.transform(X[:,11:13]) 22 | 23 | 24 | #splitting dataset into training set and test set 25 | 26 | from sklearn.model_selection import train_test_split 27 | X_train,X_test,Y_train,Y_test=train_test_split(X,y,test_size=0.25) 28 | 29 | #feature scaling 30 | 31 | from sklearn.preprocessing import StandardScaler 32 | sc_X=StandardScaler() 33 | X_train=sc_X.fit_transform(X_train) 34 | X_test=sc_X.transform(X_test) 35 | 36 | #exploring the dataset 37 | 38 | import matplotlib.pyplot as plt 39 | def draw_histograms(dataframe, features, rows, cols): 40 | fig=plt.figure(figsize=(20,20)) 41 | for i, feature in enumerate(features): 42 | ax=fig.add_subplot(rows,cols,i+1) 43 | dataframe[feature].hist(bins=20,ax=ax,facecolor='midnightblue') 44 | ax.set_title(feature+" Distribution",color='DarkRed') 45 | 46 | fig.tight_layout() 47 | plt.show() 48 | draw_histograms(dataset,dataset.columns,6,3) 49 | 50 | 51 | dataset.num.value_counts() 52 | import seaborn as sn 53 | sn.countplot(x='num',data=dataset) 54 | 55 | 56 | #VISULAIZATIONS----relationship between attributes 57 | 58 | pd.crosstab(dataset.thal,dataset.num).plot(kind='bar') 59 | plt.title('bar chart for thal vs num') 60 | plt.xlabel('thal') 61 | plt.ylabel('num') 62 | 63 | pd.crosstab(dataset.trestbps,dataset.num).plot(kind='bar') 64 | plt.title('bar chart for trestbps vs num') 65 | plt.xlabel('trestbps') 66 | plt.ylabel('num') 67 | 68 | pd.crosstab(dataset.cp,dataset.num).plot(kind='bar') 69 | plt.title('bar chart for cp vs num') 70 | plt.xlabel('cp') 71 | plt.ylabel('num') 72 | 73 | pd.crosstab(dataset.chol,dataset.num).plot(kind='bar') 74 | plt.title('bar chart for chol vs num') 75 | plt.xlabel('chol') 76 | plt.ylabel('num') 77 | 78 | pd.crosstab(dataset.restecg,dataset.num).plot(kind='bar') 79 | plt.title('bar chart for restecg vs num') 80 | plt.xlabel('restecg') 81 | plt.ylabel('num') 82 | 83 | 84 | ####------------similarly can be seen for all the attributes------------------ 85 | 86 | #### logistic regression 87 | 88 | #fitting LR to training set 89 | 90 | from sklearn.linear_model import LogisticRegression 91 | classifier =LogisticRegression() 92 | classifier.fit(X_train,Y_train) 93 | 94 | 95 | #Saving the model to disk 96 | #from sklearn.externals import joblib 97 | 98 | #filename = 'Logistic_regression_model.pkl' 99 | #joblib.dump(classifier,filename) 100 | 101 | #Predict the test set results 102 | 103 | y_Class_pred=classifier.predict(X_test) 104 | 105 | #checking the accuracy for predicted results 106 | 107 | from sklearn.metrics import accuracy_score 108 | accuracy_score(Y_test,y_Class_pred) 109 | 110 | # Making the Confusion Matrix 111 | 112 | from sklearn.metrics import confusion_matrix 113 | cm = confusion_matrix(Y_test, y_Class_pred) 114 | 115 | #Interpretation: 116 | 117 | from sklearn.metrics import classification_report 118 | print(classification_report(Y_test, y_Class_pred)) 119 | 120 | 121 | #ROC 122 | from sklearn.metrics import roc_auc_score 123 | from sklearn.metrics import roc_curve 124 | logit_roc_auc = roc_auc_score(Y_test, classifier.predict(X_test)) 125 | fpr, tpr, thresholds = roc_curve(Y_test, classifier.predict_proba(X_test)[:,1]) 126 | plt.figure() 127 | plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc) 128 | plt.plot([0, 1], [0, 1],'r--') 129 | plt.xlim([0.0, 1.0]) 130 | plt.ylim([0.0, 1.05]) 131 | plt.xlabel('False Positive Rate') 132 | plt.ylabel('True Positive Rate') 133 | plt.title('Receiver operating characteristic') 134 | plt.legend(loc="lower right") 135 | plt.savefig('Log_ROC') 136 | plt.show() 137 | 138 | ##PREDICTION FOR NEW DATASET 139 | 140 | Newdataset = pd.read_csv('newdata.csv') 141 | ynew=classifier.predict(Newdataset) 142 | -------------------------------------------------------------------------------- /accounts/static/js/jquery.vide.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Vide - v0.3.5 3 | * Easy as hell jQuery plugin for video backgrounds. 4 | * http://vodkabears.github.io/vide/ 5 | * 6 | * Made by Ilya Makarov 7 | * Under MIT License 8 | */ 9 | !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b("object"==typeof exports?require("jquery"):a.jQuery)}(this,function(a){"use strict";function b(a){var b,c,d,e,f,g,h,i={};for(f=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,",").split(","),h=0,g=f.length;g>h&&(c=f[h],-1===c.search(/^(http|https|ftp):\/\//)&&-1!==c.search(":"));h++)b=c.indexOf(":"),d=c.substring(0,b),e=c.substring(b+1),e||(e=void 0),"string"==typeof e&&(e="true"===e||("false"===e?!1:e)),"string"==typeof e&&(e=isNaN(e)?e:+e),i[d]=e;return null==d&&null==e?a:i}function c(a){a=""+a;var b,c,d,e=a.split(/\s+/),f="50%",g="50%";for(d=0,b=e.length;b>d;d++)c=e[d],"left"===c?f="0%":"right"===c?f="100%":"top"===c?g="0%":"bottom"===c?g="100%":"center"===c?0===d?f="50%":g="50%":0===d?f=c:g=c;return{x:f,y:g}}function d(b,c){var d=function(){c(this.src)};a('').load(d),a('').load(d),a('').load(d),a('').load(d)}function e(c,d,e){if(this.$element=a(c),"string"==typeof d&&(d=b(d)),e?"string"==typeof e&&(e=b(e)):e={},"string"==typeof d)d=d.replace(/\.\w*$/,"");else if("object"==typeof d)for(var f in d)d.hasOwnProperty(f)&&(d[f]=d[f].replace(/\.\w*$/,""));this.settings=a.extend({},g,e),this.path=d,this.init()}var f="vide",g={volume:1,playbackRate:1,muted:!0,loop:!0,autoplay:!0,position:"50% 50%",posterType:"detect",resizing:!0};e.prototype.init=function(){var b,e=this,g=c(e.settings.position),h="";e.$wrapper=a("
").css({position:"absolute","z-index":-1,top:0,left:0,bottom:0,right:0,overflow:"hidden","-webkit-background-size":"cover","-moz-background-size":"cover","-o-background-size":"cover","background-size":"cover","background-repeat":"no-repeat","background-position":g.x+" "+g.y}),b=e.path,"object"==typeof e.path&&(e.path.poster?b=e.path.poster:e.path.mp4?b=e.path.mp4:e.path.webm?b=e.path.webm:e.path.ogv&&(b=e.path.ogv)),"detect"===e.settings.posterType?d(b,function(a){e.$wrapper.css("background-image","url("+a+")")}):"none"!==e.settings.posterType&&e.$wrapper.css("background-image","url("+b+"."+e.settings.posterType+")"),"static"===e.$element.css("position")&&e.$element.css("position","relative"),e.$element.prepend(e.$wrapper),"object"==typeof e.path?(e.path.mp4&&(h+=''),e.path.webm&&(h+=''),e.path.ogv&&(h+=''),e.$video=a("")):e.$video=a(''),e.$video.prop({autoplay:e.settings.autoplay,loop:e.settings.loop,volume:e.settings.volume,muted:e.settings.muted,defaultMuted:e.settings.muted,playbackRate:e.settings.playbackRate,defaultPlaybackRate:e.settings.playbackRate}).css({margin:"auto",position:"absolute","z-index":-1,top:g.y,left:g.x,"-webkit-transform":"translate(-"+g.x+", -"+g.y+")","-ms-transform":"translate(-"+g.x+", -"+g.y+")","-moz-transform":"translate(-"+g.x+", -"+g.y+")",transform:"translate(-"+g.x+", -"+g.y+")",visibility:"hidden"}).one("canplaythrough."+f,function(){e.resize()}).one("playing."+f,function(){e.$video.css("visibility","visible"),e.$wrapper.css("background-image","none")}),e.$element.on("resize."+f,function(){e.settings.resizing&&e.resize()}),e.$wrapper.append(e.$video)},e.prototype.getVideoObject=function(){return this.$video[0]},e.prototype.resize=function(){if(this.$video){var a=this.$video[0].videoHeight,b=this.$video[0].videoWidth,c=this.$wrapper.height(),d=this.$wrapper.width();this.$video.css(d/b>c/a?{width:d+2,height:"auto"}:{width:"auto",height:c+2})}},e.prototype.destroy=function(){this.$element.off(f),this.$video&&this.$video.off(f),delete a[f].lookup[this.index],this.$element.removeData(f),this.$wrapper.remove()},a[f]={lookup:[]},a.fn[f]=function(b,c){var d;return this.each(function(){d=a.data(this,f),d&&d.destroy(),d=new e(this,b,c),d.index=a[f].lookup.push(d)-1,a.data(this,f,d)}),this},a(document).ready(function(){var b=a(window);b.on("resize."+f,function(){for(var b,c=a[f].lookup.length,d=0;c>d;d++)b=a[f].lookup[d],b&&b.settings.resizing&&b.resize()}),b.on("unload."+f,function(){return!1}),a(document).find("[data-"+f+"-bg]").each(function(b,c){var d=a(c),e=d.data(f+"-options"),g=d.data(f+"-bg");d[f](g,e)})})}); -------------------------------------------------------------------------------- /predict_risk/templates/predict.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | Medical Emergency Form a Responsive Widget Template :: w3layouts 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 37 |

Predict your Heart disease

38 |
39 |
40 |

Medical Information

41 | 42 | {% if predicted %} 43 | 83 | 84 | {% endif %} 85 | 86 |
87 | {% csrf_token %} 88 |
89 |
90 |

Age

91 | {{form.age}} 92 |

93 | 94 |
95 |

Gender

96 | {{form.sex}} 97 |
98 | 99 |
100 |

Chest Pain

101 | {{form.cp}} 102 |
103 | 104 |
105 |

Resting BP

106 | {{form.resting_bp}} 107 |
108 | 109 |
110 |

Serum Cholestrol

111 | {{form.serum_cholesterol}} 112 |
113 | 114 |
115 |

Fasting Blood Sugar

116 | {{form.fasting_blood_sugar}} 117 |
118 | 119 |
120 |

Resting Electrocardiographic Result

121 | {{form.resting_ecg}} 122 |
123 | 124 |
125 |

Maximum Heart Rate

126 | {{form.max_heart_rate}} 127 |
128 | 129 |
130 |

Excercise Induced Angina

131 | {{form.exercise_induced_angina}} 132 |
133 | 134 |
135 |

ST Depression

136 | {{form.st_depression}} 137 |
138 | 139 |
140 | 141 |
142 | 143 |
144 |

Slope of the peak exercise ST segment

145 | {{form.st_slope}} 146 |
147 | 148 |
149 |

Number of major vessels (0-3) colored by flourosopy

150 | {{form.number_of_vessels}} 151 |
152 | 153 |
154 |

Thalium Scan Results

155 | {{form.thallium_scan_results}} 156 |
157 | 158 |
159 | 160 |
161 | 162 |
163 |
164 |
165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /accounts/static/css/popuo-box.css: -------------------------------------------------------------------------------- 1 | /* Styles for dialog window */ 2 | #small-dialog,#small-dialog1,#small-dialog2{ 3 | background:rgba(10, 23, 26, 0.56); 4 | padding: 0; 5 | text-align: left; 6 | max-width: 600px; 7 | margin: 40px auto; 8 | position: relative; 9 | text-align:center; 10 | } 11 | #small-dialog-it,#small-dialog-in,#small-dialog-fr,#small-dialog-sh,#small-dialog-sf,#small-dialog-su,#small-dialog-me,#small-dialog-ch,#small-dialog-pi,#small-dialog-am { 12 | background: white; 13 | padding:0px; 14 | text-align: left; 15 | max-width: 450px; 16 | margin: 40px auto; 17 | position: relative; 18 | text-align:center; 19 | } 20 | a.play-icon.popup-with-zoom-anim img:hover { 21 | opacity: 0.5; 22 | transition:0.5s all; 23 | -webkit-transition:0.5s all; 24 | -o-transition:0.5s all; 25 | -moz-transition:0.5s all; 26 | -ms-transition:0.5s all; 27 | } 28 | .portfolio-items{ 29 | text-align:center; 30 | margin:0 auto; 31 | } 32 | .portfolio-items img{ 33 | width:100%; 34 | } 35 | .portfolio-items h4{ 36 | margin:1em 0; 37 | font-size:25px; 38 | color:#a63d56; 39 | } 40 | .portfolio-items p{ 41 | text-align:justify; 42 | } 43 | /** 44 | 45 | /** 46 | * Fade-zoom animation for first dialog 47 | */ 48 | 49 | /* start state */ 50 | .my-mfp-zoom-in #small-dialog { 51 | opacity: 0; 52 | -webkit-transition: all 0.2s ease-in-out; 53 | -moz-transition: all 0.2s ease-in-out; 54 | -o-transition: all 0.2s ease-in-out; 55 | transition: all 0.2s ease-in-out; 56 | -webkit-transform: scale(0.8); 57 | -moz-transform: scale(0.8); 58 | -ms-transform: scale(0.8); 59 | -o-transform: scale(0.8); 60 | transform: scale(0.8); 61 | } 62 | /* animate in */ 63 | .my-mfp-zoom-in.mfp-ready #small-dialog { 64 | opacity: 1; 65 | -webkit-transform: scale(1); 66 | -moz-transform: scale(1); 67 | -ms-transform: scale(1); 68 | -o-transform: scale(1); 69 | transform: scale(1); 70 | } 71 | /* animate out */ 72 | .my-mfp-zoom-in.mfp-removing #small-dialog { 73 | -webkit-transform: scale(0.8); 74 | -moz-transform: scale(0.8); 75 | -ms-transform: scale(0.8); 76 | -o-transform: scale(0.8); 77 | transform: scale(0.8); 78 | opacity: 0; 79 | } 80 | /* Dark overlay, start state */ 81 | .my-mfp-zoom-in.mfp-bg { 82 | opacity: 0; 83 | -webkit-transition: opacity 0.3s ease-out; 84 | -moz-transition: opacity 0.3s ease-out; 85 | -o-transition: opacity 0.3s ease-out; 86 | transition: opacity 0.3s ease-out; 87 | } 88 | /* animate in */ 89 | .my-mfp-zoom-in.mfp-ready.mfp-bg { 90 | opacity: 0.8; 91 | } 92 | /* animate out */ 93 | .my-mfp-zoom-in.mfp-removing.mfp-bg { 94 | opacity: 0; 95 | } 96 | /** 97 | /* Magnific Popup CSS */ 98 | .mfp-bg { 99 | top: 0; 100 | left: 0; 101 | width: 100%; 102 | height: 100%; 103 | z-index: 1042; 104 | overflow: hidden; 105 | position: fixed; 106 | background: #0b0b0b; 107 | opacity: 0.8; 108 | filter: alpha(opacity=80); } 109 | 110 | .mfp-wrap { 111 | top: 0; 112 | left: 0; 113 | width: 100%; 114 | height: 100%; 115 | z-index: 1043; 116 | position: fixed; 117 | outline: none !important; 118 | -webkit-backface-visibility: hidden; } 119 | 120 | .mfp-container { 121 | text-align: center; 122 | position: absolute; 123 | width: 100%; 124 | height: 100%; 125 | left: 0; 126 | top: 0; 127 | padding: 0 8px; 128 | -webkit-box-sizing: border-box; 129 | -moz-box-sizing: border-box; 130 | box-sizing: border-box; } 131 | 132 | .mfp-container:before { 133 | content: ''; 134 | display: inline-block; 135 | height: 100%; 136 | vertical-align: middle; } 137 | 138 | .mfp-align-top .mfp-container:before { 139 | display: none; } 140 | 141 | .mfp-content { 142 | position: relative; 143 | display: inline-block; 144 | vertical-align: middle; 145 | margin: 0 auto; 146 | text-align: left; 147 | z-index: 1045; } 148 | 149 | .mfp-inline-holder .mfp-content, 150 | .mfp-ajax-holder .mfp-content { 151 | width: 100%; 152 | cursor: auto; } 153 | 154 | .mfp-ajax-cur { 155 | cursor: progress; } 156 | 157 | .mfp-zoom-out-cur, 158 | .mfp-zoom-out-cur .mfp-image-holder .mfp-close { 159 | cursor: -moz-zoom-out; 160 | cursor: -webkit-zoom-out; 161 | cursor: zoom-out; } 162 | .mfp-zoom { 163 | cursor: pointer; 164 | cursor: -webkit-zoom-in; 165 | cursor: -moz-zoom-in; 166 | cursor: zoom-in; } 167 | 168 | .mfp-auto-cursor .mfp-content { 169 | cursor: auto; } 170 | 171 | .mfp-close, 172 | .mfp-arrow, 173 | .mfp-preloader, 174 | .mfp-counter { 175 | -webkit-user-select: none; 176 | -moz-user-select: none; 177 | user-select: none; } 178 | 179 | .mfp-loading.mfp-figure { 180 | display: none; } 181 | 182 | .mfp-hide { 183 | display: none !important; } 184 | .mfp-content iframe{ 185 | width:100%; 186 | min-height:380px; 187 | } 188 | .mfp-preloader { 189 | color: #cccccc; 190 | position: absolute; 191 | top: 50%; 192 | width: auto; 193 | text-align: center; 194 | margin-top: -0.8em; 195 | left: 8px; 196 | right: 8px; 197 | z-index: 1044; } 198 | 199 | .mfp-preloader a { 200 | color: #cccccc; } 201 | 202 | .mfp-preloader a:hover { 203 | color: white; } 204 | 205 | .mfp-s-ready .mfp-preloader { 206 | display: none; } 207 | 208 | .mfp-s-error .mfp-content { 209 | display: none; } 210 | 211 | button.mfp-close, 212 | button.mfp-arrow { 213 | overflow: visible; 214 | cursor: pointer; 215 | border: 0; 216 | background:#FFF; 217 | -webkit-appearance: none; 218 | display: block; 219 | padding: 0; 220 | z-index: 1046; } 221 | button::-moz-focus-inner { 222 | padding: 0; 223 | border: 0; } 224 | 225 | .mfp-close { 226 | width: 23px; 227 | height: 30px; 228 | line-height: 25px; 229 | position: absolute; 230 | left: -30px; 231 | top: -30px; 232 | text-decoration: none; 233 | text-align: center; 234 | padding: 0 0 18px 10px; 235 | color: white !important; 236 | font-style: normal; 237 | font-size: 45px; 238 | outline: none; 239 | font-family: 'Open Sans', sans-serif; 240 | } 241 | .mfp-close:hover, .mfp-close:focus { 242 | opacity: 1; } 243 | 244 | .mfp-close-btn-in .mfp-close { 245 | color: #333333; 246 | background: none; 247 | } 248 | 249 | .mfp-image-holder .mfp-close, 250 | .mfp-iframe-holder .mfp-close { 251 | color: white; 252 | right: -6px; 253 | text-align: right; 254 | padding-right: 6px; 255 | width: 100%; 256 | } 257 | .login h3,.signup h3{ 258 | margin:1em 0; 259 | color: #a63d56; 260 | } 261 | .login input[type="text"],.login input[type="password"]{ 262 | width:90%; 263 | padding:5px; 264 | margin:3px 0;x 265 | border: 1px solid #a63d56; 266 | outline: none !important; 267 | } 268 | .signup input[type="text"]{ 269 | width: 44.5%; 270 | padding: 5px; 271 | margin: 10px 0; 272 | outline: none; 273 | background: #EBEBEB; 274 | border: solid 1px #222; 275 | } 276 | .signup input.email[type="text"],.signup input[type="password"]{ 277 | width: 90%; 278 | padding: 5px; 279 | margin: 10px 0; 280 | outline: none; 281 | background: #EBEBEB; 282 | border: solid 1px #222; 283 | } 284 | .login input[type="submit"],.signup input[type="submit"]{ 285 | background: #347083; 286 | border: 0px; 287 | padding: 5px 10px; 288 | margin: 10px 10px; 289 | outline: none; 290 | font-size: 18px; 291 | color: #fff; 292 | text-transform: uppercase; 293 | width: 17%; 294 | -webkit-appearance: none; 295 | } 296 | .login input[type="submit"]:hover,.signup input[type="submit"]:hover{ 297 | background:#163035; 298 | -webkit-transition: all 0.5s ease-in-out; 299 | -moz-transition: all 0.5s ease-in-out; 300 | -o-transition: all 0.5s ease-in-out; 301 | transition: all 0.5s ease-in-out; 302 | } 303 | @media all and (max-width:1050px){ 304 | #small-dialog, #small-dialog1, #small-dialog2 { 305 | max-width: 510px; 306 | } 307 | } 308 | @media all and (max-width:667px){ 309 | .mfp-content iframe { 310 | min-height: 235px; 311 | } 312 | } 313 | @media all and (max-width:640px){ 314 | .mfp-close { 315 | left: 0; 316 | top: -38px; 317 | } 318 | #small-dialog, #small-dialog1, #small-dialog2 { 319 | max-width: 450px; 320 | } 321 | } 322 | @media all and (max-width:480px){ 323 | .comments-area textarea{ 324 | height:100px; 325 | } 326 | .login input[type="submit"], .signup input[type="submit"] { 327 | font-size: 14px; 328 | width: 20%; 329 | } 330 | .mfp-close { 331 | left: 0; 332 | } 333 | #small-dialog, #small-dialog1, #small-dialog2 { 334 | max-width: 385px; 335 | } 336 | } 337 | @media all and (max-width:320px){ 338 | .comments-area span.label,.comments-area span.text-field{ 339 | float:none; 340 | width:100%; 341 | } 342 | .comments-area span{ 343 | padding-bottom:3px; 344 | } 345 | #small-dialog{ 346 | padding:15px; 347 | } 348 | .comments-area input[type="text"], .comments-area textarea{ 349 | width:92%; 350 | } 351 | .comments-area div{ 352 | padding:2px 0; 353 | } 354 | .mfp-content iframe{ 355 | width:100%; 356 | min-height:150px; 357 | } 358 | .login input[type="submit"], .signup input[type="submit"] { 359 | font-size: 12px; 360 | width: 29%; 361 | } 362 | .signup input[type="text"] { 363 | width: 90%; 364 | } 365 | .mfp-close { 366 | right: 2px; 367 | top: -35px; 368 | } 369 | } 370 | -------------------------------------------------------------------------------- /accounts/templates/accounts/about.html: -------------------------------------------------------------------------------- 1 | 2 | {% load staticfiles %} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Home 11 | 12 | 13 | 14 | 15 | 16 | 36 | 37 | 38 |
39 | 53 | 54 | 55 |
56 |
57 |
58 |
59 |

About Us

60 |
Loads of features. Making it easier for anyone to predict the chance of getting heart disease. Shows analysis done on large data sets.
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | 69 |

"Doctors can be replaced by software – 80% of them can. I’d much rather have a good machine learning system diagnose my disease than the median or average doctor." 70 |
71 |
72 | – Vinod Khosla 73 |

74 |
75 | 76 |
77 |
78 |
79 | 80 |
81 |

Vast and Reliable Dataset

82 |

This database contains 76 attributes, but all published experiments refer to using a subset of 14 of them. In particular, the Cleveland database is the only one that has been used by ML researchers to this date. 83 |

84 |
85 |
86 |
87 |
88 |

Analysis Using Python and Jupyter Notebook

89 |

The code used for analysis of data and getting prediction rates is pretty simple. The code is written in Python and Jupyter Notebook. 90 |

91 |
92 |
93 |
94 |
95 |
96 | 97 |
98 |
99 |

Here is our team

100 |
101 |
102 |
103 |
104 | Thumbnail Image 105 |

Anirudh Dashottar

106 |

Developer

107 |

You can write to us for any suggestions. Your feedback is most Welcome.

108 | 109 | 110 | 111 |
112 |
113 |
114 |
115 | Thumbnail Image 116 |

Mansukh Das

117 |

Developer

118 |

You can write to us for any suggestions. Your feedback is most Welcome.

119 | 120 | 121 | 122 |
123 |
124 |
125 |
126 | Thumbnail Image 127 |

Deepanshi chauhan

128 |

Developer

129 |

You can write to us for any suggestions. Your feedback is most Welcome.

130 | 131 | 132 | 133 |
134 |
135 | 136 |
137 |
138 | Thumbnail Image 139 |

Mansi Agrawal

140 |

Developer

141 |

You can write to us for any suggestions. Your feedback is most Welcome.

142 | 143 | 144 | 145 |
146 |
147 |
148 |
149 |
150 |
151 | 152 |
153 |
154 | 157 | 161 |
162 |
163 | 164 |
165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /predict_risk/machine_learning_models/HealthData.csv: -------------------------------------------------------------------------------- 1 | age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,num 2 | 63,1,1,145,233,1,2,150,0,2.3,3,0,6,0 3 | 67,1,4,160,286,0,2,108,1,1.5,2,3,3,1 4 | 67,1,4,120,229,0,2,129,1,2.6,2,2,7,1 5 | 37,1,3,130,250,0,0,187,0,3.5,3,0,3,0 6 | 41,0,2,130,204,0,2,172,0,1.4,1,0,3,0 7 | 56,1,2,120,236,0,0,178,0,0.8,1,0,3,0 8 | 62,0,4,140,268,0,2,160,0,3.6,3,2,3,1 9 | 57,0,4,120,354,0,0,163,1,0.6,1,0,3,0 10 | 63,1,4,130,254,0,2,147,0,1.4,2,1,7,1 11 | 53,1,4,140,203,1,2,155,1,3.1,3,0,7,1 12 | 57,1,4,140,192,0,0,148,0,0.4,2,0,6,0 13 | 56,0,2,140,294,0,2,153,0,1.3,2,0,3,0 14 | 56,1,3,130,256,1,2,142,1,0.6,2,1,6,1 15 | 44,1,2,120,263,0,0,173,0,0,1,0,7,0 16 | 52,1,3,172,199,1,0,162,0,0.5,1,0,7,0 17 | 57,1,3,150,168,0,0,174,0,1.6,1,0,3,0 18 | 48,1,2,110,229,0,0,168,0,1,3,0,7,1 19 | 54,1,4,140,239,0,0,160,0,1.2,1,0,3,0 20 | 48,0,3,130,275,0,0,139,0,0.2,1,0,3,0 21 | 49,1,2,130,266,0,0,171,0,0.6,1,0,3,0 22 | 64,1,1,110,211,0,2,144,1,1.8,2,0,3,0 23 | 58,0,1,150,283,1,2,162,0,1,1,0,3,0 24 | 58,1,2,120,284,0,2,160,0,1.8,2,0,3,1 25 | 58,1,3,132,224,0,2,173,0,3.2,1,2,7,1 26 | 60,1,4,130,206,0,2,132,1,2.4,2,2,7,1 27 | 50,0,3,120,219,0,0,158,0,1.6,2,0,3,0 28 | 58,0,3,120,340,0,0,172,0,0,1,0,3,0 29 | 66,0,1,150,226,0,0,114,0,2.6,3,0,3,0 30 | 43,1,4,150,247,0,0,171,0,1.5,1,0,3,0 31 | 40,1,4,110,167,0,2,114,1,2,2,0,7,1 32 | 69,0,1,140,239,0,0,151,0,1.8,1,2,3,0 33 | 60,1,4,117,230,1,0,160,1,1.4,1,2,7,1 34 | 64,1,3,140,335,0,0,158,0,0,1,0,3,1 35 | 59,1,4,135,234,0,0,161,0,0.5,2,0,7,0 36 | 44,1,3,130,233,0,0,179,1,0.4,1,0,3,0 37 | 42,1,4,140,226,0,0,178,0,0,1,0,3,0 38 | 43,1,4,120,177,0,2,120,1,2.5,2,0,7,1 39 | 57,1,4,150,276,0,2,112,1,0.6,2,1,6,1 40 | 55,1,4,132,353,0,0,132,1,1.2,2,1,7,1 41 | 61,1,3,150,243,1,0,137,1,1,2,0,3,0 42 | 65,0,4,150,225,0,2,114,0,1,2,3,7,1 43 | 40,1,1,140,199,0,0,178,1,1.4,1,0,7,0 44 | 71,0,2,160,302,0,0,162,0,0.4,1,2,3,0 45 | 59,1,3,150,212,1,0,157,0,1.6,1,0,3,0 46 | 61,0,4,130,330,0,2,169,0,0,1,0,3,1 47 | 58,1,3,112,230,0,2,165,0,2.5,2,1,7,1 48 | 51,1,3,110,175,0,0,123,0,0.6,1,0,3,0 49 | 50,1,4,150,243,0,2,128,0,2.6,2,0,7,1 50 | 65,0,3,140,417,1,2,157,0,0.8,1,1,3,0 51 | 53,1,3,130,197,1,2,152,0,1.2,3,0,3,0 52 | 41,0,2,105,198,0,0,168,0,0,1,1,3,0 53 | 65,1,4,120,177,0,0,140,0,0.4,1,0,7,0 54 | 44,1,4,112,290,0,2,153,0,0,1,1,3,1 55 | 44,1,2,130,219,0,2,188,0,0,1,0,3,0 56 | 60,1,4,130,253,0,0,144,1,1.4,1,1,7,1 57 | 54,1,4,124,266,0,2,109,1,2.2,2,1,7,1 58 | 50,1,3,140,233,0,0,163,0,0.6,2,1,7,1 59 | 41,1,4,110,172,0,2,158,0,0,1,0,7,1 60 | 54,1,3,125,273,0,2,152,0,0.5,3,1,3,0 61 | 51,1,1,125,213,0,2,125,1,1.4,1,1,3,0 62 | 51,0,4,130,305,0,0,142,1,1.2,2,0,7,1 63 | 46,0,3,142,177,0,2,160,1,1.4,3,0,3,0 64 | 58,1,4,128,216,0,2,131,1,2.2,2,3,7,1 65 | 54,0,3,135,304,1,0,170,0,0,1,0,3,0 66 | 54,1,4,120,188,0,0,113,0,1.4,2,1,7,1 67 | 60,1,4,145,282,0,2,142,1,2.8,2,2,7,1 68 | 60,1,3,140,185,0,2,155,0,3,2,0,3,1 69 | 54,1,3,150,232,0,2,165,0,1.6,1,0,7,0 70 | 59,1,4,170,326,0,2,140,1,3.4,3,0,7,1 71 | 46,1,3,150,231,0,0,147,0,3.6,2,0,3,1 72 | 65,0,3,155,269,0,0,148,0,0.8,1,0,3,0 73 | 67,1,4,125,254,1,0,163,0,0.2,2,2,7,1 74 | 62,1,4,120,267,0,0,99,1,1.8,2,2,7,1 75 | 65,1,4,110,248,0,2,158,0,0.6,1,2,6,1 76 | 44,1,4,110,197,0,2,177,0,0,1,1,3,1 77 | 65,0,3,160,360,0,2,151,0,0.8,1,0,3,0 78 | 60,1,4,125,258,0,2,141,1,2.8,2,1,7,1 79 | 51,0,3,140,308,0,2,142,0,1.5,1,1,3,0 80 | 48,1,2,130,245,0,2,180,0,0.2,2,0,3,0 81 | 58,1,4,150,270,0,2,111,1,0.8,1,0,7,1 82 | 45,1,4,104,208,0,2,148,1,3,2,0,3,0 83 | 53,0,4,130,264,0,2,143,0,0.4,2,0,3,0 84 | 39,1,3,140,321,0,2,182,0,0,1,0,3,0 85 | 68,1,3,180,274,1,2,150,1,1.6,2,0,7,1 86 | 52,1,2,120,325,0,0,172,0,0.2,1,0,3,0 87 | 44,1,3,140,235,0,2,180,0,0,1,0,3,0 88 | 47,1,3,138,257,0,2,156,0,0,1,0,3,0 89 | 53,0,3,128,216,0,2,115,0,0,1,0,,0 90 | 53,0,4,138,234,0,2,160,0,0,1,0,3,0 91 | 51,0,3,130,256,0,2,149,0,0.5,1,0,3,0 92 | 66,1,4,120,302,0,2,151,0,0.4,2,0,3,0 93 | 62,0,4,160,164,0,2,145,0,6.2,3,3,7,1 94 | 62,1,3,130,231,0,0,146,0,1.8,2,3,7,0 95 | 44,0,3,108,141,0,0,175,0,0.6,2,0,3,0 96 | 63,0,3,135,252,0,2,172,0,0,1,0,3,0 97 | 52,1,4,128,255,0,0,161,1,0,1,1,7,1 98 | 59,1,4,110,239,0,2,142,1,1.2,2,1,7,1 99 | 60,0,4,150,258,0,2,157,0,2.6,2,2,7,1 100 | 52,1,2,134,201,0,0,158,0,0.8,1,1,3,0 101 | 48,1,4,122,222,0,2,186,0,0,1,0,3,0 102 | 45,1,4,115,260,0,2,185,0,0,1,0,3,0 103 | 34,1,1,118,182,0,2,174,0,0,1,0,3,0 104 | 57,0,4,128,303,0,2,159,0,0,1,1,3,0 105 | 71,0,3,110,265,1,2,130,0,0,1,1,3,0 106 | 49,1,3,120,188,0,0,139,0,2,2,3,7,1 107 | 54,1,2,108,309,0,0,156,0,0,1,0,7,0 108 | 59,1,4,140,177,0,0,162,1,0,1,1,7,1 109 | 57,1,3,128,229,0,2,150,0,0.4,2,1,7,1 110 | 61,1,4,120,260,0,0,140,1,3.6,2,1,7,1 111 | 39,1,4,118,219,0,0,140,0,1.2,2,0,7,1 112 | 61,0,4,145,307,0,2,146,1,1,2,0,7,1 113 | 56,1,4,125,249,1,2,144,1,1.2,2,1,3,1 114 | 52,1,1,118,186,0,2,190,0,0,2,0,6,0 115 | 43,0,4,132,341,1,2,136,1,3,2,0,7,1 116 | 62,0,3,130,263,0,0,97,0,1.2,2,1,7,1 117 | 41,1,2,135,203,0,0,132,0,0,2,0,6,0 118 | 58,1,3,140,211,1,2,165,0,0,1,0,3,0 119 | 35,0,4,138,183,0,0,182,0,1.4,1,0,3,0 120 | 63,1,4,130,330,1,2,132,1,1.8,1,3,7,1 121 | 65,1,4,135,254,0,2,127,0,2.8,2,1,7,1 122 | 48,1,4,130,256,1,2,150,1,0,1,2,7,1 123 | 63,0,4,150,407,0,2,154,0,4,2,3,7,1 124 | 51,1,3,100,222,0,0,143,1,1.2,2,0,3,0 125 | 55,1,4,140,217,0,0,111,1,5.6,3,0,7,1 126 | 65,1,1,138,282,1,2,174,0,1.4,2,1,3,1 127 | 45,0,2,130,234,0,2,175,0,0.6,2,0,3,0 128 | 56,0,4,200,288,1,2,133,1,4,3,2,7,1 129 | 54,1,4,110,239,0,0,126,1,2.8,2,1,7,1 130 | 44,1,2,120,220,0,0,170,0,0,1,0,3,0 131 | 62,0,4,124,209,0,0,163,0,0,1,0,3,0 132 | 54,1,3,120,258,0,2,147,0,0.4,2,0,7,0 133 | 51,1,3,94,227,0,0,154,1,0,1,1,7,0 134 | 29,1,2,130,204,0,2,202,0,0,1,0,3,0 135 | 51,1,4,140,261,0,2,186,1,0,1,0,3,0 136 | 43,0,3,122,213,0,0,165,0,0.2,2,0,3,0 137 | 55,0,2,135,250,0,2,161,0,1.4,2,0,3,0 138 | 70,1,4,145,174,0,0,125,1,2.6,3,0,7,1 139 | 62,1,2,120,281,0,2,103,0,1.4,2,1,7,1 140 | 35,1,4,120,198,0,0,130,1,1.6,2,0,7,1 141 | 51,1,3,125,245,1,2,166,0,2.4,2,0,3,0 142 | 59,1,2,140,221,0,0,164,1,0,1,0,3,0 143 | 59,1,1,170,288,0,2,159,0,0.2,2,0,7,1 144 | 52,1,2,128,205,1,0,184,0,0,1,0,3,0 145 | 64,1,3,125,309,0,0,131,1,1.8,2,0,7,1 146 | 58,1,3,105,240,0,2,154,1,0.6,2,0,7,0 147 | 47,1,3,108,243,0,0,152,0,0,1,0,3,1 148 | 57,1,4,165,289,1,2,124,0,1,2,3,7,1 149 | 41,1,3,112,250,0,0,179,0,0,1,0,3,0 150 | 45,1,2,128,308,0,2,170,0,0,1,0,3,0 151 | 60,0,3,102,318,0,0,160,0,0,1,1,3,0 152 | 52,1,1,152,298,1,0,178,0,1.2,2,0,7,0 153 | 42,0,4,102,265,0,2,122,0,0.6,2,0,3,0 154 | 67,0,3,115,564,0,2,160,0,1.6,2,0,7,0 155 | 55,1,4,160,289,0,2,145,1,0.8,2,1,7,1 156 | 64,1,4,120,246,0,2,96,1,2.2,3,1,3,1 157 | 70,1,4,130,322,0,2,109,0,2.4,2,3,3,1 158 | 51,1,4,140,299,0,0,173,1,1.6,1,0,7,1 159 | 58,1,4,125,300,0,2,171,0,0,1,2,7,1 160 | 60,1,4,140,293,0,2,170,0,1.2,2,2,7,1 161 | 68,1,3,118,277,0,0,151,0,1,1,1,7,0 162 | 46,1,2,101,197,1,0,156,0,0,1,0,7,0 163 | 77,1,4,125,304,0,2,162,1,0,1,3,3,1 164 | 54,0,3,110,214,0,0,158,0,1.6,2,0,3,0 165 | 58,0,4,100,248,0,2,122,0,1,2,0,3,0 166 | 48,1,3,124,255,1,0,175,0,0,1,2,3,0 167 | 57,1,4,132,207,0,0,168,1,0,1,0,7,0 168 | 52,1,3,138,223,0,0,169,0,0,1,,3,0 169 | 54,0,2,132,288,1,2,159,1,0,1,1,3,0 170 | 35,1,4,126,282,0,2,156,1,0,1,0,7,1 171 | 45,0,2,112,160,0,0,138,0,0,2,0,3,0 172 | 70,1,3,160,269,0,0,112,1,2.9,2,1,7,1 173 | 53,1,4,142,226,0,2,111,1,0,1,0,7,0 174 | 59,0,4,174,249,0,0,143,1,0,2,0,3,1 175 | 62,0,4,140,394,0,2,157,0,1.2,2,0,3,0 176 | 64,1,4,145,212,0,2,132,0,2,2,2,6,1 177 | 57,1,4,152,274,0,0,88,1,1.2,2,1,7,1 178 | 52,1,4,108,233,1,0,147,0,0.1,1,3,7,0 179 | 56,1,4,132,184,0,2,105,1,2.1,2,1,6,1 180 | 43,1,3,130,315,0,0,162,0,1.9,1,1,3,0 181 | 53,1,3,130,246,1,2,173,0,0,1,3,3,0 182 | 48,1,4,124,274,0,2,166,0,0.5,2,0,7,1 183 | 56,0,4,134,409,0,2,150,1,1.9,2,2,7,1 184 | 42,1,1,148,244,0,2,178,0,0.8,1,2,3,0 185 | 59,1,1,178,270,0,2,145,0,4.2,3,0,7,0 186 | 60,0,4,158,305,0,2,161,0,0,1,0,3,1 187 | 63,0,2,140,195,0,0,179,0,0,1,2,3,0 188 | 42,1,3,120,240,1,0,194,0,0.8,3,0,7,0 189 | 66,1,2,160,246,0,0,120,1,0,2,3,6,1 190 | 54,1,2,192,283,0,2,195,0,0,1,1,7,1 191 | 69,1,3,140,254,0,2,146,0,2,2,3,7,1 192 | 50,1,3,129,196,0,0,163,0,0,1,0,3,0 193 | 51,1,4,140,298,0,0,122,1,4.2,2,3,7,1 194 | 43,1,4,132,247,1,2,143,1,0.1,2,,7,1 195 | 62,0,4,138,294,1,0,106,0,1.9,2,3,3,1 196 | 68,0,3,120,211,0,2,115,0,1.5,2,0,3,0 197 | 67,1,4,100,299,0,2,125,1,0.9,2,2,3,1 198 | 69,1,1,160,234,1,2,131,0,0.1,2,1,3,0 199 | 45,0,4,138,236,0,2,152,1,0.2,2,0,3,0 200 | 50,0,2,120,244,0,0,162,0,1.1,1,0,3,0 201 | 59,1,1,160,273,0,2,125,0,0,1,0,3,1 202 | 50,0,4,110,254,0,2,159,0,0,1,0,3,0 203 | 64,0,4,180,325,0,0,154,1,0,1,0,3,0 204 | 57,1,3,150,126,1,0,173,0,0.2,1,1,7,0 205 | 64,0,3,140,313,0,0,133,0,0.2,1,0,7,0 206 | 43,1,4,110,211,0,0,161,0,0,1,0,7,0 207 | 45,1,4,142,309,0,2,147,1,0,2,3,7,1 208 | 58,1,4,128,259,0,2,130,1,3,2,2,7,1 209 | 50,1,4,144,200,0,2,126,1,0.9,2,0,7,1 210 | 55,1,2,130,262,0,0,155,0,0,1,0,3,0 211 | 62,0,4,150,244,0,0,154,1,1.4,2,0,3,1 212 | 37,0,3,120,215,0,0,170,0,0,1,0,3,0 213 | 38,1,1,120,231,0,0,182,1,3.8,2,0,7,1 214 | 41,1,3,130,214,0,2,168,0,2,2,0,3,0 215 | 66,0,4,178,228,1,0,165,1,1,2,2,7,1 216 | 52,1,4,112,230,0,0,160,0,0,1,1,3,1 217 | 56,1,1,120,193,0,2,162,0,1.9,2,0,7,0 218 | 46,0,2,105,204,0,0,172,0,0,1,0,3,0 219 | 46,0,4,138,243,0,2,152,1,0,2,0,3,0 220 | 64,0,4,130,303,0,0,122,0,2,2,2,3,0 221 | 59,1,4,138,271,0,2,182,0,0,1,0,3,0 222 | 41,0,3,112,268,0,2,172,1,0,1,0,3,0 223 | 54,0,3,108,267,0,2,167,0,0,1,0,3,0 224 | 39,0,3,94,199,0,0,179,0,0,1,0,3,0 225 | 53,1,4,123,282,0,0,95,1,2,2,2,7,1 226 | 63,0,4,108,269,0,0,169,1,1.8,2,2,3,1 227 | 34,0,2,118,210,0,0,192,0,0.7,1,0,3,0 228 | 47,1,4,112,204,0,0,143,0,0.1,1,0,3,0 229 | 67,0,3,152,277,0,0,172,0,0,1,1,3,0 230 | 54,1,4,110,206,0,2,108,1,0,2,1,3,1 231 | 66,1,4,112,212,0,2,132,1,0.1,1,1,3,1 232 | 52,0,3,136,196,0,2,169,0,0.1,2,0,3,0 233 | 55,0,4,180,327,0,1,117,1,3.4,2,0,3,1 234 | 49,1,3,118,149,0,2,126,0,0.8,1,3,3,1 235 | 74,0,2,120,269,0,2,121,1,0.2,1,1,3,0 236 | 54,0,3,160,201,0,0,163,0,0,1,1,3,0 237 | 54,1,4,122,286,0,2,116,1,3.2,2,2,3,1 238 | 56,1,4,130,283,1,2,103,1,1.6,3,0,7,1 239 | 46,1,4,120,249,0,2,144,0,0.8,1,0,7,1 240 | 49,0,2,134,271,0,0,162,0,0,2,0,3,0 241 | 42,1,2,120,295,0,0,162,0,0,1,0,3,0 242 | 41,1,2,110,235,0,0,153,0,0,1,0,3,0 243 | 41,0,2,126,306,0,0,163,0,0,1,0,3,0 244 | 49,0,4,130,269,0,0,163,0,0,1,0,3,0 245 | 61,1,1,134,234,0,0,145,0,2.6,2,2,3,1 246 | 60,0,3,120,178,1,0,96,0,0,1,0,3,0 247 | 67,1,4,120,237,0,0,71,0,1,2,0,3,1 248 | 58,1,4,100,234,0,0,156,0,0.1,1,1,7,1 249 | 47,1,4,110,275,0,2,118,1,1,2,1,3,1 250 | 52,1,4,125,212,0,0,168,0,1,1,2,7,1 251 | 62,1,2,128,208,1,2,140,0,0,1,0,3,0 252 | 57,1,4,110,201,0,0,126,1,1.5,2,0,6,0 253 | 58,1,4,146,218,0,0,105,0,2,2,1,7,1 254 | 64,1,4,128,263,0,0,105,1,0.2,2,1,7,0 255 | 51,0,3,120,295,0,2,157,0,0.6,1,0,3,0 256 | 43,1,4,115,303,0,0,181,0,1.2,2,0,3,0 257 | 42,0,3,120,209,0,0,173,0,0,2,0,3,0 258 | 67,0,4,106,223,0,0,142,0,0.3,1,2,3,0 259 | 76,0,3,140,197,0,1,116,0,1.1,2,0,3,0 260 | 70,1,2,156,245,0,2,143,0,0,1,0,3,0 261 | 57,1,2,124,261,0,0,141,0,0.3,1,0,7,1 262 | 44,0,3,118,242,0,0,149,0,0.3,2,1,3,0 263 | 58,0,2,136,319,1,2,152,0,0,1,2,3,1 264 | 60,0,1,150,240,0,0,171,0,0.9,1,0,3,0 265 | 44,1,3,120,226,0,0,169,0,0,1,0,3,0 266 | 61,1,4,138,166,0,2,125,1,3.6,2,1,3,1 267 | 42,1,4,136,315,0,0,125,1,1.8,2,0,6,1 268 | 52,1,4,128,204,1,0,156,1,1,2,0,,1 269 | 59,1,3,126,218,1,0,134,0,2.2,2,1,6,1 270 | 40,1,4,152,223,0,0,181,0,0,1,0,7,1 271 | 42,1,3,130,180,0,0,150,0,0,1,0,3,0 272 | 61,1,4,140,207,0,2,138,1,1.9,1,1,7,1 273 | 66,1,4,160,228,0,2,138,0,2.3,1,0,6,0 274 | 46,1,4,140,311,0,0,120,1,1.8,2,2,7,1 275 | 71,0,4,112,149,0,0,125,0,1.6,2,0,3,0 276 | 59,1,1,134,204,0,0,162,0,0.8,1,2,3,1 277 | 64,1,1,170,227,0,2,155,0,0.6,2,0,7,0 278 | 66,0,3,146,278,0,2,152,0,0,2,1,3,0 279 | 39,0,3,138,220,0,0,152,0,0,2,0,3,0 280 | 57,1,2,154,232,0,2,164,0,0,1,1,3,1 281 | 58,0,4,130,197,0,0,131,0,0.6,2,0,3,0 282 | 57,1,4,110,335,0,0,143,1,3,2,1,7,1 283 | 47,1,3,130,253,0,0,179,0,0,1,0,3,0 284 | 55,0,4,128,205,0,1,130,1,2,2,1,7,1 285 | 35,1,2,122,192,0,0,174,0,0,1,0,3,0 286 | 61,1,4,148,203,0,0,161,0,0,1,1,7,1 287 | 58,1,4,114,318,0,1,140,0,4.4,3,3,6,1 288 | 58,0,4,170,225,1,2,146,1,2.8,2,2,6,1 289 | 58,1,2,125,220,0,0,144,0,0.4,2,,7,0 290 | 56,1,2,130,221,0,2,163,0,0,1,0,7,0 291 | 56,1,2,120,240,0,0,169,0,0,3,0,3,0 292 | 67,1,3,152,212,0,2,150,0,0.8,2,0,7,1 293 | 55,0,2,132,342,0,0,166,0,1.2,1,0,3,0 294 | 44,1,4,120,169,0,0,144,1,2.8,3,0,6,1 295 | 63,1,4,140,187,0,2,144,1,4,1,2,7,1 296 | 63,0,4,124,197,0,0,136,1,0,2,0,3,1 297 | 41,1,2,120,157,0,0,182,0,0,1,0,3,0 298 | 59,1,4,164,176,1,2,90,0,1,2,2,6,1 299 | 57,0,4,140,241,0,0,123,1,0.2,2,0,7,1 300 | 45,1,1,110,264,0,0,132,0,1.2,2,0,7,1 301 | 68,1,4,144,193,1,0,141,0,3.4,2,2,7,1 302 | 57,1,4,130,131,0,0,115,1,1.2,2,1,7,1 303 | 57,0,2,130,236,0,2,174,0,0,2,1,3,1 304 | 38,1,3,138,175,0,0,173,0,0,1,,3,0 305 | -------------------------------------------------------------------------------- /accounts/static/css/style.css: -------------------------------------------------------------------------------- 1 | /*-- 2 | Author: W3layouts 3 | Author URL: http://w3layouts.com 4 | License: Creative Commons Attribution 3.0 Unported 5 | License URL: http://creativecommons.org/licenses/by/3.0/ 6 | --*/ 7 | /*-- reset --*/ 8 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,nav ul,nav li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} 9 | article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {display: block;} 10 | ol,ul{list-style:none;margin:0px;padding:0px;} 11 | blockquote,q{quotes:none;} 12 | blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} 13 | table{border-collapse:collapse;border-spacing:0;} 14 | /*-- start editing from here --*/ 15 | a{text-decoration:none;} 16 | .txt-rt{text-align:right;}/* text align right */ 17 | .txt-lt{text-align:left;}/* text align left */ 18 | .txt-center{text-align:center;}/* text align center */ 19 | .float-rt{float:right;}/* float right */ 20 | .float-lt{float:left;}/* float left */ 21 | .clear{clear:both;}/* clear float */ 22 | .pos-relative{position:relative;}/* Position Relative */ 23 | .pos-absolute{position:absolute;}/* Position Absolute */ 24 | .vertical-base{ vertical-align:baseline;}/* vertical align baseline */ 25 | .vertical-top{ vertical-align:top;}/* vertical align top */ 26 | nav.vertical ul li{ display:block;}/* vertical menu */ 27 | nav.horizontal ul li{ display: inline-block;}/* horizontal menu */ 28 | img{max-width:100%;} 29 | /*-- end reset --*/ 30 | body { 31 | font-family: 'Muli', sans-serif; 32 | background: url(../images/1.jpg)no-repeat center 0px; 33 | -webkit-background-size:cover; 34 | -moz-background-size:cover; 35 | background-size:cover; 36 | background-attachment: fixed; 37 | } 38 | /*-- main --*/ 39 | .agileinfo-row { 40 | width: 65%; 41 | margin:0 auto; 42 | text-align:center; 43 | } 44 | /*-- top-nav --*/ 45 | .agileits-main { 46 | } 47 | .w3top-nav { 48 | padding: 2em 8em; 49 | } 50 | .w3top-nav-left { 51 | float: left; 52 | } 53 | .w3top-nav-right { 54 | float: right; 55 | margin-top: 0.7em; 56 | } 57 | .w3top-nav-left h1 { 58 | font-size: 3em; 59 | font-weight: 100; 60 | line-height: .9em; 61 | } 62 | .w3top-nav-left h1 a { 63 | color: #fff; 64 | } 65 | .w3top-nav-right ul li { 66 | display: inline-block; 67 | margin:0 1.2em; 68 | } 69 | .w3top-nav-right ul li a{ 70 | color:#fff; 71 | font-size: 1em; 72 | -webkit-transition: 0.5s all; 73 | -moz-transition: 0.5s all; 74 | -o-transition: 0.5s all; 75 | -ms-transition: 0.5s all; 76 | transition: 0.5s all; 77 | } 78 | .w3top-nav-right ul li a:hover{ 79 | color:#04c9f9; 80 | } 81 | /*-- //top-nav --*/ 82 | /*--header start here--*/ 83 | .w3ls-header { 84 | padding: 0em 0 0; 85 | } 86 | .icon1 { 87 | margin: 0 0 2em; 88 | border: 1px solid #525252; 89 | padding: .7em 0em; 90 | background:rgba(255, 255, 255, 0.22); 91 | border-radius: 26px; 92 | } 93 | .wthree li { 94 | display: inline-block; 95 | } 96 | a { 97 | color: #585858; 98 | margin: 0em; 99 | } 100 | a:hover { 101 | color: #ff4f81; 102 | } 103 | .bottom { 104 | margin: 3em 0 0; 105 | } 106 | .header-main { 107 | /*--padding: 4em 4em 2.5em;--*/ 108 | width: 25%; 109 | margin: 0 auto; 110 | text-align: center; 111 | position: relative; 112 | z-index: 999; 113 | margin:9em auto 0; 114 | } 115 | .header-main h2 { 116 | font-size: 1.6em; 117 | line-height: 1.6em; 118 | color: #ffffff; 119 | text-align: center; 120 | padding-bottom: 60px; 121 | text-transform: capitalize; 122 | } 123 | .sign-up { 124 | margin: 2em 0; 125 | } 126 | .header-left { 127 | background: #fff; 128 | padding: 0px; 129 | } 130 | .sign-up h2 { 131 | font-size: 22px; 132 | color: #fff; 133 | text-align: center; 134 | background: #fbbc05; 135 | width: 40px; 136 | height: 40px; 137 | line-height: 1.9em; 138 | border-radius: 50%; 139 | margin: 0 auto; 140 | } 141 | ::-webkit-input-placeholder{ 142 | color: #fff!important; 143 | } 144 | .header-left-bottom input[type="text"] { 145 | outline: none; 146 | font-size: 15px; 147 | color: #fff; 148 | border:none; 149 | width: 90%; 150 | display: inline-block; 151 | background: transparent; 152 | font-family: 'Muli', sans-serif; 153 | text-align: center; 154 | letter-spacing: 2px; 155 | } 156 | .header-left-bottom input[type="password"]{ 157 | outline: none; 158 | font-size: 15px; 159 | color: #fff; 160 | border:none; 161 | width: 90%; 162 | display: inline-block; 163 | background: transparent; 164 | font-family: 'Muli', sans-serif; 165 | text-align: center; 166 | letter-spacing: 2px; 167 | } 168 | .header-left-bottom input[type="submit"] { 169 | background: #3be8b0; 170 | color: #FFF; 171 | font-size: 17px; 172 | text-transform: capitalize; 173 | padding: .5em 2em; 174 | letter-spacing: 1px; 175 | transition: 0.5s all; 176 | -webkit-transition: 0.5s all; 177 | -moz-transition: 0.5s all; 178 | -o-transition: 0.5s all; 179 | display: inline-block; 180 | cursor: pointer; 181 | outline: none; 182 | border: none; 183 | font-family: 'Muli', sans-serif; 184 | width: 100%; 185 | border-radius: 25px; 186 | } 187 | .header-left-bottom input[type="submit"]:hover { 188 | background: #ff4f81; 189 | transition: 0.5s all; 190 | -webkit-transition: 0.5s all; 191 | -moz-transition: 0.5s all; 192 | -o-transition: 0.5s all; 193 | } 194 | /*-- agileits --*/ 195 | .header-left-bottom p { 196 | font-size: 17px; 197 | color: #000; 198 | display: inline-block; 199 | text-align: center; 200 | width: 100%; 201 | margin: 20px 0 0; 202 | letter-spacing: 1px; 203 | } 204 | .header-left-bottom p a { 205 | font-size: 15px; 206 | color: #dd4b39; 207 | } 208 | .header-left-bottom p a:hover { 209 | color: #3be8b0; 210 | text-decoration: underline; 211 | } 212 | 213 | .social { 214 | margin: 1em 0 0; 215 | } 216 | .heading h5 { 217 | color: #c5c5c5; 218 | color: #000000; 219 | margin-top: 8px; 220 | font-size: 20px; 221 | } 222 | .social i.fa { 223 | font-size: 37px; 224 | margin: 0 5px; 225 | transition:0.5s all; 226 | } 227 | 228 | .social i.fa.fa-facebook-square:hover{ 229 | color: #3b5998; 230 | } 231 | .social i.fa.fa-twitter-square:hover{ 232 | color: #1da1f2; 233 | } 234 | .social i.fa.fa-linkedin-square:hover { 235 | color: #00a0dc; 236 | } 237 | .social i.fa.fa-google-plus-square:hover { 238 | color: #dd4b39; 239 | } 240 | .social i.fa { 241 | color: #fff; 242 | color: #505050; 243 | } 244 | .heading,.icons { 245 | width: 50%; 246 | float: left; 247 | } 248 | .login-check { 249 | position: relative; 250 | } 251 | .checkbox i { 252 | position: absolute; 253 | top: 0px; 254 | left: 29%; 255 | display: block; 256 | width: 20px; 257 | height: 18px; 258 | outline: none; 259 | border: 1px solid #9c9c9c; 260 | background: #fff; 261 | border-radius: 0px; 262 | -webkit-border-radius: 0px; 263 | -moz-border-radius: 0px; 264 | -o-border-radius: 0px; 265 | cursor: pointer; 266 | } 267 | .checkbox input:checked + i:after { 268 | opacity: 1; 269 | } 270 | .checkbox input + i:after { 271 | position: absolute; 272 | opacity: 0; 273 | transition: opacity 0.1s; 274 | -o-transition: opacity 0.1s; 275 | -ms-transition: opacity 0.1s; 276 | -moz-transition: opacity 0.1s; 277 | -webkit-transition: opacity 0.1s; 278 | } 279 | .checkbox input + i:after { 280 | content: url(../images/tick.png); 281 | top: -1px; 282 | left: 2px; 283 | width: 15px; 284 | height: 15px; 285 | } 286 | .checkbox { 287 | position: relative; 288 | display: block; 289 | padding-left: 30px; 290 | letter-spacing: 0px; 291 | font-size: 15px; 292 | color: #fff; 293 | } 294 | input[type="checkbox" i] { 295 | display: none; 296 | } 297 | /*-- w3layouts --*/ 298 | /*-- header end here --*/ 299 | h2 { 300 | font-size: 26em; 301 | color: #fff; 302 | line-height: 1.3em; 303 | letter-spacing: 10px; 304 | } 305 | h3 { 306 | font-size: 2em; 307 | color: #fff; 308 | } 309 | h3 a { 310 | font-size: 17px; 311 | padding-left: 12px; 312 | color: #04c9f9; 313 | text-decoration: underline; 314 | } 315 | /*-- copyright --*/ 316 | .copyright { 317 | margin: 4em 0 2em; 318 | text-align: center; 319 | } 320 | .copyright p { 321 | font-size: 14px; 322 | letter-spacing: 2px; 323 | color: #fff; 324 | line-height: 1.8em; 325 | } 326 | .copyright p a{ 327 | color: #fff; 328 | -webkit-transition: 0.5s all; 329 | -moz-transition: 0.5s all; 330 | -o-transition: 0.5s all; 331 | -ms-transition: 0.5s all; 332 | transition: 0.5s all; 333 | } 334 | .copyright p a:hover{ 335 | color: #04c9f9; 336 | } 337 | /*-- //copyright --*/ 338 | /*-- //main --*/ 339 | /*-- responsive-design --*/ 340 | @media(max-width:1440px){ 341 | .w3top-nav { 342 | padding: 1em 12em; 343 | } 344 | .header-main { 345 | width: 29%; 346 | } 347 | } 348 | @media(max-width:1280px){ 349 | .w3top-nav { 350 | padding: 1em 8em; 351 | } 352 | } 353 | @media(max-width:1080px){ 354 | .w3top-nav { 355 | padding: 1em 1em; 356 | } 357 | h2 { 358 | font-size: 21em; 359 | } 360 | .header-main { 361 | width: 40%; 362 | margin: 5em auto 0; 363 | } 364 | } 365 | @media(max-width:991px){ 366 | 367 | } 368 | @media(max-width:800px){ 369 | .w3top-nav-right ul li { 370 | margin: 0 0.5em; 371 | } 372 | .w3top-nav-left h1 { 373 | font-size: 2.5em; 374 | } 375 | h2 { 376 | font-size: 17em; 377 | } 378 | h3 { 379 | font-size: 1.5em; 380 | } 381 | .agileinfo-row { 382 | width: 90%; 383 | } 384 | .w3top-nav-right ul li a { 385 | font-size: 0.9em; 386 | } 387 | .header-main { 388 | width: 49%; 389 | } 390 | } 391 | @media(max-width:667px){ 392 | .w3top-nav-left { 393 | float: none; 394 | text-align: center; 395 | } 396 | .w3top-nav-right { 397 | float: none; 398 | margin-top: 1.5em; 399 | text-align: center; 400 | } 401 | h2 { 402 | font-size: 14em; 403 | } 404 | .header-main { 405 | width: 60%; 406 | margin: 3em auto 0; 407 | } 408 | .header-main h2 { 409 | padding-bottom: 40px; 410 | } 411 | } 412 | @media(max-width:568px){ 413 | .header-main { 414 | width: 67%; 415 | } 416 | .copyright { 417 | margin: 3em 0 2em; 418 | } 419 | } 420 | @media(max-width:480px){ 421 | .copyright p { 422 | font-size: 0.9em; 423 | padding: 0 1em; 424 | } 425 | h2 { 426 | font-size: 11em; 427 | margin-top: 30px; 428 | } 429 | .header-main { 430 | width: 80%; 431 | } 432 | } 433 | @media(max-width:414px){ 434 | h3 { 435 | font-size: 1.3em; 436 | } 437 | .checkbox i { 438 | left: 25%; 439 | } 440 | } 441 | @media(max-width:384px){ 442 | h2 { 443 | font-size: 9em; 444 | margin-top: 30px; 445 | } 446 | .w3top-nav-right ul li { 447 | margin: 0 0.3em; 448 | } 449 | h3 { 450 | font-size: 1.2em; 451 | } 452 | .w3top-nav-right ul li { 453 | margin: 0 0.2em; 454 | } 455 | } 456 | @media(max-width:375px){ 457 | h3 { 458 | font-size: 1.1em; 459 | } 460 | } 461 | @media(max-width:320px){ 462 | .copyright p { 463 | font-size: 0.8em; 464 | } 465 | .w3top-nav-left h1 { 466 | font-size: 2em; 467 | } 468 | .w3top-nav { 469 | padding: 1em 0em; 470 | } 471 | .w3top-nav-right ul li a { 472 | font-size: 0.8em; 473 | } 474 | .w3top-nav-right ul li { 475 | margin: 0 0.2em; 476 | } 477 | h2 { 478 | font-size: 7em; 479 | margin-top: 20px; 480 | } 481 | .agileinfo-row { 482 | width: 100%; 483 | } 484 | h3 { 485 | font-size: 1em; 486 | } 487 | .copyright p { 488 | padding: 0 0.8em; 489 | letter-spacing: 1px; 490 | } 491 | h3 a { 492 | font-size: 15px; 493 | } 494 | .header-main h2 { 495 | padding-bottom: 30px; 496 | letter-spacing:5px; 497 | } 498 | .icon1 { 499 | margin: 0 0 1.5em; 500 | } 501 | .header-main { 502 | width: 90%; 503 | margin: 2em auto 0; 504 | } 505 | .checkbox i { 506 | left: 21%; 507 | } 508 | .bottom { 509 | margin: 2em 0 0; 510 | } 511 | .copyright { 512 | margin: 2em 0 1em; 513 | } 514 | } 515 | /*-- //responsive-design --*/ 516 | -------------------------------------------------------------------------------- /accounts/static/css/style1.css: -------------------------------------------------------------------------------- 1 | /*-- 2 | Author: W3layouts 3 | Author URL: http://w3layouts.com 4 | License: Creative Commons Attribution 3.0 Unported 5 | License URL: http://creativecommons.org/licenses/by/3.0/ 6 | --*/ 7 | /*--reset--*/ 8 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,nav ul,nav li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} 9 | article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {display: block;} 10 | ol,ul{list-style:none;margin:0px;padding:0px;} 11 | blockquote,q{quotes:none;} 12 | blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} 13 | table{border-collapse:collapse;border-spacing:0;} 14 | /*--start editing from here--*/ 15 | a{text-decoration:none;} 16 | .txt-rt{text-align:right;}/* text align right */ 17 | .txt-lt{text-align:left;}/* text align left */ 18 | .txt-center{text-align:center;}/* text align center */ 19 | .float-rt{float:right;}/* float right */ 20 | .float-lt{float:left;}/* float left */ 21 | .clear{clear:both;}/* clear float */ 22 | .pos-relative{position:relative;}/* Position Relative */ 23 | .pos-absolute{position:absolute;}/* Position Absolute */ 24 | .vertical-base{ vertical-align:baseline;}/* vertical align baseline */ 25 | .vertical-top{ vertical-align:top;}/* vertical align top */ 26 | nav.vertical ul li{ display:block;}/* vertical menu */ 27 | nav.horizontal ul li{ display: inline-block;}/* horizontal menu */ 28 | img{max-width:100%;} 29 | /*--end reset--*/ 30 | body { 31 | margin:0; 32 | font-family: 'Alegreya Sans SC', sans-serif; 33 | background-repeat: no-repeat; 34 | background-attachment: fixed; 35 | background-position: center; 36 | background-size: cover; 37 | -webkit-background-size: cover; 38 | -moz-background-size: cover; 39 | -o-background-size: cover; 40 | min-height:100%; 41 | text-align: left; 42 | background:url(../images/laptop.jpg)no-repeat; 43 | background-position:0px 0px; 44 | } 45 | /*-- banner --*/ 46 | .video { 47 | background-position:0px 0px; 48 | text-align: left; 49 | min-height: 100%; 50 | background-size:cover; 51 | /*min-height:900px;*/ 52 | /*background-position:center; 53 | background-attachment:fixed;--*/ 54 | } 55 | h1,h2,h3,h4,h5,h6,input,p,a,select,button,textarea,label{ 56 | margin:0; 57 | } 58 | .text-center { 59 | text-align: center; 60 | } 61 | .clear{clear:both;} 62 | body a{ 63 | transition:0.5s all; 64 | -webkit-transition:0.5s all; 65 | -moz-transition:0.5s all; 66 | -o-transition:0.5s all; 67 | -ms-transition:0.5s all; 68 | text-decoration: none; 69 | } 70 | input[type="button"],input[type="submit"]{ 71 | transition:0.5s all; 72 | -webkit-transition:0.5s all; 73 | -moz-transition:0.5s all; 74 | -o-transition:0.5s all; 75 | -ms-transition:0.5s all; 76 | } 77 | h1,h2,h3,h4,h5,h6{ 78 | margin:0; 79 | } 80 | p{ 81 | margin:0; 82 | 83 | } 84 | ul{ 85 | margin:0; 86 | padding:0; 87 | } 88 | label{ 89 | margin:0; 90 | color: #dcffff; 91 | } 92 | .text-center { 93 | text-align:center; 94 | } 95 | .clear { 96 | clear: both; 97 | } 98 | .center-container { 99 | padding: 0; 100 | background: rgba(0, 0, 0, 0.62); 101 | } 102 | ::-webkit-input-placeholder { 103 | color: #777; 104 | } 105 | :-moz-placeholder { /* Firefox 18- */ 106 | color: #777; 107 | } 108 | ::-moz-placeholder { /* Firefox 19+ */ 109 | color: #777; 110 | } 111 | :-ms-input-placeholder { 112 | color:#777; 113 | } 114 | .bg { 115 | background-size: cover; 116 | background-attachment: fixed; 117 | } 118 | /* form */ 119 | .container { 120 | padding: 2.5em; 121 | width: 23%; 122 | margin: 3em auto; 123 | background:rgba(204, 198, 198, 0.24); 124 | } 125 | h1.agile-head{ 126 | font-size: 2.5em; 127 | text-transform: uppercase; 128 | color: #fff; 129 | font-weight: 600; 130 | padding-top: 1em; 131 | letter-spacing: 5px; 132 | font-family: 'Federo', sans-serif; 133 | 134 | } 135 | .w3layouts_main h1 { 136 | text-align: center; 137 | text-transform: capitalize; 138 | padding: 1em 0; 139 | color: #022411; 140 | } 141 | .w3layouts-title { 142 | margin: 1em 0; 143 | } 144 | h2.w3ls-left,h3.w3ls-left { 145 | color: #fff; 146 | float: left; 147 | font-size: 1em; 148 | text-transform:uppercase; 149 | } 150 | a.w3_play_icon1 { 151 | float: right; 152 | color: #fff; 153 | text-transform: uppercase; 154 | font-size: 1em; 155 | background: #4299a7; 156 | width: 15%; 157 | padding: 0.2em 0.6em; 158 | border-radius: 5px; 159 | outline:none; 160 | } 161 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 162 | padding: 0.7em 1em; 163 | margin: 1em 0em 1em 0; 164 | color: #000; 165 | width: 93%; 166 | border: none; 167 | font-size: 0.85em; 168 | outline: none; 169 | letter-spacing: 1px; 170 | background:rgba(255, 251, 251, 0.86); 171 | border-top:5px solid #4299a7; 172 | border-width: 6px 1px 1px; 173 | border-radius: 1px 9px 1px 9px; 174 | } 175 | .w3_agile_login p { 176 | font-size: 1.1em; 177 | color: #efefef; 178 | font-weight: 500; 179 | } 180 | .w3_agile_login input[type="submit"] { 181 | width:100%; 182 | text-transform: uppercase; 183 | background: #dcffff; 184 | outline: none; 185 | border: none; 186 | cursor: pointer; 187 | color: #000; 188 | font-size:0.85em; 189 | font-weight: 600; 190 | padding: 0.7em 0; 191 | letter-spacing: 1px; 192 | margin:1em 0; 193 | border-radius:5px; 194 | font-family: 'Alegreya Sans SC', sans-serif; 195 | } 196 | .w3_agile_login input[type="submit"]:hover { 197 | color: #fff; 198 | background: rgba(0, 0, 0, 0.54); 199 | } 200 | .login_w3ls{ 201 | margin: 1.5em 0 0; 202 | text-align:center; 203 | 204 | } 205 | .login_w3ls a { 206 | color: #dcffff; 207 | font-size: 1em; 208 | } 209 | .login_w3ls a:hover { 210 | color: #fff; 211 | } 212 | .agileits-w3layouts-copyright.text-center { 213 | padding:0 0 2.5em; 214 | } 215 | .agileits-w3layouts-copyright p,.agileits-w3layouts-copyright a{ 216 | color:#fff; 217 | letter-spacing:1px; 218 | line-height:2; 219 | } 220 | .agileits-w3layouts-copyright a:hover { 221 | color: #4299a7; 222 | } 223 | .bg { 224 | background: rgba(0, 0, 0, 0.5); 225 | } 226 | #small-dialog, #small-dialog1, #small-dialog2 { 227 | max-width: 541px; 228 | } 229 | .my-mfp-zoom-in.mfp-ready.mfp-bg { 230 | opacity: .9; 231 | } 232 | .contact-form1 { 233 | padding: 3em; 234 | background: rgba(220, 216, 216, 0.03); 235 | text-align:left; 236 | } 237 | .contact-form1 form.w3_agile_login { 238 | width: 75%; 239 | margin: 2em auto; 240 | } 241 | .contact-form1 h3.w3ls-left{ 242 | float:none; 243 | text-align:center; 244 | } 245 | .contact-form1.w3_agile_login{ 246 | margin:1em 0 0 247 | } 248 | .contact-form1 p{ 249 | color:#fff; 250 | } 251 | a.w3_play_icon1:hover { 252 | color: #fff; 253 | border:none; 254 | } 255 | a.w3_play_icon1:focus { 256 | border: none; 257 | } 258 | .contact-form1.w3_agile_login input[type="submit"]{ 259 | margin:2em 0; 260 | } 261 | /* -- Responsive code -- */ 262 | @media screen and (max-width: 1920px){ 263 | h1.agile-head { 264 | padding-top: 3em; 265 | } 266 | .container { 267 | margin: 8em auto 9em; 268 | } 269 | .agileits-w3layouts-copyright.text-center { 270 | padding: 0 0 11.5em; 271 | } 272 | } 273 | @media screen and (max-width: 1600px){ 274 | h1.agile-head { 275 | padding-top: 1.5em; 276 | } 277 | .container { 278 | margin: 4em auto; 279 | } 280 | .agileits-w3layouts-copyright.text-center { 281 | padding: 0 0 5em; 282 | } 283 | } 284 | @media screen and (max-width: 1440px){ 285 | .container { 286 | width: 28%; 287 | } 288 | } 289 | @media screen and (max-width: 1280px){ 290 | .container { 291 | width: 30%; 292 | } 293 | } 294 | @media screen and (max-width: 1080px){ 295 | .container { 296 | width: 34%; 297 | } 298 | } 299 | @media screen and (max-width: 1050px){ 300 | .container { 301 | width: 36%; 302 | } 303 | .contact-form1 { 304 | padding: 2em; 305 | } 306 | .contact-form1 form.w3_agile_login { 307 | width: 70%; 308 | } 309 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 310 | width: 91%; 311 | } 312 | } 313 | @media screen and (max-width: 1024px){ 314 | .container { 315 | width: 38%; 316 | } 317 | } 318 | @media screen and (max-width: 991px){ 319 | .container { 320 | width: 40%; 321 | } 322 | } 323 | @media screen and (max-width: 900px){ 324 | .container { 325 | width: 42%; 326 | } 327 | } 328 | @media screen and (max-width: 800px){ 329 | .container { 330 | width: 47%; 331 | } 332 | 333 | } 334 | @media screen and (max-width: 768px){ 335 | .container { 336 | width: 48%; 337 | } 338 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 339 | width: 92.5%; 340 | } 341 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 342 | width: 91.5%; 343 | } 344 | } 345 | @media screen and (max-width: 736px){ 346 | .container { 347 | width: 50%; 348 | } 349 | } 350 | @media screen and (max-width: 667px){ 351 | .container { 352 | width: 56%; 353 | } 354 | h1.agile-head { 355 | font-size: 2.3em; 356 | letter-spacing:3px; 357 | } 358 | 359 | } 360 | @media screen and (max-width: 640px){ 361 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 362 | width: 92.5%; 363 | } 364 | .container { 365 | width: 58%; 366 | } 367 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 368 | width: 90.5%; 369 | } 370 | } 371 | @media screen and (max-width: 600px){ 372 | .container { 373 | width: 62%; 374 | } 375 | } 376 | @media screen and (max-width: 568px){ 377 | .agileits-w3layouts-copyright p{ 378 | padding:0 1em; 379 | } 380 | .container { 381 | width: 66%; 382 | } 383 | h1.agile-head { 384 | font-size: 2em; 385 | } 386 | } 387 | @media screen and (max-width: 480px){ 388 | h1.agile-head { 389 | font-size: 2.1em; 390 | } 391 | .container{ 392 | padding:2.1em; 393 | } 394 | a.w3_play_icon1{ 395 | width:17%; 396 | } 397 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 398 | width: 91%; 399 | } 400 | .contact-form1 form.w3_agile_login { 401 | width: 90%; 402 | } 403 | 404 | } 405 | @media screen and (max-width: 414px){ 406 | h1.agile-head { 407 | font-size: 1.8em; 408 | letter-spacing: 3px; 409 | } 410 | h1.agile-head { 411 | padding-top: 2em; 412 | } 413 | a.w3_play_icon1{ 414 | width:20%; 415 | } 416 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 417 | width: 90%; 418 | } 419 | } 420 | @media screen and (max-width: 384px){ 421 | h1.agile-head { 422 | font-size: 1.7em; 423 | letter-spacing: 2px; 424 | } 425 | a.w3_play_icon1 { 426 | width: 21%; 427 | } 428 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 429 | width: 89%; 430 | } 431 | .contact-form1 .w3_agile_login input[type="email"],.contact-form1 .w3_agile_login input[type="password"] { 432 | width: 86%; 433 | } 434 | .w3_agile_login input[type="submit"] { 435 | width: 97%; 436 | } 437 | } 438 | @media screen and (max-width: 375px){ 439 | a.w3_play_icon1{ 440 | width:22%; 441 | } 442 | .contact-form1 { 443 | padding: 1em; 444 | } 445 | } 446 | @media screen and (max-width: 320px){ 447 | h1.agile-head { 448 | font-size: 1.5em; 449 | letter-spacing:0px; 450 | } 451 | .container{ 452 | padding:1em; 453 | width:82%; 454 | } 455 | a.w3_play_icon1{ 456 | width:21%; 457 | } 458 | .w3_agile_login input[type="email"], .w3_agile_login input[type="password"], .w3_agile_login input[type="text"] { 459 | width: 89%; 460 | } 461 | .contact-form1 .w3_agile_login input[type="email"],.contact-form1 .w3_agile_login input[type="password"] { 462 | width: 82%; 463 | } 464 | .agileits-w3layouts-copyright p { 465 | padding: 0 0.5em; 466 | } 467 | .agileits-w3layouts-copyright.text-center { 468 | padding: 0 0 8em; 469 | } 470 | .w3_agile_login input[type="submit"] { 471 | width: 94%; 472 | } 473 | } 474 | /* -- //Responsive code -- */ -------------------------------------------------------------------------------- /accounts/static/css/style2.css: -------------------------------------------------------------------------------- 1 | /* 2 | Author: W3layout 3 | Author URL: http://w3layouts.com 4 | License: Creative Commons Attribution 3.0 Unported 5 | License URL: http://creativecommons.org/licenses/by/3.0/ 6 | */ 7 | /*--reset--*/ 8 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,nav ul,nav li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} 9 | article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {display: block;} 10 | ol,ul{list-style:none;margin:0px;padding:0px;} 11 | blockquote,q{quotes:none;} 12 | blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} 13 | table{border-collapse:collapse;border-spacing:0;} 14 | /*--start editing from here--*/ 15 | a{text-decoration:none;} 16 | .txt-rt{text-align:right;}/* text align right */ 17 | .txt-lt{text-align:left;}/* text align left */ 18 | .txt-center{text-align:center;}/* text align center */ 19 | .float-rt{float:right;}/* float right */ 20 | .float-lt{float:left;}/* float left */ 21 | .clear{clear:both;}/* clear float */ 22 | .pos-relative{position:relative;}/* Position Relative */ 23 | .pos-absolute{position:absolute;}/* Position Absolute */ 24 | .vertical-base{ vertical-align:baseline;}/* vertical align baseline */ 25 | .vertical-top{ vertical-align:top;}/* vertical align top */ 26 | nav.vertical ul li{ display:block;}/* vertical menu */ 27 | nav.horizontal ul li{ display: inline-block;}/* horizontal menu */ 28 | img{max-width:100%;} 29 | /*--end reset--*/ 30 | body{ 31 | font-family: 'Roboto', sans-serif; 32 | font-size: 100%; 33 | background: url(../images/1.jpg)no-repeat center top; 34 | background-size: cover; 35 | -webkit-background-size: cover; 36 | -moz-background-size: cover; 37 | -o-background-size: cover; 38 | background-attachment: fixed; 39 | padding: 0 0 2em; 40 | } 41 | .bg-agile { 42 | width: 65%; 43 | margin: 0 auto; 44 | } 45 | 46 | h1 { 47 | font-size: 43px; 48 | font-weight: 700; 49 | text-transform: uppercase; 50 | color: #fff; 51 | word-spacing: 11px; 52 | letter-spacing: 6px; 53 | margin: 1.1em 0; 54 | text-align: center; 55 | font-family: 'Droid Sans', sans-serif; 56 | } 57 | /*--appointment--*/ 58 | .book-appointment h2 { 59 | text-align: center; 60 | font-size: 25px; 61 | color: #fff; 62 | text-transform: uppercase; 63 | margin-bottom: 1.5em; 64 | font-weight: 500; 65 | letter-spacing: 4px; 66 | font-family: 'Droid Sans', sans-serif; 67 | } 68 | .book-appointment { 69 | background:rgba(0, 0, 0, 0.24); 70 | padding: 50px 30px; 71 | } 72 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"],textarea { 73 | width: 85%; 74 | color: #fff; 75 | outline: none; 76 | font-size: 0.9em; 77 | line-height: 25px; 78 | padding: 5px 10px; 79 | border: none; 80 | 81 | -webkit-appearance: none; 82 | margin: .3em 0em 1em; 83 | font-family: 'Roboto', sans-serif; 84 | background: rgba(0, 0, 0, 0.24); 85 | } 86 | textarea { 87 | resize: none; 88 | height: 170px; 89 | } 90 | .book-appointment select.form-control { 91 | outline: none; 92 | font-size: 0.9em; 93 | padding: 7px 10px; 94 | width: 89.5%; 95 | margin: 5px 0px 16px; 96 | border-radius: 0; 97 | background: rgba(0, 0, 0, 0.24); 98 | color: #fff; 99 | border: none; 100 | 101 | font-family: 'Roboto', sans-serif; 102 | } 103 | .book-appointment select.form-control option { 104 | background:#111; 105 | } 106 | input[type=submit] { 107 | display: block; 108 | color: #fff; 109 | margin: 0 auto; 110 | margin-top: 2em; 111 | padding: 9px 30px; 112 | font-size: 1.04em; 113 | cursor: pointer; 114 | border: 2px solid #ff9900; 115 | outline: none; 116 | background: #ff9900; 117 | font-weight: 500; 118 | font-family: 'Roboto', sans-serif; 119 | transition: 0.5s all ease; 120 | -webkit-transition: 0.5s all ease; 121 | -moz-transition: 0.5s all ease; 122 | -o-transition: 0.5s all ease; 123 | -ms-transition: 0.5s all ease; 124 | } 125 | input[type=submit]:hover { 126 | background: #023e99; 127 | border-color: #023e99; 128 | color: #fefefe; 129 | transition: 0.5s all ease; 130 | -webkit-transition: 0.5s all ease; 131 | -moz-transition: 0.5s all ease; 132 | -o-transition: 0.5s all ease; 133 | -ms-transition: 0.5s all ease; 134 | } 135 | .arrows-reserve{ 136 | position:relative; 137 | color:#EFA52C; 138 | font-size:2em; 139 | } 140 | .arrows-reserve:before{ 141 | content: ''; 142 | position: absolute; 143 | bottom: 43%; 144 | left: 35.5%; 145 | background: #fff; 146 | width: 11%; 147 | height: 3px; 148 | } 149 | .arrows-reserve:after{ 150 | content: ''; 151 | position: absolute; 152 | bottom: 43%; 153 | right: 35.5%; 154 | background: #fff; 155 | width: 11%; 156 | height: 3px; 157 | } 158 | .left-agileits-w3layouts { 159 | width: 49%; 160 | float: left; 161 | } 162 | .right-agileinfo { 163 | width: 49%; 164 | float: left; 165 | } 166 | .book-appointment p { 167 | color: #ffffff; 168 | font-size: 17px; 169 | letter-spacing: .5px; 170 | text-transform:capitalize; 171 | } 172 | .same { 173 | padding: 0px 4px; 174 | } 175 | .gaps { 176 | padding-left: 3em; 177 | } 178 | p.wickedpicker__title { 179 | font-family: 'Roboto', sans-serif; 180 | background: #0b6fb2; 181 | color: #fff; 182 | text-transform: uppercase; 183 | letter-spacing: .5px; 184 | } 185 | .wickedpicker__close { 186 | color: #fefefe; 187 | } 188 | /*--//appointment--*/ 189 | 190 | /*--copyright--*/ 191 | .copy.w3ls { 192 | margin: 2.2em 0em 0; 193 | text-align: center; 194 | } 195 | .copy p { 196 | color: #fff; 197 | font-size: 16px; 198 | letter-spacing: 1px; 199 | word-spacing: 2px; 200 | } 201 | .copy p a { 202 | color: #0b6fb2; 203 | text-decoration: none; 204 | } 205 | .copy p a:hover { 206 | color: #fff; 207 | } 208 | /*--//copyright--*/ 209 | /*--responsive--*/ 210 | @media(max-width:1680px){ 211 | 212 | } 213 | @media(max-width:1440px){ 214 | 215 | } 216 | @media(max-width:1366px){ 217 | .gaps { 218 | padding-left: 2em; 219 | } 220 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 221 | width: 90%; 222 | } 223 | .book-appointment select.form-control { 224 | width: 95.5%; 225 | } 226 | h1 { 227 | font-size: 35px; 228 | } 229 | .same { 230 | padding: 0px 2px; 231 | } 232 | .book-appointment p { 233 | font-size: 16px; 234 | } 235 | .book-appointment h2 { 236 | font-size: 22px; 237 | } 238 | input[type=submit] { 239 | margin-top: 1.5em; 240 | font-size: 1.02em; 241 | } 242 | body { 243 | min-height: 700px; 244 | } 245 | } 246 | @media(max-width:1280px){ 247 | .bg-agile { 248 | width: 69%; 249 | } 250 | } 251 | @media(max-width:1080px){ 252 | .bg-agile { 253 | width: 77%; 254 | } 255 | .gaps { 256 | padding-left: 1.5em; 257 | } 258 | } 259 | @media(max-width:1050px){ 260 | h1 { 261 | font-size: 31px; 262 | margin: 1.3em 0; 263 | } 264 | } 265 | @media(max-width:1024px){ 266 | .book-appointment { 267 | padding: 40px 30px; 268 | } 269 | .book-appointment h2 { 270 | font-size: 21px; 271 | margin-bottom: 1.3em; 272 | } 273 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 274 | margin: .3em 0em .7em; 275 | } 276 | .book-appointment select.form-control { 277 | margin: 5px 0px 9.5px; 278 | } 279 | h1 { 280 | margin: 1.2em 0; 281 | } 282 | body { 283 | min-height: 638px; 284 | } 285 | .copy.w3ls { 286 | margin: 2em 0em 0; 287 | } 288 | } 289 | @media(max-width:991px){ 290 | input[type=submit] { 291 | font-size: 1.01em; 292 | padding: 7px 20px; 293 | } 294 | .book-appointment select.form-control { 295 | width: 96.5%; 296 | } 297 | } 298 | @media(max-width:900px){ 299 | .book-appointment h2 { 300 | font-size: 18px; 301 | letter-spacing: 3px; 302 | } 303 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 304 | line-height: 21px; 305 | } 306 | textarea { 307 | height: 21px; 308 | } 309 | .book-appointment select.form-control { 310 | padding: 5.4px 10px; 311 | } 312 | .book-appointment p { 313 | font-size: 14px; 314 | } 315 | .book-appointment { 316 | padding: 32px 30px; 317 | } 318 | h1 { 319 | font-size: 29px; 320 | letter-spacing: 5px; 321 | } 322 | .copy p { 323 | font-size: 14.4px; 324 | } 325 | .copy.w3ls { 326 | margin: 1.6em 0em 0; 327 | } 328 | body { 329 | min-height: 565px; 330 | } 331 | } 332 | @media(max-width:800px){ 333 | .bg-agile { 334 | width: 85%; 335 | } 336 | .same { 337 | padding: 0px 0px; 338 | } 339 | input[type=submit] { 340 | font-size: 0.9em; 341 | padding: 6px 18px; 342 | } 343 | } 344 | @media(max-width:768px){ 345 | body { 346 | min-height: 894.5px; 347 | } 348 | h1 { 349 | margin: 4em 0 2em; 350 | } 351 | .copy.w3ls { 352 | margin: 4em 0em 0; 353 | } 354 | } 355 | @media(max-width:767px){ 356 | h1 { 357 | margin: 1.2em 0; 358 | } 359 | .copy.w3ls { 360 | margin: 1.7em 0em 0; 361 | } 362 | .book-appointment select.form-control { 363 | padding: 5.4px 10px; 364 | } 365 | body { 366 | min-height: 565.7px; 367 | } 368 | } 369 | @media(max-width:736px){ 370 | .book-appointment select.form-control { 371 | width: 98%; 372 | } 373 | 374 | } 375 | @media(max-width:667px){ 376 | .gaps { 377 | padding-left: 1em; 378 | } 379 | .book-appointment p { 380 | font-size: 13px; 381 | } 382 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 383 | margin: .3em 0em .8em; 384 | } 385 | .book-appointment select.form-control { 386 | margin: 5.2px 0px 11px; 387 | } 388 | .copy p { 389 | font-size: 14px; 390 | } 391 | h1 { 392 | margin: 1.4em 0; 393 | font-size: 26px; 394 | } 395 | body { 396 | min-height: 564.1px; 397 | } 398 | } 399 | @media(max-width:640px){ 400 | .book-appointment h2 { 401 | font-size: 16px; 402 | } 403 | input[type=submit] { 404 | margin-top: 1em; 405 | } 406 | h1 { 407 | margin: 1.7em 0 1em; 408 | font-size: 24px; 409 | letter-spacing: 4px; 410 | } 411 | .copy.w3ls { 412 | margin: 1.4em 1.5em 0; 413 | } 414 | .copy p { 415 | line-height: 28px; 416 | } 417 | body { 418 | min-height: 559.5px; 419 | } 420 | } 421 | @media(max-width:600px){ 422 | .bg-agile { 423 | width: 88%; 424 | } 425 | .book-appointment select.form-control { 426 | width: 99%; 427 | } 428 | } 429 | @media(max-width:568px){ 430 | .copy p { 431 | word-spacing: 0px; 432 | } 433 | .copy.w3ls { 434 | margin: 1.2em 1.5em 0; 435 | } 436 | h1 { 437 | ` margin: 1.7em 0 1.1em; 438 | } 439 | } 440 | @media(max-width:480px){ 441 | .left-agileits-w3layouts { 442 | width: 100%; 443 | float: none; 444 | } 445 | .right-agileinfo { 446 | width: 100%; 447 | float: none; 448 | } 449 | .gaps { 450 | padding-left: 0; 451 | } 452 | .book-appointment { 453 | padding: 35px 40px; 454 | } 455 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 456 | width: 93.5%; 457 | } 458 | h1 { 459 | margin: 1.6em 0 1.1em; 460 | font-size: 22px; 461 | letter-spacing: 3px; 462 | word-spacing: 5px; 463 | } 464 | .bg-agile { 465 | width: 83%; 466 | } 467 | .book-appointment h2 { 468 | font-size: 15px; 469 | margin-bottom: 1em; 470 | } 471 | .copy p { 472 | line-height: 27px; 473 | font-size: 13px; 474 | } 475 | body { 476 | min-height: 809.5px; 477 | } 478 | } 479 | @media(max-width:414px){ 480 | h1 { 481 | margin: 2em 0 1.1em; 482 | font-size: 19px; 483 | letter-spacing: 2px; 484 | word-spacing: 3px; 485 | } 486 | .book-appointment h2 { 487 | font-size: 14px; 488 | margin-bottom: 1.5em; 489 | letter-spacing: 2.5px; 490 | } 491 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 492 | width: 91.5%; 493 | } 494 | } 495 | @media(max-width:384px){ 496 | h1 { 497 | margin: 1.5em 1em 1em; 498 | line-height: 33px; 499 | font-size: 19px; 500 | letter-spacing: 3px; 501 | } 502 | .book-appointment { 503 | padding: 35px 32px; 504 | } 505 | .book-appointment select.form-control { 506 | width: 100%; 507 | } 508 | .wickedpicker { 509 | width: 241px; 510 | } 511 | input[type=submit] { 512 | padding: 5px 14px; 513 | } 514 | body { 515 | min-height: 850px; 516 | } 517 | } 518 | @media(max-width:375px){ 519 | .bg-agile { 520 | width: 86%; 521 | } 522 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 523 | width: 91.8%; 524 | } 525 | } 526 | @media(max-width:320px){ 527 | .bg-agile { 528 | width: 91%; 529 | } 530 | .book-appointment h2 { 531 | letter-spacing: 2px; 532 | } 533 | h1 { 534 | margin: 1.3em 1em .5em; 535 | line-height: 30px; 536 | font-size: 18px; 537 | letter-spacing: 2px; 538 | } 539 | .book-appointment { 540 | padding: 35px 25px; 541 | } 542 | .book-appointment input[type="text"], .book-appointment input[type="date"], .book-appointment input[type="time"], .book-appointment input[type="email"], textarea { 543 | width: 91%; 544 | } 545 | body { 546 | min-height: 855px; 547 | } 548 | .copy.w3ls { 549 | margin: 1.1em 1.5em 0; 550 | } 551 | } 552 | /*--responsive--*/ -------------------------------------------------------------------------------- /dotfile.dot: -------------------------------------------------------------------------------- 1 | digraph model_graph { 2 | // Dotfile by Django-Extensions graph_models 3 | // Created: 2019-03-04 10:54 4 | // Cli Options: -a 5 | 6 | fontname = "Helvetica" 7 | fontsize = 8 8 | splines = true 9 | 10 | node [ 11 | fontname = "Helvetica" 12 | fontsize = 8 13 | shape = "plaintext" 14 | ] 15 | 16 | edge [ 17 | fontname = "Helvetica" 18 | fontsize = 8 19 | ] 20 | 21 | // Labels 22 | 23 | 24 | django_contrib_admin_models_LogEntry [label=< 25 | 26 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 45 | 46 | 47 | 48 | 53 | 54 | 55 | 56 | 61 | 62 | 63 | 64 | 69 | 70 | 71 | 72 | 77 | 78 | 79 | 80 | 85 | 86 | 87 | 88 | 93 | 94 | 95 |
27 | 28 | LogEntry 29 |
33 | id 34 | 35 | AutoField 36 |
41 | content_type 42 | 43 | ForeignKey (id) 44 |
49 | user 50 | 51 | ForeignKey (id) 52 |
57 | action_flag 58 | 59 | PositiveSmallIntegerField 60 |
65 | action_time 66 | 67 | DateTimeField 68 |
73 | change_message 74 | 75 | TextField 76 |
81 | object_id 82 | 83 | TextField 84 |
89 | object_repr 90 | 91 | CharField 92 |
96 | >] 97 | 98 | 99 | 100 | 101 | django_contrib_auth_models_AbstractUser [label=< 102 | 103 | 107 | 108 | 109 | 114 | 115 | 116 | 117 | 122 | 123 | 124 | 125 | 130 | 131 | 132 | 133 | 138 | 139 | 140 | 141 | 146 | 147 | 148 | 149 | 154 | 155 | 156 | 157 | 162 | 163 | 164 | 165 | 170 | 171 | 172 | 173 | 178 | 179 | 180 | 181 | 186 | 187 | 188 |
104 | 105 | AbstractUser
<AbstractBaseUser,PermissionsMixin> 106 |
110 | date_joined 111 | 112 | DateTimeField 113 |
118 | email 119 | 120 | EmailField 121 |
126 | first_name 127 | 128 | CharField 129 |
134 | is_active 135 | 136 | BooleanField 137 |
142 | is_staff 143 | 144 | BooleanField 145 |
150 | is_superuser 151 | 152 | BooleanField 153 |
158 | last_login 159 | 160 | DateTimeField 161 |
166 | last_name 167 | 168 | CharField 169 |
174 | password 175 | 176 | CharField 177 |
182 | username 183 | 184 | CharField 185 |
189 | >] 190 | 191 | django_contrib_auth_models_Permission [label=< 192 | 193 | 197 | 198 | 199 | 204 | 205 | 206 | 207 | 212 | 213 | 214 | 215 | 220 | 221 | 222 | 223 | 228 | 229 | 230 |
194 | 195 | Permission 196 |
200 | id 201 | 202 | AutoField 203 |
208 | content_type 209 | 210 | ForeignKey (id) 211 |
216 | codename 217 | 218 | CharField 219 |
224 | name 225 | 226 | CharField 227 |
231 | >] 232 | 233 | django_contrib_auth_models_Group [label=< 234 | 235 | 239 | 240 | 241 | 246 | 247 | 248 | 249 | 254 | 255 | 256 |
236 | 237 | Group 238 |
242 | id 243 | 244 | AutoField 245 |
250 | name 251 | 252 | CharField 253 |
257 | >] 258 | 259 | django_contrib_auth_models_User [label=< 260 | 261 | 265 | 266 | 267 | 272 | 273 | 274 | 275 | 280 | 281 | 282 | 283 | 288 | 289 | 290 | 291 | 296 | 297 | 298 | 299 | 304 | 305 | 306 | 307 | 312 | 313 | 314 | 315 | 320 | 321 | 322 | 323 | 328 | 329 | 330 | 331 | 336 | 337 | 338 | 339 | 344 | 345 | 346 | 347 | 352 | 353 | 354 |
262 | 263 | User
<AbstractUser> 264 |
268 | id 269 | 270 | AutoField 271 |
276 | date_joined 277 | 278 | DateTimeField 279 |
284 | email 285 | 286 | EmailField 287 |
292 | first_name 293 | 294 | CharField 295 |
300 | is_active 301 | 302 | BooleanField 303 |
308 | is_staff 309 | 310 | BooleanField 311 |
316 | is_superuser 317 | 318 | BooleanField 319 |
324 | last_login 325 | 326 | DateTimeField 327 |
332 | last_name 333 | 334 | CharField 335 |
340 | password 341 | 342 | CharField 343 |
348 | username 349 | 350 | CharField 351 |
355 | >] 356 | 357 | 358 | 359 | 360 | django_contrib_contenttypes_models_ContentType [label=< 361 | 362 | 366 | 367 | 368 | 373 | 374 | 375 | 376 | 381 | 382 | 383 | 384 | 389 | 390 | 391 |
363 | 364 | ContentType 365 |
369 | id 370 | 371 | AutoField 372 |
377 | app_label 378 | 379 | CharField 380 |
385 | model 386 | 387 | CharField 388 |
392 | >] 393 | 394 | 395 | 396 | 397 | django_contrib_sessions_base_session_AbstractBaseSession [label=< 398 | 399 | 403 | 404 | 405 | 410 | 411 | 412 | 413 | 418 | 419 | 420 |
400 | 401 | AbstractBaseSession 402 |
406 | expire_date 407 | 408 | DateTimeField 409 |
414 | session_data 415 | 416 | TextField 417 |
421 | >] 422 | 423 | django_contrib_sessions_models_Session [label=< 424 | 425 | 429 | 430 | 431 | 436 | 437 | 438 | 439 | 444 | 445 | 446 | 447 | 452 | 453 | 454 |
426 | 427 | Session
<AbstractBaseSession> 428 |
432 | session_key 433 | 434 | CharField 435 |
440 | expire_date 441 | 442 | DateTimeField 443 |
448 | session_data 449 | 450 | TextField 451 |
455 | >] 456 | 457 | 458 | 459 | 460 | accounts_models_UserProfileInfo [label=< 461 | 462 | 466 | 467 | 468 | 473 | 474 | 475 | 476 | 481 | 482 | 483 | 484 | 489 | 490 | 491 |
463 | 464 | UserProfileInfo 465 |
469 | id 470 | 471 | AutoField 472 |
477 | user 478 | 479 | OneToOneField (id) 480 |
485 | profile_pic 486 | 487 | ImageField 488 |
492 | >] 493 | 494 | 495 | 496 | 497 | predict_risk_models_Predictions [label=< 498 | 499 | 503 | 504 | 505 | 510 | 511 | 512 | 513 | 518 | 519 | 520 | 521 | 526 | 527 | 528 | 529 | 534 | 535 | 536 | 537 | 542 | 543 | 544 | 545 | 550 | 551 | 552 | 553 | 558 | 559 | 560 | 561 | 566 | 567 | 568 | 569 | 574 | 575 | 576 | 577 | 582 | 583 | 584 | 585 | 590 | 591 | 592 | 593 | 598 | 599 | 600 | 601 | 606 | 607 | 608 | 609 | 614 | 615 | 616 | 617 | 622 | 623 | 624 | 625 | 630 | 631 | 632 | 633 | 638 | 639 | 640 |
500 | 501 | Predictions 502 |
506 | id 507 | 508 | AutoField 509 |
514 | profile 515 | 516 | ForeignKey (id) 517 |
522 | age 523 | 524 | IntegerField 525 |
530 | cp 531 | 532 | IntegerField 533 |
538 | exercise_induced_angina 539 | 540 | IntegerField 541 |
546 | fasting_blood_sugar 547 | 548 | IntegerField 549 |
554 | max_heart_rate 555 | 556 | IntegerField 557 |
562 | num 563 | 564 | IntegerField 565 |
570 | number_of_vessels 571 | 572 | IntegerField 573 |
578 | predicted_on 579 | 580 | DateTimeField 581 |
586 | resting_bp 587 | 588 | IntegerField 589 |
594 | resting_ecg 595 | 596 | IntegerField 597 |
602 | serum_cholesterol 603 | 604 | IntegerField 605 |
610 | sex 611 | 612 | IntegerField 613 |
618 | st_depression 619 | 620 | DecimalField 621 |
626 | st_slope 627 | 628 | IntegerField 629 |
634 | thallium_scan_results 635 | 636 | IntegerField 637 |
641 | >] 642 | 643 | 644 | 645 | 646 | // Relations 647 | 648 | django_contrib_admin_models_LogEntry -> django_contrib_auth_models_User 649 | [label="user (logentry)"] [arrowhead=none, arrowtail=dot, dir=both]; 650 | 651 | django_contrib_admin_models_LogEntry -> django_contrib_contenttypes_models_ContentType 652 | [label="content_type (logentry)"] [arrowhead=none, arrowtail=dot, dir=both]; 653 | 654 | django_contrib_auth_base_user_AbstractBaseUser [label=< 655 | 656 | 659 |
657 | AbstractBaseUser 658 |
660 | >] 661 | django_contrib_auth_models_AbstractUser -> django_contrib_auth_base_user_AbstractBaseUser 662 | [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both]; 663 | django_contrib_auth_models_PermissionsMixin [label=< 664 | 665 | 668 |
666 | PermissionsMixin 667 |
669 | >] 670 | django_contrib_auth_models_AbstractUser -> django_contrib_auth_models_PermissionsMixin 671 | [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both]; 672 | 673 | django_contrib_auth_models_Permission -> django_contrib_contenttypes_models_ContentType 674 | [label="content_type (permission)"] [arrowhead=none, arrowtail=dot, dir=both]; 675 | 676 | django_contrib_auth_models_Group -> django_contrib_auth_models_Permission 677 | [label="permissions (group)"] [arrowhead=dot arrowtail=dot, dir=both]; 678 | 679 | django_contrib_auth_models_User -> django_contrib_auth_models_Group 680 | [label="groups (user)"] [arrowhead=dot arrowtail=dot, dir=both]; 681 | 682 | django_contrib_auth_models_User -> django_contrib_auth_models_Permission 683 | [label="user_permissions (user)"] [arrowhead=dot arrowtail=dot, dir=both]; 684 | 685 | django_contrib_auth_models_User -> django_contrib_auth_models_AbstractUser 686 | [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both]; 687 | 688 | 689 | 690 | django_contrib_sessions_models_Session -> django_contrib_sessions_base_session_AbstractBaseSession 691 | [label="abstract\ninheritance"] [arrowhead=empty, arrowtail=none, dir=both]; 692 | 693 | 694 | accounts_models_UserProfileInfo -> django_contrib_auth_models_User 695 | [label="user (profile)"] [arrowhead=none, arrowtail=none, dir=both]; 696 | 697 | 698 | predict_risk_models_Predictions -> accounts_models_UserProfileInfo 699 | [label="profile (predict)"] [arrowhead=none, arrowtail=dot, dir=both]; 700 | 701 | 702 | } 703 | -------------------------------------------------------------------------------- /accounts/static/css/jquery-ui.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.9.2 - 2012-11-23 2 | * http://jqueryui.com 3 | * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css 4 | * Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ 5 | 6 | /* Layout helpers 7 | ----------------------------------*/ 8 | .ui-helper-hidden { display: none; } 9 | .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } 10 | .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } 11 | .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } 12 | .ui-helper-clearfix:after { clear: both; } 13 | .ui-helper-clearfix { zoom: 1; } 14 | .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } 15 | 16 | /*----*/ 17 | #ui-datepicker-div { 18 | font-family: 'Open Sans', sans-serif; 19 | background: #111313; 20 | border: none; 21 | border-top: none; 22 | } 23 | .ui-datepicker-title span{ 24 | color: #fff; 25 | font-family: 'Open Sans', sans-serif; 26 | font-size: 1.2em; 27 | } 28 | /* Interaction Cues 29 | ----------------------------------*/ 30 | .ui-state-disabled { cursor: default !important; } 31 | 32 | 33 | /* Icons 34 | ----------------------------------*/ 35 | 36 | /* states and images */ 37 | .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } 38 | 39 | 40 | /* Misc visuals 41 | ----------------------------------*/ 42 | 43 | /* Overlays */ 44 | .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 45 | 46 | .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; } 47 | .ui-accordion .ui-accordion-icons { padding-left: 2.2em; } 48 | .ui-accordion .ui-accordion-noicons { padding-left: .7em; } 49 | .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; } 50 | .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } 51 | .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; } 52 | 53 | .ui-autocomplete { 54 | position: absolute; 55 | top: 0; 56 | left: 0; 57 | cursor: default; 58 | } 59 | 60 | /* workarounds */ 61 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ 62 | 63 | .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ 64 | .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } 65 | .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ 66 | button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ 67 | .ui-button-icons-only { width: 3.4em; } 68 | button.ui-button-icons-only { width: 3.7em; } 69 | 70 | /*button text element */ 71 | .ui-button .ui-button-text { display: block; line-height: 1.4; } 72 | .ui-button-text-only .ui-button-text { padding: .4em 1em; } 73 | .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } 74 | .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } 75 | .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } 76 | .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } 77 | /* no icon support for input elements, provide padding by default */ 78 | input.ui-button { padding: .4em 1em; } 79 | 80 | /*button icon element(s) */ 81 | .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } 82 | .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } 83 | .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } 84 | .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 85 | .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 86 | 87 | /*button sets*/ 88 | .ui-buttonset { margin-right: 7px; } 89 | .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } 90 | 91 | /* workarounds */ 92 | button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ 93 | 94 | .ui-datepicker {width:16.2%; 95 | padding: 0 0em 0; 96 | } 97 | .ui-datepicker .ui-datepicker-header { 98 | position: relative; 99 | padding: .56em 0; 100 | background:#0b6fb2; 101 | text-transform: uppercase; 102 | } 103 | .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 10px; width: 1.8em; height: 1.8em; } 104 | .ui-datepicker .ui-datepicker-prev { 105 | left: 10px; 106 | width: 14px; 107 | height: 20px; 108 | background: url(../images/c-arrows.png) no-repeat -0px -0px; 109 | cursor: pointer; 110 | } 111 | .ui-datepicker .ui-datepicker-next { 112 | right: 10px; 113 | width: 14px; 114 | height: 20px; 115 | background: url(../images/c-arrows.png) no-repeat -16px -0px; 116 | cursor: pointer; 117 | } 118 | .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } 119 | .ui-datepicker .ui-datepicker-title { 120 | margin: 0 2.3em; 121 | line-height: 1.8em; 122 | text-align: center; 123 | font-size: 0.74em; 124 | letter-spacing: 1px; 125 | font-weight: normal; 126 | } 127 | .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } 128 | .ui-datepicker select.ui-datepicker-month-year {width: 100%;} 129 | .ui-datepicker select.ui-datepicker-month, 130 | .ui-datepicker select.ui-datepicker-year { width: 49%;} 131 | .ui-datepicker table {width: 100%; font-size: .7em; border-collapse: collapse; margin:0 0 .4em; } 132 | .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } 133 | .ui-datepicker th span{ 134 | color: #FFF; 135 | font-family: 'Open Sans', sans-serif; 136 | font-size: 0.9em; 137 | text-transform: uppercase; 138 | } 139 | .ui-datepicker td { border: 0; padding: 1px; } 140 | .ui-datepicker td span, .ui-datepicker td a { 141 | display: block; padding: .3em; text-align: center; text-decoration: none; 142 | color: #EEE; 143 | font-family: 'Open Sans', sans-serif; 144 | font-size: 1.2em; 145 | } 146 | 147 | .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } 148 | .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } 149 | .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } 150 | 151 | /* with multiple calendars */ 152 | .ui-datepicker.ui-datepicker-multi { width:auto; } 153 | .ui-datepicker-multi .ui-datepicker-group { float:left; } 154 | .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } 155 | .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } 156 | .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } 157 | .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } 158 | .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } 159 | .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } 160 | .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } 161 | .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } 162 | 163 | /* RTL support */ 164 | .ui-datepicker-rtl { direction: rtl; } 165 | .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } 166 | .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } 167 | .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } 168 | .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } 169 | .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } 170 | .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } 171 | .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } 172 | .ui-datepicker-rtl .ui-datepicker-group { float:right; } 173 | .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 174 | .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 175 | 176 | /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ 177 | .ui-datepicker-cover { 178 | position: absolute; /*must have*/ 179 | z-index: -1; /*must have*/ 180 | filter: mask(); /*must have*/ 181 | top: -4px; /*must have*/ 182 | left: -4px; /*must have*/ 183 | width: 200px; /*must have*/ 184 | height: 200px; /*must have*/ 185 | } 186 | .ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; } 187 | .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } 188 | .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 189 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } 190 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 191 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } 192 | .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } 193 | .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } 194 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 195 | .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 196 | .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 197 | .ui-draggable .ui-dialog-titlebar { cursor: move; } 198 | 199 | .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; } 200 | .ui-menu .ui-menu { margin-top: -3px; position: absolute; } 201 | .ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; } 202 | .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } 203 | .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; } 204 | .ui-menu .ui-menu-item a.ui-state-focus, 205 | .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } 206 | 207 | .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; } 208 | .ui-menu .ui-state-disabled a { cursor: default; } 209 | 210 | /* icon support */ 211 | .ui-menu-icons { position: relative; } 212 | .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } 213 | 214 | /* left-aligned */ 215 | .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } 216 | 217 | /* right-aligned */ 218 | .ui-menu .ui-menu-icon { position: static; float: right; } 219 | 220 | .ui-progressbar { height:2em; text-align: left; overflow: hidden; } 221 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } 222 | .ui-resizable { position: relative;} 223 | .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } 224 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 225 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 226 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 227 | .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 228 | .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 229 | .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 230 | .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 231 | .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 232 | .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} 233 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 234 | 235 | .ui-slider { position: relative; text-align: left; } 236 | .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } 237 | .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } 238 | 239 | .ui-slider-horizontal { height: .8em; } 240 | .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } 241 | .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } 242 | .ui-slider-horizontal .ui-slider-range-min { left: 0; } 243 | .ui-slider-horizontal .ui-slider-range-max { right: 0; } 244 | 245 | .ui-slider-vertical { width: .8em; height: 100px; } 246 | .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } 247 | .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } 248 | .ui-slider-vertical .ui-slider-range-min { bottom: 0; } 249 | .ui-slider-vertical .ui-slider-range-max { top: 0; } 250 | .ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } 251 | .ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } 252 | .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } 253 | .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */ 254 | .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */ 255 | .ui-spinner-up { top: 0; } 256 | .ui-spinner-down { bottom: 0; } 257 | 258 | /* TR overrides */ 259 | .ui-spinner .ui-icon-triangle-1-s { 260 | /* need to fix icons sprite */ 261 | background-position:-65px -16px; 262 | } 263 | 264 | .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 265 | .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } 266 | .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; } 267 | .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } 268 | .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } 269 | .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } 270 | .ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ 271 | .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } 272 | 273 | .ui-tooltip { 274 | padding: 8px; 275 | position: absolute; 276 | z-index: 9999; 277 | max-width: 300px; 278 | -webkit-box-shadow: 0 0 5px #aaa; 279 | box-shadow: 0 0 5px #aaa; 280 | } 281 | /* Fades and background-images don't work well together in IE6, drop the image */ 282 | * html .ui-tooltip { 283 | background-image: none; 284 | } 285 | body .ui-tooltip { border-width: 2px; } 286 | 287 | /* Component containers 288 | ----------------------------------*/ 289 | .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em/*{fsDefault}*/; } 290 | .ui-widget .ui-widget { font-size: 1em; } 291 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } 292 | 293 | /* Interaction states 294 | ----------------------------------*/ 295 | .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { /*{borderColorDefault}*/; background:none/*{bgColorDefault}*//*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #fff/*{fcDefault}*/; } 296 | .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #fff/*{fcDefault}*/; text-decoration: none; } 297 | .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121/*{fcHover}*/; text-decoration: none; } 298 | .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } 299 | .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } 300 | 301 | /* Interaction Cues 302 | ----------------------------------*/ 303 | .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { 304 | border: 1px solid #ffffff;/*{borderColorHighlight}*/; 305 | 306 | } 307 | .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } 308 | .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } 309 | .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } 310 | .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } 311 | .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } 312 | .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } 313 | .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } 314 | .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */ 315 | 316 | /* Icons 317 | ----------------------------------*/ 318 | 319 | /* states and images */ 320 | .ui-icon.ui-icon-circle-triangle-w { 321 | 322 | } 323 | 324 | /* positioning */ 325 | .ui-icon-carat-1-n { background-position: 0 0; } 326 | .ui-icon-carat-1-ne { background-position: -16px 0; } 327 | .ui-icon-carat-1-e { background-position: -32px 0; } 328 | .ui-icon-carat-1-se { background-position: -48px 0; } 329 | .ui-icon-carat-1-s { background-position: -64px 0; } 330 | .ui-icon-carat-1-sw { background-position: -80px 0; } 331 | .ui-icon-carat-1-w { background-position: -96px 0; } 332 | .ui-icon-carat-1-nw { background-position: -112px 0; } 333 | .ui-icon-carat-2-n-s { background-position: -128px 0; } 334 | .ui-icon-carat-2-e-w { background-position: -144px 0; } 335 | .ui-icon-triangle-1-n { background-position: 0 -16px; } 336 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } 337 | .ui-icon-triangle-1-e { background-position: -32px -16px; } 338 | .ui-icon-triangle-1-se { background-position: -48px -16px; } 339 | .ui-icon-triangle-1-s { background-position: -64px -16px; } 340 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } 341 | .ui-icon-triangle-1-w { background-position: -96px -16px; } 342 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } 343 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } 344 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } 345 | .ui-icon-arrow-1-n { background-position: 0 -32px; } 346 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } 347 | .ui-icon-arrow-1-e { background-position: -32px -32px; } 348 | .ui-icon-arrow-1-se { background-position: -48px -32px; } 349 | .ui-icon-arrow-1-s { background-position: -64px -32px; } 350 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } 351 | .ui-icon-arrow-1-w { background-position: -96px -32px; } 352 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } 353 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } 354 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } 355 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } 356 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } 357 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } 358 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } 359 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } 360 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } 361 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; } 362 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } 363 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } 364 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } 365 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } 366 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } 367 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } 368 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } 369 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } 370 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } 371 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } 372 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } 373 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } 374 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } 375 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } 376 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } 377 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } 378 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } 379 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } 380 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } 381 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } 382 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } 383 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } 384 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } 385 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } 386 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } 387 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } 388 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } 389 | .ui-icon-arrow-4 { background-position: 0 -80px; } 390 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } 391 | .ui-icon-extlink { background-position: -32px -80px; } 392 | .ui-icon-newwin { background-position: -48px -80px; } 393 | .ui-icon-refresh { background-position: -64px -80px; } 394 | .ui-icon-shuffle { background-position: -80px -80px; } 395 | .ui-icon-transfer-e-w { background-position: -96px -80px; } 396 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } 397 | .ui-icon-folder-collapsed { background-position: 0 -96px; } 398 | .ui-icon-folder-open { background-position: -16px -96px; } 399 | .ui-icon-document { background-position: -32px -96px; } 400 | .ui-icon-document-b { background-position: -48px -96px; } 401 | .ui-icon-note { background-position: -64px -96px; } 402 | .ui-icon-mail-closed { background-position: -80px -96px; } 403 | .ui-icon-mail-open { background-position: -96px -96px; } 404 | .ui-icon-suitcase { background-position: -112px -96px; } 405 | .ui-icon-comment { background-position: -128px -96px; } 406 | .ui-icon-person { background-position: -144px -96px; } 407 | .ui-icon-print { background-position: -160px -96px; } 408 | .ui-icon-trash { background-position: -176px -96px; } 409 | .ui-icon-locked { background-position: -192px -96px; } 410 | .ui-icon-unlocked { background-position: -208px -96px; } 411 | .ui-icon-bookmark { background-position: -224px -96px; } 412 | .ui-icon-tag { background-position: -240px -96px; } 413 | .ui-icon-home { background-position: 0 -112px; } 414 | .ui-icon-flag { background-position: -16px -112px; } 415 | .ui-icon-calendar { background-position: -32px -112px; } 416 | .ui-icon-cart { background-position: -48px -112px; } 417 | .ui-icon-pencil { background-position: -64px -112px; } 418 | .ui-icon-clock { background-position: -80px -112px; } 419 | .ui-icon-disk { background-position: -96px -112px; } 420 | .ui-icon-calculator { background-position: -112px -112px; } 421 | .ui-icon-zoomin { background-position: -128px -112px; } 422 | .ui-icon-zoomout { background-position: -144px -112px; } 423 | .ui-icon-search { background-position: -160px -112px; } 424 | .ui-icon-wrench { background-position: -176px -112px; } 425 | .ui-icon-gear { background-position: -192px -112px; } 426 | .ui-icon-heart { background-position: -208px -112px; } 427 | .ui-icon-star { background-position: -224px -112px; } 428 | .ui-icon-link { background-position: -240px -112px; } 429 | .ui-icon-cancel { background-position: 0 -128px; } 430 | .ui-icon-plus { background-position: -16px -128px; } 431 | .ui-icon-plusthick { background-position: -32px -128px; } 432 | .ui-icon-minus { background-position: -48px -128px; } 433 | .ui-icon-minusthick { background-position: -64px -128px; } 434 | .ui-icon-close { background-position: -80px -128px; } 435 | .ui-icon-closethick { background-position: -96px -128px; } 436 | .ui-icon-key { background-position: -112px -128px; } 437 | .ui-icon-lightbulb { background-position: -128px -128px; } 438 | .ui-icon-scissors { background-position: -144px -128px; } 439 | .ui-icon-clipboard { background-position: -160px -128px; } 440 | .ui-icon-copy { background-position: -176px -128px; } 441 | .ui-icon-contact { background-position: -192px -128px; } 442 | .ui-icon-image { background-position: -208px -128px; } 443 | .ui-icon-video { background-position: -224px -128px; } 444 | .ui-icon-script { background-position: -240px -128px; } 445 | .ui-icon-alert { background-position: 0 -144px; } 446 | .ui-icon-info { background-position: -16px -144px; } 447 | .ui-icon-notice { background-position: -32px -144px; } 448 | .ui-icon-help { background-position: -48px -144px; } 449 | .ui-icon-check { background-position: -64px -144px; } 450 | .ui-icon-bullet { background-position: -80px -144px; } 451 | .ui-icon-radio-on { background-position: -96px -144px; } 452 | .ui-icon-radio-off { background-position: -112px -144px; } 453 | .ui-icon-pin-w { background-position: -128px -144px; } 454 | .ui-icon-pin-s { background-position: -144px -144px; } 455 | .ui-icon-play { background-position: 0 -160px; } 456 | .ui-icon-pause { background-position: -16px -160px; } 457 | .ui-icon-seek-next { background-position: -32px -160px; } 458 | .ui-icon-seek-prev { background-position: -48px -160px; } 459 | .ui-icon-seek-end { background-position: -64px -160px; } 460 | .ui-icon-seek-start { background-position: -80px -160px; } 461 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ 462 | .ui-icon-seek-first { background-position: -80px -160px; } 463 | .ui-icon-stop { background-position: -96px -160px; } 464 | .ui-icon-eject { background-position: -112px -160px; } 465 | .ui-icon-volume-off { background-position: -128px -160px; } 466 | .ui-icon-volume-on { background-position: -144px -160px; } 467 | .ui-icon-power { background-position: 0 -176px; } 468 | .ui-icon-signal-diag { background-position: -16px -176px; } 469 | .ui-icon-signal { background-position: -32px -176px; } 470 | .ui-icon-battery-0 { background-position: -48px -176px; } 471 | .ui-icon-battery-1 { background-position: -64px -176px; } 472 | .ui-icon-battery-2 { background-position: -80px -176px; } 473 | .ui-icon-battery-3 { background-position: -96px -176px; } 474 | .ui-icon-circle-plus { background-position: 0 -192px; } 475 | .ui-icon-circle-minus { background-position: -16px -192px; } 476 | .ui-icon-circle-close { background-position: -32px -192px; } 477 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } 478 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } 479 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } 480 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } 481 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } 482 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } 483 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } 484 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } 485 | .ui-icon-circle-zoomin { background-position: -176px -192px; } 486 | .ui-icon-circle-zoomout { background-position: -192px -192px; } 487 | .ui-icon-circle-check { background-position: -208px -192px; } 488 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } 489 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } 490 | .ui-icon-circlesmall-close { background-position: -32px -208px; } 491 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } 492 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } 493 | .ui-icon-squaresmall-close { background-position: -80px -208px; } 494 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } 495 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } 496 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } 497 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } 498 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } 499 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } 500 | 501 | 502 | /* Misc visuals 503 | ----------------------------------*/ 504 | 505 | /* Corner radius */ 506 | 507 | /* Overlays */ 508 | .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } 509 | @media only screen and (max-width: 1440px) and (min-width: 1366px) { 510 | .ui-datepicker { 511 | width: 22%; 512 | } 513 | } 514 | @media only screen and (max-width: 1366px) and (min-width: 1280px) { 515 | .ui-datepicker { 516 | width: 22.15%; 517 | } 518 | } 519 | @media (max-width: 1280px){ 520 | .ui-datepicker { 521 | width: 22.3%; 522 | } 523 | } 524 | @media (max-width: 1080px){ 525 | .ui-datepicker { 526 | width: 24.3%; 527 | } 528 | } 529 | @media (max-width: 1024px){ 530 | .ui-datepicker { 531 | width: 24.7%; 532 | } 533 | } 534 | @media (max-width:991px){ 535 | .ui-datepicker { 536 | width: 23.5%; 537 | } 538 | } 539 | @media (max-width: 800px){ 540 | .ui-datepicker { 541 | width: 29%; 542 | } 543 | } 544 | @media (max-width:768px){ 545 | .ui-datepicker { 546 | width: 30.4%; 547 | } 548 | } 549 | @media only screen and (max-width: 768px) and (min-width: 640px) { 550 | .ui-datepicker .ui-datepicker-header { 551 | padding: 5px 0; 552 | } 553 | .ui-datepicker-title span { 554 | font-size: 0.85em; 555 | } 556 | .ui-datepicker th { 557 | padding: 2px; 558 | } 559 | .ui-datepicker td span, .ui-datepicker td a { 560 | display: block; 561 | padding: .1em; 562 | font-size: 1em; 563 | } 564 | } 565 | @media (max-width:640px){ 566 | .ui-datepicker { 567 | width: 30%; 568 | } 569 | } 570 | @media only screen and (max-width: 640px) and (min-width: 480px) { 571 | .ui-datepicker .ui-datepicker-header { 572 | padding: 5px 0; 573 | } 574 | .ui-datepicker-title span { 575 | font-size: 0.85em; 576 | } 577 | .ui-datepicker th { 578 | padding: 2px; 579 | } 580 | .ui-datepicker td span, .ui-datepicker td a { 581 | display: block; 582 | padding: .1em; 583 | font-size: 1em; 584 | } 585 | } 586 | @media (max-width:480px){ 587 | .ui-datepicker { 588 | width: 37.5%; 589 | } 590 | } 591 | @media only screen and (max-width: 480px) and (min-width: 320px) { 592 | .ui-datepicker .ui-datepicker-header { 593 | padding: 5px 0; 594 | } 595 | .ui-datepicker-title span { 596 | font-size: 0.85em; 597 | } 598 | .ui-datepicker th { 599 | padding: 4px; 600 | } 601 | .ui-datepicker td span, .ui-datepicker td a { 602 | display: block; 603 | padding: .4em; 604 | font-size: 1em; 605 | } 606 | } 607 | @media (max-width: 414px){ 608 | .ui-datepicker { 609 | width: 73.5%; 610 | } 611 | } 612 | @media (max-width:384px){ 613 | .ui-datepicker { 614 | width: 73.5%; 615 | } 616 | } 617 | @media (max-width:320px){ 618 | .ui-datepicker { 619 | width: 73.5%; 620 | } 621 | } --------------------------------------------------------------------------------