Git Product home page Git Product logo

tareqmonwer / django-school-management Goto Github PK

View Code? Open in Web Editor NEW
450.0 450.0 183.0 31.39 MB

Transform your school with our intuitive Django School Management System. Seamlessly manage payments, simplify e-admissions, and track results effortlessly, all through a user-friendly interface. Developed using Python Django, our comprehensive system enhances your school's efficiency. Experience the future of education management today.

Python 2.73% CSS 20.83% JavaScript 70.58% HTML 4.73% Dockerfile 0.03% SCSS 0.01% Go 0.15% PHP 0.95% Procfile 0.01%
django-myschools django-school-management django-school-management-system fullstack-school-management myschools-django python-django-school-management-system python-school-management school-management-system school-management-system-django school-management-system-in-python-django school-management-system-project-in-python-django

django-school-management's Introduction

Django-School-Management

A fullstack school management project in django, bootstrap-4 and javascript.

Installation:

  1. go to the project folder
  2. run pip install -r requirements.txt
  3. create .env under envs folder and give credentials following .env.example template
  4. See additional resources section to setup/get more info.
  5. run python manage.py migrate
  6. then python manage.py runserver for testing, create a superuser too.

Celery-redis setup:

  1. Celery is installed, install redis as well.
  2. for linux users:
  • run redis server with redis-server command.
  1. for windows users:

And finally, while django server is running, run this command on another terminal
celery -A config worker -l INFO

Additional Resources:

Usage/testing

Use provided fixtures for each applications.
Provided Fixtures:

  • teachers/teacher_fixtures.json How to load fixtures?
    For example, you want to load teachers/teacher_fixtures.json
    you have to simply run this management command on your terminal:
    python manage.py loaddata teachers/teacher_fixtures.json

this command will load initial data for teachers app. Follow the same pattern to install initial data for other applications.

Fixture Load Order:

  • python manage.py loaddata teachers/teacher_fixtures.json
  • python manage.py loaddata academics/academic_fixtures.json
  • python manage.py loaddata students\fixtures\offline_applications.json
  • python manage.py loaddata students\fixtures\online_admitted.json
  • python manage.py loaddata students\fixtures\online_paid.json
  • python manage.py loaddata students\fixtures\online_rejected.json
  • python manage.py loaddata students\fixtures\online_unpaid.json
  • APPLY CARD INFO AT admission link card number: 5555555555554444 expiracy: any valid future date

Working Components:

  • Create application for admission manually (it will save candidate as offline admission candidate)
  • Online application for admission (payment and admission process handled automatically)
  • Handle payment, admission, rejection, update candidate's status after communication
  • Assign student to an academic batch, class
  • Manage counseling (admission) dashboard with data visualization (download/view pdf reports)
  • CRUD departments, subjects, teachers, academic session, semester; import subjects from csv file
  • Teacher list view, students list view, designation CRUD
  • Create users, users list, view user groups and permissions

Contact me:

django-school-management's People

Contributors

dependabot[bot] avatar raikusy avatar ravindersinghpb avatar shahariar50 avatar tanvirstreame avatar tareqmonwer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-school-management's Issues

Add counseling badge for Teacher/Counselor

Give some badges to counsellors who communicate with students/applicants/visitors based on their performance.
Performances can be monthly visits, migrations, admissions, contact tickets etc.
Badges can be VistorHunter, Migrator, V(for admissions), Gold (for contact tickets)

Pipenv install fails

pipenv.exceptions.InstallError: ERROR: ERROR: Package installation failed...
☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 00:00:02

Am getting this error when trying pipenv install inside the project folder
Screenshot from 2020-03-09 10-00-11

Complete `students` detail, update, create and delete views.

Create/Update students detail, update and delete views.
In students.views, some views might be already written or we have to create them and link properly in our frontend.
Front-end contains a student list table that needs to be updated accordingly. Each row should contain students' detail and delete-update option.

Add `course` app for classes for student promotion, attendance etc.

A class app should be responsible for students attendance and yearly/semester-wise/course promotion.
Attenace wil be in common between student and course. Courses can have multiple groups/sections.

We can use our Combination model inside admin_tools app in order to create active classes.

`course` attendance improvement

Only teacher's assigned with the course can take course attendance;
Attendance page will contain each student name, id and 2 options present or absent,
teacher will be able to mark present or absent for each student and save all record once attendance is done.

Notice board managing

Create a notice system that allows admin to create a notice and the notice will be automatically sent to all students, if it is published.

Improve reject admission student + Missed from admission process

This process should be more realistic. rejection is tightly related with payment process, missed query in students/report_views.py.
While rejecting a candidate/applicant/registrant, the following should be considered:

  • If candidate paid already, money is returned or not (according to academic policy)
  • The reason of rejection must be described in well format
  • Rejected records should be placed as separate dashboard component containing reasons, departmental analytics, area based filters, GPA analytics, last exam analytics etc.

migration error

django.db.migrations.exceptions.NodeNotFoundError: Migration result.0003_auto_20191125_0414 dependencies reference nonexistent parent node ('students', '0004_auto_20191125_0353')

Add update form at /students/admitted-students/ path

Add update form at /students/admitted-students/ path, which is currently only showing update button for each objects.
NOTE: Use AdmissionStudent model to create any form or existing can be used if it seems efficient.

Environment database files

django.db.migrations.exceptions.NodeNotFoundError: Migration course.0004_auto_20191214_2233 dependencies reference nonexistent parent node ('course', '0003_auto_20191213_1812')

dependencies automatically generated by 'migrate' that shouldn't be in the repository?

Am I wrong or shouldn't these files have been introduced into the repositories? '0003_auto_20191213_1812'

error docker

ERROR: Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 425, in _error_catcher
yield
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 507, in read
data = self._fp.read(amt) if not fp_closed else b""
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 62, in read
data = self.__fp.read(amt)

Create Combination On Student Admission.

When a student is added in database and no combination(in result module) found with this students department, academic_session and semester; create new combination automatically.

Visualize student information using chart.js

Admission, Rejection, Payment status etc should be visualized using chart.js.
This requires using additional dependency Django-Rest-Framework aka DRF. We can use DRF to create API's for chart.js datasets.

  • Admission, rejection, pending chart
  • Update api /students/counsel-report/json/2020-12-01/ and /students/counsel-report/json/ to return unpaid & rejected registrants as well.
  • Department-wise admission chart
  • City-wise admission chart
  • Visitor/Application graph by day
  • Chart/Graph filtering option (filter by Month)
  • Calculate success rate off of admission, campaign expectation (target)

Create a command to populate database

Run the command like this to don't run "out of" a django environment.

manage.py populate students|teachers|departments

Resource could be students, departments, teachers or whatever we want.

Motivation: Remove the bundle of getting up the django environment like django.setup()

Can I take this...

Generate student temporary serial id

For admitted students, before they get roll numbers from board, give them a temporary id which has this logic described bello:

  • SerialID (<last 2 digit of year>)

Here, the last part should start with 1 for each year and department.
Each new year and department's serial will be like :

+ Dept1 2020: 20...1
+ dept2 2020: 20...1
+ Dept1 2020: 20..2
+ Dept1 2021: 21..1

Student Admission Confirmation Process

  • Create conditional dropdown to select in which department and batch students should get admitted to.
  • Filter and Create Student objects from AdmissionStudent objects filtered from dropdown form.
  • Display All Student objects and cross match with Student & AdmissionStudent.
  • Allow select operation to create students
    Solved in #58

Issue when migration : django.db.migrations.exceptions.NodeNotFoundError:

python manage.py migrate
Traceback (most recent call last):
File "manage.py", line 21, in
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management_init_.py", line 381, in execute_from_command_line
utility.execute()
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management_init_.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\core\management\commands\migrate.py", line 87, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\executor.py", line 18, in init
self.loader = MigrationLoader(self.connection)
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\loader.py", line 49, in init
self.build_graph()
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\loader.py", line 274, in build_graph
raise exc
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\loader.py", line 248, in build_graph
self.graph.validate_consistency()
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\graph.py", line 195, in validate_consistency
[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\graph.py", line 195, in
[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
File "D:\python-projects\django\Django-School-Management-master\env\lib\site-packages\django\db\migrations\graph.py", line 58, in raise_error
raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration course.0004_auto_20191214_2233 dependencies reference nonexistent parent node ('course', '0003_auto_20191213_1812')

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.