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.
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




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:
- create the database by typing in mysql command line
create database Studx_database
- Provide the required information to the
DATABASES
dictionnary by editing/StudX/settings.py
- Create the tables with the django command line
python manage.py makemigrations
thenpython manage.py migrate
- Finally, run the django server
python manage.py runserver <your-ip:port>