Repository: sumitkumar1503/schoolmanagement Branch: master Commit: eb337a2a6e9b Files: 82 Total size: 154.1 KB Directory structure: gitextract_c18i8hss/ ├── .gitignore ├── LICENSE ├── README.md ├── manage.py ├── requirements.txt ├── school/ │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations/ │ │ ├── 0001_initial.py │ │ ├── 0002_teacherextra_status.py │ │ ├── 0003_auto_20200504_0939.py │ │ ├── 0004_auto_20200504_1753.py │ │ ├── 0005_auto_20200505_1038.py │ │ ├── 0006_auto_20200506_1719.py │ │ ├── 0007_auto_20200506_1720.py │ │ ├── 0008_studentextra_status.py │ │ ├── 0009_auto_20200507_1017.py │ │ ├── 0010_notice_by.py │ │ ├── 0011_auto_20200508_0913.py │ │ └── __init__.py │ ├── models.py │ └── views.py ├── schoolmanagement/ │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── templates/ └── school/ ├── aboutus.html ├── admin_add_student.html ├── admin_add_teacher.html ├── admin_approve_student.html ├── admin_approve_teacher.html ├── admin_attendance.html ├── admin_dashboard.html ├── admin_dashboard_cards.html ├── admin_fee.html ├── admin_notice.html ├── admin_student.html ├── admin_take_attendance.html ├── admin_teacher.html ├── admin_teacher_student_card.html ├── admin_update_student.html ├── admin_update_teacher.html ├── admin_view_attendance_ask_date.html ├── admin_view_attendance_page.html ├── admin_view_fee.html ├── admin_view_student.html ├── admin_view_student_fee.html ├── admin_view_teacher.html ├── admin_view_teacher_salary.html ├── adminbase.html ├── adminclick.html ├── adminlogin.html ├── adminsignup.html ├── contactus.html ├── contactussuccess.html ├── footer.html ├── homebase.html ├── index.html ├── navbar.html ├── student_dashboard.html ├── student_dashboard_cards.html ├── student_view_attendance_ask_date.html ├── student_view_attendance_page.html ├── student_wait_for_approval.html ├── studentbase.html ├── studentclick.html ├── studentlogin.html ├── studentsignup.html ├── teacher_attendance.html ├── teacher_dashboard.html ├── teacher_dashboard_cards.html ├── teacher_notice.html ├── teacher_take_attendance.html ├── teacher_view_attendance_ask_date.html ├── teacher_view_attendance_page.html ├── teacher_wait_for_approval.html ├── teacherbase.html ├── teacherclick.html ├── teacherlogin.html └── teachersignup.html ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # Django # *.log *.pot *.pyc __pycache__ db.sqlite3 media # Backup files # *.bak # If you are using PyCharm # .idea/**/workspace.xml .idea/**/tasks.xml .idea/dictionaries .idea/**/dataSources/ .idea/**/dataSources.ids .idea/**/dataSources.xml .idea/**/dataSources.local.xml .idea/**/sqlDataSources.xml .idea/**/dynamic.xml .idea/**/uiDesigner.xml .idea/**/gradle.xml .idea/**/libraries *.iws /out/ # Python # *.py[cod] *$py.class # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache .pytest_cache/ nosetests.xml coverage.xml *.cover .hypothesis/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery celerybeat-schedule.* # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # mkdocs documentation /site # mypy .mypy_cache/ # Sublime Text # *.tmlanguage.cache *.tmPreferences.cache *.stTheme.cache *.sublime-workspace *.sublime-project # sftp configuration file sftp-config.json # Package control specific files Package Control.last-run Control.ca-list Control.ca-bundle Control.system-ca-bundle GitHub.sublime-settings # Visual Studio Code # .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json .history ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2020 sumit kumar Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Schoolmanagement ![developer](https://img.shields.io/badge/Developed%20By%20%3A-Sumit%20Kumar-red) --- ## screenshots ### Homepage ![homepage snap](https://github.com/sumitkumar1503/schoolmanagement/blob/master/static/screenshots/homepage.png?raw=true) ### Admin Dashboard ![dashboard snap](https://github.com/sumitkumar1503/schoolmanagement/blob/master/static/screenshots/adminhomepage.png?raw=true) ### Admin Manage Teacher ![invoice snap](https://github.com/sumitkumar1503/schoolmanagement/blob/master/static/screenshots/adminteacher.png?raw=true) ### Attendance ![doctor snap](https://github.com/sumitkumar1503/schoolmanagement/blob/master/static/screenshots/attendance.png?raw=true) ### Teacher Dashboard ![doctor snap](https://github.com/sumitkumar1503/schoolmanagement/blob/master/static/screenshots/teacher.png?raw=true) --- ## Functions ### Teacher First the teacher will apply for job,if he/she gets selected there accounts will be made and approved by the admin, after approval only teacher can access their dashboard. After account approval by admin, teacher can take attendance of any class and view their attendance later. Teacher can also publish/announce notice to student like submission of assignments. ## Student First student will take admission/signup. When their account is approved by admin, only then the student can access their dashboard. After account approval by admin the student can view their details like attendance. Student can't view attendance of other student. Student can't announce, they can only view. ### Admin First admin will signup for a account. After login they can see how many student/teacher wants to get job/admission in their school. They can approve or delete/cancel the request. They can update any student/teacher details. Admin can announce notice also. ## Drawbacks - On update page of teacher/student you must have to update password. - Anyone can become Admin ## HOW TO RUN THIS PROJECT - Install Python(3.7.6) (Dont Forget to Tick Add to Path while installing Python) - Open Terminal and Execute Following Commands : ``` python -m pip install -r requirements.txt ``` - Download This Project Zip Folder and Extract it - Move to project folder in Terminal. Then run following Commands : ``` py manage.py makemigrations py manage.py migrate py manage.py runserver ``` - Now enter following URL in Your Browser Installed On Your Pc ``` http://127.0.0.1:8000/ ``` ## CHANGES REQUIRED FOR CONTACT US PAGE - In settins.py file, You have to give your email and password ``` EMAIL_HOST_USER = 'youremail@gmail.com' EMAIL_HOST_PASSWORD = 'your email password' EMAIL_RECEIVING_USER = 'youremail@gmail.com' ``` - Login to gmail through host email id in your browser and open following link and turn it ON ``` https://myaccount.google.com/lesssecureapps ``` ## Disclaimer This project is developed for demo purpose and it's not supposed to be used in real application. ## Feedback Any suggestion and feedback is welcome. You can message me on facebook - [Contact on Facebook](https://fb.com/sumit.luv) - [Subscribe my Channel LazyCoder On Youtube](https://youtube.com/lazycoders) ================================================ FILE: manage.py ================================================ #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" import os import sys def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'schoolmanagement.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main() ================================================ FILE: requirements.txt ================================================ asgiref==3.2.7 Django==3.0.5 django-widget-tweaks==1.4.8 pytz==2020.1 sqlparse==0.3.1 ================================================ FILE: school/__init__.py ================================================ ================================================ FILE: school/admin.py ================================================ from django.contrib import admin from .models import Attendance,StudentExtra,TeacherExtra,Notice # Register your models here. (by sumit.luv) class StudentExtraAdmin(admin.ModelAdmin): pass admin.site.register(StudentExtra, StudentExtraAdmin) class TeacherExtraAdmin(admin.ModelAdmin): pass admin.site.register(TeacherExtra, TeacherExtraAdmin) class AttendanceAdmin(admin.ModelAdmin): pass admin.site.register(Attendance, AttendanceAdmin) class NoticeAdmin(admin.ModelAdmin): pass admin.site.register(Notice, NoticeAdmin) ================================================ FILE: school/apps.py ================================================ from django.apps import AppConfig class SchoolConfig(AppConfig): name = 'school' ================================================ FILE: school/forms.py ================================================ from django import forms from django.contrib.auth.models import User from . import models #for admin class AdminSigupForm(forms.ModelForm): class Meta: model=User fields=['first_name','last_name','username','password'] #for student related form class StudentUserForm(forms.ModelForm): class Meta: model=User fields=['first_name','last_name','username','password'] class StudentExtraForm(forms.ModelForm): class Meta: model=models.StudentExtra fields=['roll','cl','mobile','fee','status'] #for teacher related form class TeacherUserForm(forms.ModelForm): class Meta: model=User fields=['first_name','last_name','username','password'] class TeacherExtraForm(forms.ModelForm): class Meta: model=models.TeacherExtra fields=['salary','mobile','status'] #for Attendance related form presence_choices=(('Present','Present'),('Absent','Absent')) class AttendanceForm(forms.Form): present_status=forms.ChoiceField( choices=presence_choices) date=forms.DateField() class AskDateForm(forms.Form): date=forms.DateField() #for notice related form class NoticeForm(forms.ModelForm): class Meta: model=models.Notice fields='__all__' #for contact us page class ContactusForm(forms.Form): Name = forms.CharField(max_length=30) Email = forms.EmailField() Message = forms.CharField(max_length=500,widget=forms.Textarea(attrs={'rows': 3, 'cols': 30})) ================================================ FILE: school/migrations/0001_initial.py ================================================ # Generated by Django 3.0.5 on 2020-05-01 12:02 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='TeacherExtra', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('salary', models.CharField(max_length=40)), ('joindate', models.DateField(auto_now_add=True)), ('mobile', models.CharField(max_length=40)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='StudentExtra', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('roll', models.CharField(max_length=40)), ('branch', models.CharField(max_length=40)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] ================================================ FILE: school/migrations/0002_teacherextra_status.py ================================================ # Generated by Django 3.0.5 on 2020-05-02 15:36 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0001_initial'), ] operations = [ migrations.AddField( model_name='teacherextra', name='status', field=models.BooleanField(default=False), ), ] ================================================ FILE: school/migrations/0003_auto_20200504_0939.py ================================================ # Generated by Django 3.0.5 on 2020-05-04 04:09 from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('school', '0002_teacherextra_status'), ] operations = [ migrations.RemoveField( model_name='studentextra', name='branch', ), migrations.AddField( model_name='studentextra', name='cl', field=models.CharField(choices=[('one', 'one'), ('two', 'two'), ('three', 'three'), ('four', 'four'), ('five', 'five'), ('six', 'six'), ('seven', 'seven'), ('eight', 'eight'), ('nine', 'nine'), ('ten', 'ten')], default='one', max_length=10), ), migrations.CreateModel( name='Attendance', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('cl', models.CharField(max_length=10)), ('present_status', models.CharField(choices=[('Present', 'Present'), ('Absent', 'Absent')], max_length=10)), ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='school.StudentExtra')), ], ), ] ================================================ FILE: school/migrations/0004_auto_20200504_1753.py ================================================ # Generated by Django 3.0.5 on 2020-05-04 12:23 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0003_auto_20200504_0939'), ] operations = [ migrations.AlterField( model_name='attendance', name='present_status', field=models.CharField(max_length=10), ), ] ================================================ FILE: school/migrations/0005_auto_20200505_1038.py ================================================ # Generated by Django 3.0.5 on 2020-05-05 05:08 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0004_auto_20200504_1753'), ] operations = [ migrations.RemoveField( model_name='attendance', name='student_id', ), migrations.AddField( model_name='attendance', name='roll', field=models.CharField(max_length=10, null=True), ), migrations.AlterField( model_name='studentextra', name='roll', field=models.CharField(max_length=10), ), ] ================================================ FILE: school/migrations/0006_auto_20200506_1719.py ================================================ # Generated by Django 3.0.5 on 2020-05-06 11:49 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0005_auto_20200505_1038'), ] operations = [ migrations.AddField( model_name='studentextra', name='fee', field=models.PositiveIntegerField(max_length=10, null=True), ), migrations.AddField( model_name='studentextra', name='mobile', field=models.CharField(max_length=40, null=True), ), ] ================================================ FILE: school/migrations/0007_auto_20200506_1720.py ================================================ # Generated by Django 3.0.5 on 2020-05-06 11:50 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0006_auto_20200506_1719'), ] operations = [ migrations.AlterField( model_name='studentextra', name='fee', field=models.PositiveIntegerField(null=True), ), ] ================================================ FILE: school/migrations/0008_studentextra_status.py ================================================ # Generated by Django 3.0.5 on 2020-05-06 12:48 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0007_auto_20200506_1720'), ] operations = [ migrations.AddField( model_name='studentextra', name='status', field=models.BooleanField(default=False), ), ] ================================================ FILE: school/migrations/0009_auto_20200507_1017.py ================================================ # Generated by Django 3.0.5 on 2020-05-07 04:47 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0008_studentextra_status'), ] operations = [ migrations.CreateModel( name='Notice', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField(auto_now=True)), ('message', models.CharField(max_length=500)), ], ), migrations.AlterField( model_name='teacherextra', name='salary', field=models.PositiveIntegerField(), ), ] ================================================ FILE: school/migrations/0010_notice_by.py ================================================ # Generated by Django 3.0.5 on 2020-05-08 03:39 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0009_auto_20200507_1017'), ] operations = [ migrations.AddField( model_name='notice', name='by', field=models.CharField(max_length=20, null=True), ), ] ================================================ FILE: school/migrations/0011_auto_20200508_0913.py ================================================ # Generated by Django 3.0.5 on 2020-05-08 03:43 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('school', '0010_notice_by'), ] operations = [ migrations.AlterField( model_name='notice', name='by', field=models.CharField(default='school', max_length=20, null=True), ), ] ================================================ FILE: school/migrations/__init__.py ================================================ ================================================ FILE: school/models.py ================================================ from django.db import models from django.contrib.auth.models import User # Create your models here. class TeacherExtra(models.Model): user=models.OneToOneField(User,on_delete=models.CASCADE) salary = models.PositiveIntegerField(null=False) joindate=models.DateField(auto_now_add=True) mobile = models.CharField(max_length=40) status=models.BooleanField(default=False) def __str__(self): return self.user.first_name @property def get_id(self): return self.user.id @property def get_name(self): return self.user.first_name+" "+self.user.last_name classes=[('one','one'),('two','two'),('three','three'), ('four','four'),('five','five'),('six','six'),('seven','seven'),('eight','eight'),('nine','nine'),('ten','ten')] class StudentExtra(models.Model): user=models.OneToOneField(User,on_delete=models.CASCADE) roll = models.CharField(max_length=10) mobile = models.CharField(max_length=40,null=True) fee=models.PositiveIntegerField(null=True) cl= models.CharField(max_length=10,choices=classes,default='one') status=models.BooleanField(default=False) @property def get_name(self): return self.user.first_name+" "+self.user.last_name @property def get_id(self): return self.user.id def __str__(self): return self.user.first_name class Attendance(models.Model): roll=models.CharField(max_length=10,null=True) date=models.DateField() cl=models.CharField(max_length=10) present_status = models.CharField(max_length=10) class Notice(models.Model): date=models.DateField(auto_now=True) by=models.CharField(max_length=20,null=True,default='school') message=models.CharField(max_length=500) ================================================ FILE: school/views.py ================================================ from django.shortcuts import render,redirect,reverse from . import forms,models from django.db.models import Sum from django.contrib.auth.models import Group from django.http import HttpResponseRedirect from django.contrib.auth.decorators import login_required,user_passes_test from django.conf import settings from django.core.mail import send_mail def home_view(request): if request.user.is_authenticated: return HttpResponseRedirect('afterlogin') return render(request,'school/index.html') #for showing signup/login button for teacher(by sumit) def adminclick_view(request): if request.user.is_authenticated: return HttpResponseRedirect('afterlogin') return render(request,'school/adminclick.html') #for showing signup/login button for teacher(by sumit) def teacherclick_view(request): if request.user.is_authenticated: return HttpResponseRedirect('afterlogin') return render(request,'school/teacherclick.html') #for showing signup/login button for student(by sumit) def studentclick_view(request): if request.user.is_authenticated: return HttpResponseRedirect('afterlogin') return render(request,'school/studentclick.html') def admin_signup_view(request): form=forms.AdminSigupForm() if request.method=='POST': form=forms.AdminSigupForm(request.POST) if form.is_valid(): user=form.save() user.set_password(user.password) user.save() my_admin_group = Group.objects.get_or_create(name='ADMIN') my_admin_group[0].user_set.add(user) return HttpResponseRedirect('adminlogin') return render(request,'school/adminsignup.html',{'form':form}) def student_signup_view(request): form1=forms.StudentUserForm() form2=forms.StudentExtraForm() mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.StudentUserForm(request.POST) form2=forms.StudentExtraForm(request.POST) if form1.is_valid() and form2.is_valid(): user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.user=user user2=f2.save() my_student_group = Group.objects.get_or_create(name='STUDENT') my_student_group[0].user_set.add(user) return HttpResponseRedirect('studentlogin') return render(request,'school/studentsignup.html',context=mydict) def teacher_signup_view(request): form1=forms.TeacherUserForm() form2=forms.TeacherExtraForm() mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.TeacherUserForm(request.POST) form2=forms.TeacherExtraForm(request.POST) if form1.is_valid() and form2.is_valid(): user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.user=user user2=f2.save() my_teacher_group = Group.objects.get_or_create(name='TEACHER') my_teacher_group[0].user_set.add(user) return HttpResponseRedirect('teacherlogin') return render(request,'school/teachersignup.html',context=mydict) #for checking user is techer , student or admin(by sumit) def is_admin(user): return user.groups.filter(name='ADMIN').exists() def is_teacher(user): return user.groups.filter(name='TEACHER').exists() def is_student(user): return user.groups.filter(name='STUDENT').exists() def afterlogin_view(request): if is_admin(request.user): return redirect('admin-dashboard') elif is_teacher(request.user): accountapproval=models.TeacherExtra.objects.all().filter(user_id=request.user.id,status=True) if accountapproval: return redirect('teacher-dashboard') else: return render(request,'school/teacher_wait_for_approval.html') elif is_student(request.user): accountapproval=models.StudentExtra.objects.all().filter(user_id=request.user.id,status=True) if accountapproval: return redirect('student-dashboard') else: return render(request,'school/student_wait_for_approval.html') #for dashboard of adminnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_dashboard_view(request): teachercount=models.TeacherExtra.objects.all().filter(status=True).count() pendingteachercount=models.TeacherExtra.objects.all().filter(status=False).count() studentcount=models.StudentExtra.objects.all().filter(status=True).count() pendingstudentcount=models.StudentExtra.objects.all().filter(status=False).count() teachersalary=models.TeacherExtra.objects.filter(status=True).aggregate(Sum('salary')) pendingteachersalary=models.TeacherExtra.objects.filter(status=False).aggregate(Sum('salary')) studentfee=models.StudentExtra.objects.filter(status=True).aggregate(Sum('fee',default=0)) pendingstudentfee=models.StudentExtra.objects.filter(status=False).aggregate(Sum('fee')) notice=models.Notice.objects.all() #aggregate function return dictionary so fetch data from dictionay(by sumit) mydict={ 'teachercount':teachercount, 'pendingteachercount':pendingteachercount, 'studentcount':studentcount, 'pendingstudentcount':pendingstudentcount, 'teachersalary':teachersalary['salary__sum'], 'pendingteachersalary':pendingteachersalary['salary__sum'], 'studentfee':studentfee['fee__sum'], 'pendingstudentfee':pendingstudentfee['fee__sum'], 'notice':notice } return render(request,'school/admin_dashboard.html',context=mydict) #for teacher sectionnnnnnnn by adminnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_teacher_view(request): return render(request,'school/admin_teacher.html') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_add_teacher_view(request): form1=forms.TeacherUserForm() form2=forms.TeacherExtraForm() mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.TeacherUserForm(request.POST) form2=forms.TeacherExtraForm(request.POST) if form1.is_valid() and form2.is_valid(): user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.user=user f2.status=True f2.save() my_teacher_group = Group.objects.get_or_create(name='TEACHER') my_teacher_group[0].user_set.add(user) return HttpResponseRedirect('admin-teacher') return render(request,'school/admin_add_teacher.html',context=mydict) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_teacher_view(request): teachers=models.TeacherExtra.objects.all().filter(status=True) return render(request,'school/admin_view_teacher.html',{'teachers':teachers}) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_approve_teacher_view(request): teachers=models.TeacherExtra.objects.all().filter(status=False) return render(request,'school/admin_approve_teacher.html',{'teachers':teachers}) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def approve_teacher_view(request,pk): teacher=models.TeacherExtra.objects.get(id=pk) teacher.status=True teacher.save() return redirect(reverse('admin-approve-teacher')) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def delete_teacher_view(request,pk): teacher=models.TeacherExtra.objects.get(id=pk) user=models.User.objects.get(id=teacher.user_id) user.delete() teacher.delete() return redirect('admin-approve-teacher') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def delete_teacher_from_school_view(request,pk): teacher=models.TeacherExtra.objects.get(id=pk) user=models.User.objects.get(id=teacher.user_id) user.delete() teacher.delete() return redirect('admin-view-teacher') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def update_teacher_view(request,pk): teacher=models.TeacherExtra.objects.get(id=pk) user=models.User.objects.get(id=teacher.user_id) form1=forms.TeacherUserForm(instance=user) form2=forms.TeacherExtraForm(instance=teacher) mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.TeacherUserForm(request.POST,instance=user) form2=forms.TeacherExtraForm(request.POST,instance=teacher) print(form1) if form1.is_valid() and form2.is_valid(): user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.status=True f2.save() return redirect('admin-view-teacher') return render(request,'school/admin_update_teacher.html',context=mydict) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_teacher_salary_view(request): teachers=models.TeacherExtra.objects.all() return render(request,'school/admin_view_teacher_salary.html',{'teachers':teachers}) #for student by adminnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_student_view(request): return render(request,'school/admin_student.html') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_add_student_view(request): form1=forms.StudentUserForm() form2=forms.StudentExtraForm() mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.StudentUserForm(request.POST) form2=forms.StudentExtraForm(request.POST) if form1.is_valid() and form2.is_valid(): print("form is valid") user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.user=user f2.status=True f2.save() my_student_group = Group.objects.get_or_create(name='STUDENT') my_student_group[0].user_set.add(user) else: print("form is invalid") return HttpResponseRedirect('admin-student') return render(request,'school/admin_add_student.html',context=mydict) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_student_view(request): students=models.StudentExtra.objects.all().filter(status=True) return render(request,'school/admin_view_student.html',{'students':students}) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def delete_student_from_school_view(request,pk): student=models.StudentExtra.objects.get(id=pk) user=models.User.objects.get(id=student.user_id) user.delete() student.delete() return redirect('admin-view-student') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def delete_student_view(request,pk): student=models.StudentExtra.objects.get(id=pk) user=models.User.objects.get(id=student.user_id) user.delete() student.delete() return redirect('admin-approve-student') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def update_student_view(request,pk): student=models.StudentExtra.objects.get(id=pk) user=models.User.objects.get(id=student.user_id) form1=forms.StudentUserForm(instance=user) form2=forms.StudentExtraForm(instance=student) mydict={'form1':form1,'form2':form2} if request.method=='POST': form1=forms.StudentUserForm(request.POST,instance=user) form2=forms.StudentExtraForm(request.POST,instance=student) print(form1) if form1.is_valid() and form2.is_valid(): user=form1.save() user.set_password(user.password) user.save() f2=form2.save(commit=False) f2.status=True f2.save() return redirect('admin-view-student') return render(request,'school/admin_update_student.html',context=mydict) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_approve_student_view(request): students=models.StudentExtra.objects.all().filter(status=False) return render(request,'school/admin_approve_student.html',{'students':students}) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def approve_student_view(request,pk): students=models.StudentExtra.objects.get(id=pk) students.status=True students.save() return redirect(reverse('admin-approve-student')) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_student_fee_view(request): students=models.StudentExtra.objects.all() return render(request,'school/admin_view_student_fee.html',{'students':students}) #attendance related viewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_attendance_view(request): return render(request,'school/admin_attendance.html') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_take_attendance_view(request,cl): students=models.StudentExtra.objects.all().filter(cl=cl) print(students) aform=forms.AttendanceForm() if request.method=='POST': form=forms.AttendanceForm(request.POST) if form.is_valid(): Attendances=request.POST.getlist('present_status') date=form.cleaned_data['date'] for i in range(len(Attendances)): AttendanceModel=models.Attendance() AttendanceModel.cl=cl AttendanceModel.date=date AttendanceModel.present_status=Attendances[i] AttendanceModel.roll=students[i].roll AttendanceModel.save() return redirect('admin-attendance') else: print('form invalid') return render(request,'school/admin_take_attendance.html',{'students':students,'aform':aform}) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_attendance_view(request,cl): form=forms.AskDateForm() if request.method=='POST': form=forms.AskDateForm(request.POST) if form.is_valid(): date=form.cleaned_data['date'] attendancedata=models.Attendance.objects.all().filter(date=date,cl=cl) studentdata=models.StudentExtra.objects.all().filter(cl=cl) mylist=zip(attendancedata,studentdata) return render(request,'school/admin_view_attendance_page.html',{'cl':cl,'mylist':mylist,'date':date}) else: print('form invalid') return render(request,'school/admin_view_attendance_ask_date.html',{'cl':cl,'form':form}) #fee related view by adminnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_fee_view(request): return render(request,'school/admin_fee.html') @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_view_fee_view(request,cl): feedetails=models.StudentExtra.objects.all().filter(cl=cl) return render(request,'school/admin_view_fee.html',{'feedetails':feedetails,'cl':cl}) #notice related viewsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss(by sumit) @login_required(login_url='adminlogin') @user_passes_test(is_admin) def admin_notice_view(request): form=forms.NoticeForm() if request.method=='POST': form=forms.NoticeForm(request.POST) if form.is_valid(): form=form.save(commit=False) form.by=request.user.first_name form.save() return redirect('admin-dashboard') return render(request,'school/admin_notice.html',{'form':form}) #for TEACHER LOGIN SECTIONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN(by sumit) @login_required(login_url='teacherlogin') @user_passes_test(is_teacher) def teacher_dashboard_view(request): teacherdata=models.TeacherExtra.objects.all().filter(status=True,user_id=request.user.id) notice=models.Notice.objects.all() mydict={ 'salary':teacherdata[0].salary, 'mobile':teacherdata[0].mobile, 'date':teacherdata[0].joindate, 'notice':notice } return render(request,'school/teacher_dashboard.html',context=mydict) @login_required(login_url='teacherlogin') @user_passes_test(is_teacher) def teacher_attendance_view(request): return render(request,'school/teacher_attendance.html') @login_required(login_url='teacherlogin') @user_passes_test(is_teacher) def teacher_take_attendance_view(request,cl): students=models.StudentExtra.objects.all().filter(cl=cl) aform=forms.AttendanceForm() if request.method=='POST': form=forms.AttendanceForm(request.POST) if form.is_valid(): Attendances=request.POST.getlist('present_status') date=form.cleaned_data['date'] for i in range(len(Attendances)): AttendanceModel=models.Attendance() AttendanceModel.cl=cl AttendanceModel.date=date AttendanceModel.present_status=Attendances[i] AttendanceModel.roll=students[i].roll AttendanceModel.save() return redirect('teacher-attendance') else: print('form invalid') return render(request,'school/teacher_take_attendance.html',{'students':students,'aform':aform}) @login_required(login_url='teacherlogin') @user_passes_test(is_teacher) def teacher_view_attendance_view(request,cl): form=forms.AskDateForm() if request.method=='POST': form=forms.AskDateForm(request.POST) if form.is_valid(): date=form.cleaned_data['date'] attendancedata=models.Attendance.objects.all().filter(date=date,cl=cl) studentdata=models.StudentExtra.objects.all().filter(cl=cl) mylist=zip(attendancedata,studentdata) return render(request,'school/teacher_view_attendance_page.html',{'cl':cl,'mylist':mylist,'date':date}) else: print('form invalid') return render(request,'school/teacher_view_attendance_ask_date.html',{'cl':cl,'form':form}) @login_required(login_url='teacherlogin') @user_passes_test(is_teacher) def teacher_notice_view(request): form=forms.NoticeForm() if request.method=='POST': form=forms.NoticeForm(request.POST) if form.is_valid(): form=form.save(commit=False) form.by=request.user.first_name form.save() return redirect('teacher-dashboard') else: print('form invalid') return render(request,'school/teacher_notice.html',{'form':form}) #FOR STUDENT AFTER THEIR Loginnnnnnnnnnnnnnnnnnnnn(by sumit) @login_required(login_url='studentlogin') @user_passes_test(is_student) def student_dashboard_view(request): studentdata=models.StudentExtra.objects.all().filter(status=True,user_id=request.user.id) notice=models.Notice.objects.all() mydict={ 'roll':studentdata[0].roll, 'mobile':studentdata[0].mobile, 'fee':studentdata[0].fee, 'notice':notice } return render(request,'school/student_dashboard.html',context=mydict) @login_required(login_url='studentlogin') @user_passes_test(is_student) def student_attendance_view(request): form=forms.AskDateForm() if request.method=='POST': form=forms.AskDateForm(request.POST) if form.is_valid(): date=form.cleaned_data['date'] studentdata=models.StudentExtra.objects.all().filter(user_id=request.user.id,status=True) attendancedata=models.Attendance.objects.all().filter(date=date,cl=studentdata[0].cl,roll=studentdata[0].roll) mylist=zip(attendancedata,studentdata) return render(request,'school/student_view_attendance_page.html',{'mylist':mylist,'date':date}) else: print('form invalid') return render(request,'school/student_view_attendance_ask_date.html',{'form':form}) # for aboutus and contact ussssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss (by sumit) def aboutus_view(request): return render(request,'school/aboutus.html') def contactus_view(request): sub = forms.ContactusForm() if request.method == 'POST': sub = forms.ContactusForm(request.POST) if sub.is_valid(): email = sub.cleaned_data['Email'] name=sub.cleaned_data['Name'] message = sub.cleaned_data['Message'] send_mail(str(name)+' || '+str(email),message,settings.EMAIL_HOST_USER, settings.EMAIL_RECEIVING_USER, fail_silently = False) return render(request, 'school/contactussuccess.html') return render(request, 'school/contactus.html', {'form':sub}) ================================================ FILE: schoolmanagement/__init__.py ================================================ ================================================ FILE: schoolmanagement/asgi.py ================================================ """ ASGI config for schoolmanagement project. It exposes the ASGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ """ import os from django.core.asgi import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'schoolmanagement.settings') application = get_asgi_application() ================================================ FILE: schoolmanagement/settings.py ================================================ """ Django settings for schoolmanagement project. Generated by 'django-admin startproject' using Django 3.0.5. For more information on this file, see https://docs.djangoproject.com/en/3.0/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.0/ref/settings/ """ import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATE_DIR = os.path.join(BASE_DIR,'templates') STATIC_DIR=os.path.join(BASE_DIR,'static') # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'k0ujs9pcw+7qohwas!o7_ept20$c@$)-b=qco8sgviy_f)((bc' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'school', 'widget_tweaks', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'schoolmanagement.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [TEMPLATE_DIR,], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'schoolmanagement.wsgi.application' # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Password validation # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.0/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/' STATICFILES_DIRS=[ STATIC_DIR, ] LOGIN_REDIRECT_URL='/afterlogin' #for contact us give your gmail id and password EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_USE_TLS = True EMAIL_PORT = 587 EMAIL_HOST_USER = 'from@gmail.com' # this email will be used to send emails EMAIL_HOST_PASSWORD = 'xyz' # host email password required # now sign in with your host gmail account in your browser # open following link and turn it ON # https://myaccount.google.com/lesssecureapps # otherwise you will get SMTPAuthenticationError at /contactus # this process is required because google blocks apps authentication by default EMAIL_RECEIVING_USER = ['to@gmail.com'] # email on which you will receive messages sent from website ================================================ FILE: schoolmanagement/urls.py ================================================ """ by sumit kumar written by fb.com/sumit.luv """ from django.contrib import admin from django.urls import path from school import views from django.contrib.auth.views import LoginView,LogoutView urlpatterns = [ path('admin/', admin.site.urls), path('',views.home_view,name=''), path('adminclick', views.adminclick_view), path('teacherclick', views.teacherclick_view), path('studentclick', views.studentclick_view), path('adminsignup', views.admin_signup_view), path('studentsignup', views.student_signup_view,name='studentsignup'), path('teachersignup', views.teacher_signup_view), path('adminlogin', LoginView.as_view(template_name='school/adminlogin.html')), path('studentlogin', LoginView.as_view(template_name='school/studentlogin.html')), path('teacherlogin', LoginView.as_view(template_name='school/teacherlogin.html')), path('afterlogin', views.afterlogin_view,name='afterlogin'), path('logout', LogoutView.as_view(template_name='school/index.html'),name='logout'), path('admin-dashboard', views.admin_dashboard_view,name='admin-dashboard'), path('admin-teacher', views.admin_teacher_view,name='admin-teacher'), path('admin-add-teacher', views.admin_add_teacher_view,name='admin-add-teacher'), path('admin-view-teacher', views.admin_view_teacher_view,name='admin-view-teacher'), path('admin-approve-teacher', views.admin_approve_teacher_view,name='admin-approve-teacher'), path('approve-teacher/', views.approve_teacher_view,name='approve-teacher'), path('delete-teacher/', views.delete_teacher_view,name='delete-teacher'), path('delete-teacher-from-school/', views.delete_teacher_from_school_view,name='delete-teacher-from-school'), path('update-teacher/', views.update_teacher_view,name='update-teacher'), path('admin-view-teacher-salary', views.admin_view_teacher_salary_view,name='admin-view-teacher-salary'), path('admin-student', views.admin_student_view,name='admin-student'), path('admin-add-student', views.admin_add_student_view,name='admin-add-student'), path('admin-view-student', views.admin_view_student_view,name='admin-view-student'), path('delete-student-from-school/', views.delete_student_from_school_view,name='delete-student-from-school'), path('delete-student/', views.delete_student_view,name='delete-student'), path('update-student/', views.update_student_view,name='update-student'), path('admin-approve-student', views.admin_approve_student_view,name='admin-approve-student'), path('approve-student/', views.approve_student_view,name='approve-student'), path('admin-view-student-fee', views.admin_view_student_fee_view,name='admin-view-student-fee'), path('admin-attendance', views.admin_attendance_view,name='admin-attendance'), path('admin-take-attendance/', views.admin_take_attendance_view,name='admin-take-attendance'), path('admin-view-attendance/', views.admin_view_attendance_view,name='admin-view-attendance'), path('admin-fee', views.admin_fee_view,name='admin-fee'), path('admin-view-fee/', views.admin_view_fee_view,name='admin-view-fee'), path('admin-notice', views.admin_notice_view,name='admin-notice'), path('teacher-dashboard', views.teacher_dashboard_view,name='teacher-dashboard'), path('teacher-attendance', views.teacher_attendance_view,name='teacher-attendance'), path('teacher-take-attendance/', views.teacher_take_attendance_view,name='teacher-take-attendance'), path('teacher-view-attendance/', views.teacher_view_attendance_view,name='teacher-view-attendance'), path('teacher-notice', views.teacher_notice_view,name='teacher-notice'), path('student-dashboard', views.student_dashboard_view,name='student-dashboard'), path('student-attendance', views.student_attendance_view,name='student-attendance'), path('aboutus', views.aboutus_view), path('contactus', views.contactus_view), ] ================================================ FILE: schoolmanagement/wsgi.py ================================================ """ WSGI config for schoolmanagement project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'schoolmanagement.settings') application = get_wsgi_application() ================================================ FILE: templates/school/aboutus.html ================================================ {% load static %} LazyCoder || sumit {% include "school/navbar.html" %}

About Us !

Hello

A service dedicated to Admin, Student and Teacher. We provide online resources, professional support and guidance to all our students,teacher whenever, and from wherever they have chosen to study.


Explore our Website.

HOME

{% include "school/footer.html" %} ================================================ FILE: templates/school/admin_add_student.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

New Admission of Student In School

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form2.cl class="form-control" placeholder="Class" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.fee class="form-control" placeholder="Fee" %}
{% render_field form2.roll class="form-control" placeholder="Roll" %}
{% endblock content %} ================================================ FILE: templates/school/admin_add_teacher.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

Hire New Teacher To School

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.salary class="form-control" placeholder="Salary" %}
{% endblock content %} ================================================ FILE: templates/school/admin_approve_student.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Students
{% for s in students %} {% endfor %}
Name Class Fee Mobile Approve Delete
{{s.get_name}} {{s.cl}} {{s.fee}} {{s.mobile}}
{% endblock content %} ================================================ FILE: templates/school/admin_approve_teacher.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Teachers
{% for t in teachers %} {% endfor %}
Name Mobile Salary Joining Date Approve Delete
{{t.get_name}} {{t.mobile}} {{t.salary}} {{t.joindate}}
{% endblock content %} ================================================ FILE: templates/school/admin_attendance.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Attendance
Class Name Take Attendance View Attendance
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
{% endblock content %} ================================================ FILE: templates/school/admin_dashboard.html ================================================ {% extends 'school/adminbase.html' %} {% load static %} {% block content %}
{%include 'school/admin_dashboard_cards.html'%}

Notice Board


{%for n in notice%}
× {{n.date}} ||By :{{n.by}}
{{n.message}}
{%endfor%} {% endblock content %} ================================================ FILE: templates/school/admin_dashboard_cards.html ================================================
Total Teacher

{{teachercount}}

Pending Teacher{{pendingteachercount}}

Total Student

{{studentcount}}

Pending Students{{pendingstudentcount}}

Teachers Salary

{{teachersalary}}

Pending Salary{{pendingteachersalary}}

Student Fee

{{studentfee}}

Pending Dues{{pendingstudentfee}}

================================================ FILE: templates/school/admin_fee.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
FEE OF STUDENTS
Class Name View Dues
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
{% endblock content %} ================================================ FILE: templates/school/admin_notice.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

Announce Something

{% render_field form.message class="form-control" placeholder="Write Your Message Here" %}
{% render_field form.by type="hidden" class="form-control" placeholder="Your Name" %}
{% endblock content %} ================================================ FILE: templates/school/admin_student.html ================================================ {% extends 'school/adminbase.html' %} {% block content %} {% endblock content %} ================================================ FILE: templates/school/admin_take_attendance.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
Attendance
{% csrf_token %} {%for student in students%} {%endfor%}
Student Name Present/Absent
{{student.get_name}} {{aform.present_status}}
{% render_field aform.date class="form-control" placeholder="Enter Date mm/dd/yyyy" %}
{% endblock content %} ================================================ FILE: templates/school/admin_teacher.html ================================================ {% extends 'school/adminbase.html' %} {% block content %} {% endblock content %} ================================================ FILE: templates/school/admin_teacher_student_card.html ================================================ {% load static %}
John

ADMIN

John

TEACHER

John

STUDENT

================================================ FILE: templates/school/admin_update_student.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

Update Student Details

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form2.cl class="form-control" placeholder="Class" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.fee class="form-control" placeholder="Fee" %}
{% render_field form2.roll class="form-control" placeholder="Roll" %}
{% endblock content %} ================================================ FILE: templates/school/admin_update_teacher.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

Update Teacher Details

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.salary class="form-control" placeholder="Salary" %}
{% endblock content %} ================================================ FILE: templates/school/admin_view_attendance_ask_date.html ================================================ {% extends 'school/adminbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

PLEASE ENTER DATE FOR ATTENDANCE OF CLASS   {{cl}}

{% render_field form.date class="form-control" placeholder="Enter date mm/dd/yyyy" %}
{% endblock content %} ================================================ FILE: templates/school/admin_view_attendance_page.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Attendance of class {{cl}} and date {{date}}
{%for attendancedata,studentdata in mylist %} {%endfor%}
Student Name Student Roll Present/Absent
{{studentdata.get_name}} {{studentdata.roll}} {{attendancedata.present_status}}
{% endblock content %} ================================================ FILE: templates/school/admin_view_fee.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
FEE of class {{cl}}
{%for f in feedetails %} {%endfor%}
Student Name Student Roll Student Mobile Dues
{{f.get_name}} {{f.roll}} {{f.mobile}} {{f.fee}}
{% endblock content %} ================================================ FILE: templates/school/admin_view_student.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Students
{% for s in students %} {% endfor %}
Name Class Mobile Fee Update Delete
{{s.get_name}} {{s.cl}} {{s.mobile}} {{s.fee}}
{% endblock content %} ================================================ FILE: templates/school/admin_view_student_fee.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Teachers Salary
{% for s in students %} {% endfor %}
Student Name Fee
{{s.get_name}} {{s.fee}}
{% endblock content %} ================================================ FILE: templates/school/admin_view_teacher.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Teachers
{% for t in teachers %} {% endfor %}
Name Mobile Salary Joining Date Update Delete
{{t.get_name}} {{t.mobile}} {{t.salary}} {{t.joindate}}
{% endblock content %} ================================================ FILE: templates/school/admin_view_teacher_salary.html ================================================ {% extends 'school/adminbase.html' %} {% block content %}
Teachers Salary
{% for t in teachers %} {% endfor %}
Teacher Name Salary
{{t.get_name}} {{t.salary}}
{% endblock content %} ================================================ FILE: templates/school/adminbase.html ================================================ {% load static %} LazyCoder || sumit

School Management






{% block content %} {% endblock content %}


{% include "school/footer.html" %}
================================================ FILE: templates/school/adminclick.html ================================================ {% extends 'school/homebase.html' %} {% block content %}

Hello, Admin

Welcome to Online School Management System.


You can access various features after Login/SignUp.

SignUp Login

{% endblock content %} ================================================ FILE: templates/school/adminlogin.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

Admin Login Page

{% render_field form.username class="form-control" placeholder="Username" %}
{% render_field form.password class="form-control" placeholder="Password" %}
Do not have account? Signup here



{% include "school/footer.html" %} ================================================ FILE: templates/school/adminsignup.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

Add New Admin To School

{% render_field form.first_name class="form-control" placeholder="First Name" %}
{% render_field form.username class="form-control" placeholder="Username" %}
{% render_field form.last_name class="form-control" placeholder="Last Name" %}
{% render_field form.password class="form-control" placeholder="Password" %}
Already have an account? Login here
{% include "school/footer.html" %} ================================================ FILE: templates/school/contactus.html ================================================ {% load static %} LazyCoder || sumit {% include "school/navbar.html" %}

Send Us Your Valuable Feedback !

{% csrf_token %}

{{ form.as_p }}


{% include "school/footer.html" %} ================================================ FILE: templates/school/contactussuccess.html ================================================ {% load static %} LazyCoder || sumit {% include "school/navbar.html" %}

Your message sent successfully !

We will respond to your feedback soon


Check other features of website !

HOME

{% include "school/footer.html" %} ================================================ FILE: templates/school/footer.html ================================================


================================================ FILE: templates/school/homebase.html ================================================ LazyCoder || sumit {% include "school/navbar.html" %} {%block content%} {%endblock content%} {% include "school/footer.html" %} ================================================ FILE: templates/school/index.html ================================================ {% load static %} {% include "school/navbar.html" %}


Welcome



Knowledge is key to success.






Take Admission







{% include "school/admin_teacher_student_card.html" %}





{% include "school/footer.html" %} ================================================ FILE: templates/school/navbar.html ================================================ {% load static %} ================================================ FILE: templates/school/student_dashboard.html ================================================ {% extends 'school/studentbase.html' %} {% load static %} {% block content %}
{%include 'school/student_dashboard_cards.html'%}

Notice Board


{%for n in notice%}
× {{n.date}} || By : {{n.by}}
{{n.message}}
{%endfor%} {% endblock content %} ================================================ FILE: templates/school/student_dashboard_cards.html ================================================
Name

{{request.user.first_name}}

Mobile

{{mobile}}

Roll

{{roll}}

Fee

{{fee}}

================================================ FILE: templates/school/student_view_attendance_ask_date.html ================================================ {% extends 'school/studentbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

PLEASE ENTER DATE FOR ATTENDANCE

{% render_field form.date class="form-control" placeholder="Enter date mm/dd/yyyy" %}
{% endblock content %} ================================================ FILE: templates/school/student_view_attendance_page.html ================================================ {% extends 'school/studentbase.html' %} {% block content %}
Your Attendance of date {{date}}
{%for attendancedata,studentdata in mylist %} {%endfor%}
Student Name Student Roll Present/Absent
{{studentdata.get_name}} {{studentdata.roll}} {{attendancedata.present_status}}
{% endblock content %} ================================================ FILE: templates/school/student_wait_for_approval.html ================================================ LazyCoder || sumit {% include "school/navbar.html" %}

Hello {{request.user.first_name}}

Your Account is not approved till now

Our Team is checking your profile

Soon your admission will be confirmed !!!


Check Later

Logout For Now

{% include "school/footer.html" %} ================================================ FILE: templates/school/studentbase.html ================================================ {% load static %} LazyCoder || sumit

School Management






{% block content %} {% endblock content %}


{% include "school/footer.html" %}
================================================ FILE: templates/school/studentclick.html ================================================ {% extends 'school/homebase.html' %} {% block content %}

Hello, Student

Welcome to School Management System.


You can access various features after Login.

New Admission Login

{% endblock content %} ================================================ FILE: templates/school/studentlogin.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

Student Login Page

{% render_field form.username class="form-control" placeholder="Username" %}
{% render_field form.password class="form-control" placeholder="Password" %}
Do not have account? Signup here



{% include "school/footer.html" %} ================================================ FILE: templates/school/studentsignup.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

New Admission To School

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.cl class="form-control" placeholder="Class" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.roll class="form-control" placeholder="Roll" %}
{% render_field form2.fee class="form-control" placeholder="Fee" %}
Already have an account? Login here
{% include "school/footer.html" %} ================================================ FILE: templates/school/teacher_attendance.html ================================================ {% extends 'school/teacherbase.html' %} {% block content %}
Attendance
Class Name Take Attendance View Attendance
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
{% endblock content %} ================================================ FILE: templates/school/teacher_dashboard.html ================================================ {% extends 'school/teacherbase.html' %} {% load static %} {% block content %}
{%include 'school/teacher_dashboard_cards.html'%}

Notice Board


{%for n in notice%}
× {{n.date}} || By : {{n.by}}
{{n.message}}
{%endfor%} {% endblock content %} ================================================ FILE: templates/school/teacher_dashboard_cards.html ================================================
Name

{{request.user.first_name}}

Mobile

{{mobile}}

Join Date

{{date}}

Salary

{{salary}}

================================================ FILE: templates/school/teacher_notice.html ================================================ {% extends 'school/teacherbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

Announce Something

{% render_field form.message class="form-control" placeholder="Write Your Message Here" %}
{% render_field form.by type="hidden" class="form-control" placeholder="Your Name" %}
{% endblock content %} ================================================ FILE: templates/school/teacher_take_attendance.html ================================================ {% extends 'school/teacherbase.html' %} {% load widget_tweaks %} {% block content %}
Attendance
{% csrf_token %} {%for student in students%} {%endfor%}
Student Name Present/Absent
{{student.get_name}} {{aform.present_status}}
{% render_field aform.date class="form-control" placeholder="Enter Date mm/dd/yyyy" %}
{% endblock content %} ================================================ FILE: templates/school/teacher_view_attendance_ask_date.html ================================================ {% extends 'school/teacherbase.html' %} {% load widget_tweaks %} {% block content %}
{% csrf_token %}

PLEASE ENTER DATE FOR ATTENDANCE OF CLASS   {{cl}}

{% render_field form.date class="form-control" placeholder="Enter date mm/dd/yyyy" %}
{% endblock content %} ================================================ FILE: templates/school/teacher_view_attendance_page.html ================================================ {% extends 'school/teacherbase.html' %} {% block content %}
Attendance of class {{cl}} and date {{date}}
{%for attendancedata,studentdata in mylist %} {%endfor%}
Student Name Student Roll Present/Absent
{{studentdata.get_name}} {{studentdata.roll}} {{attendancedata.present_status}}
{% endblock content %} ================================================ FILE: templates/school/teacher_wait_for_approval.html ================================================ LazyCoder || sumit {% include "school/navbar.html" %}

Hello {{request.user.first_name}}

Your Account is not approved till now

Our Team is checking your profile

Soon you will be hired to our school


Check Later

Logout For Now

{% include "school/footer.html" %} ================================================ FILE: templates/school/teacherbase.html ================================================ {% load static %} LazyCoder || sumit

School Management






{% block content %} {% endblock content %}


{% include "school/footer.html" %}
================================================ FILE: templates/school/teacherclick.html ================================================ {% extends 'school/homebase.html' %} {% block content %}

Hello, Teacher

Welcome to School Management System.


You can access various features after Login.

Apply For Job Login

{% endblock content %} ================================================ FILE: templates/school/teacherlogin.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

Teacher Login Page

{% render_field form.username class="form-control" placeholder="Username" %}
{% render_field form.password class="form-control" placeholder="Password" %}
Do not have account? Signup here



{% include "school/footer.html" %} ================================================ FILE: templates/school/teachersignup.html ================================================ {% load widget_tweaks %} LazyCoder || sumit {% include "school/navbar.html" %}



{% csrf_token %}

Apply For Teacher Job

{% render_field form1.first_name class="form-control" placeholder="First Name" %}
{% render_field form1.username class="form-control" placeholder="Username" %}
{% render_field form2.mobile class="form-control" placeholder="Mobile" %}
{% render_field form1.last_name class="form-control" placeholder="Last Name" %}
{% render_field form1.password class="form-control" placeholder="Password" %}
{% render_field form2.salary class="form-control" placeholder="Salary" %}
Already have an account? Login here
{% include "school/footer.html" %}