Free Python Django School management system

Free Python Django School management system

StudX is a web-based school management system written in Python 3 and using Django framework. The application records personal data of student, teacher and Staff people. It allows to manage all the information that a school needs on a daily basis.

loudspeaker Notice: This project has been initiated while learning Python 3 and the Django framework. The purpose of this project is purely for me the opportunity to learn coding and designing a web system and eventually to experience the challenges a full stack developper might face in its day job. It is still under development and all features are not completed yet! If you notice any coding error or security issue or if you have recommendations on design, coding or recommendations in general do not hesitate to contact me.

Screenshots

image image image image image image

In development features

  • Student records keeping
  • Discipline management
  • Attendance management
  • Internal communication
  • Student, Teacher, Staff Schedule

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See installing instructions for notes on how to deploy the project on a live system.

Prerequisites

You will find hereafter what I use to develop and to run the project

  • Ubuntu Server 16.04 LTS
  • Apache Web Server
  • Python 3
  • Django 2
  • MySQL database
  • Virtualenv (not mandatory but highly recommended)

Installing

I use Virtualenv for developping this project so I recommend you to create an virtual environment virtualenv venv and to install the requirements pip install -r requirements.txt. Then, get a local copy of the project directory by cloning "StudX" from github.

Then follow these steps:

  1. create the database by typing in mysql command line create database Studx_database
  2. Provide the required information to the DATABASES dictionnary by editing /StudX/settings.py
  3. Create the tables with the django command line python manage.py makemigrations then python manage.py migrate
  4. Finally, run the django server python manage.py runserver <your-ip:port>