Skip to content

TareqMonwer/Django-School-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

604 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django-School-Management

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

Required setup components:

  • PostgreSQL Database
  • Redis instance up and running

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

Performance test stack (Grafana + Prometheus + Locust)

This folder contains config for the self-contained perf stack in docker-compose.perf-test.yml.

What runs

  • Locust – load test (autostart, 200 users, 10 min); web UI on port 8089.
  • locust-exporter – scrapes Locust stats and exposes Prometheus metrics on 9646.
  • Prometheus – scrapes the exporter (and optionally Django /metrics) on 9091.
  • Grafana – pre-provisioned with Prometheus and the Locust dashboard on 3010.

How to run

From the project root:

docker compose -f docker-compose.perf-test.yml up --build

In Grafana, open Performance → Locust to view the load test (status, users, RPS, response times, failures, etc.).

Contact me:

About

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.

Topics

Resources

Stars

Watchers

Forks

Contributors