Build a school management system with Django — (Part 1)

Bryan Oginga
3 min readDec 8, 2020

--

In this tutorial series, we will be building a simple, robust and rock solid university based student management system using Django web framework and bootstrap4 from scratch to deployment using heroku, PostgreSQL and Stripe Payments .Feel free to visit the live demo https://students-portals.herokuapp.com/
In this tutorial, it is assumed that you already know how to build a Django application or you have an existing Django application, if you don’t have a Django knowledge, you can check this tutorial: Starting a Django Project by Real Python .
Programming experience with another high-level language (C/C++, Java, Perl, Ruby, and so forth) makes it easier to absorb the material in this tutorial series.
However, if you have never programmed before, Python itself is a great first language,
and several books out there can get you up and running on how to program using Python.
With that said let me walk you through what we will be building.

Objectives of the Student Management System

  • Registration of Students — (With google email verification)
  • Managing student information
  • Adding Hostel Rooms — (Admin User)
  • Hostel Reservation
  • Hostel Payment (with Stripe)
  • Online Examination reports (PDF report forms)
  • Online fee statements

Report Generation

  • Hostel Reservation reports
  • Examination Reports

Project Setup

Now that you have a clear picture of what we’ll be building,grab some coffee and start getting your fingers dirty by setting up the our project.

First,lets create a working directory which will house the entire project.For windows users you can run the command below on your command line to create a directory and switch into the directory

mkdir school-system && cd school-system

Its assumed that you have python istalled in your machine, run the commad below to check your python version

PythonPython 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Now lets create a virtual environment for our project by running the commad below ,or if you prefer to live dangerously you can skip this part.

pip install virtualenv
python -m venv env
env/scripts/activate

In the code above we have installed virtualenv and craeted a virtualenv called env.We then activate the virtualenv by running running the code in the third line.

You can confirm that everything is fine when you see you vitual enclused by parens.

(venv)Desktop\school-system>

The next step is to install the project depedencies.Inside the working directory create requirements.txt file and add all the dependencies in the file and run the command below to install the dependencies.

pip install -r requiremnts.txt

Creating a django project

Once all the dependencies are installed,lets finally create a Django project ,Type the commands below to create your Django project.

If you mind you can also grab a template to get you started on colorlib,they have tonnes of free and premium templates .Or if you are a want a more customized theme you write your own custom hmtl and css for the frontend.

django-admin startproject school .

Its also worth noting that I have added a period and the end of the project name to prevent Django from creating another project folder which is kinda rendundant in my opinion.

Finnaly lest spin the developemnt server to see if everything went fine.

python maange.py runserver

Don’t worry about the text in red about “18 unapplied migrations.” We’ll get to that shortly but the important part, for now, is to visit http://127.0.0.1:8000/ and make sure the above image is visible

Conclusion

Feel free to use the code in github for learning or creating something yourself. And that’s all Folks! .Be sure to hang around for the second part of the tutorial series as we wire our first app and setup our database.

--

--

Bryan Oginga

My name is Brian, I'm passionate self-taught backend web developer and a student , currently working with Python and Django web framework.