Student Feedback System Project in Django with Source Code

This Student Feedback System in Django created based on python, Django, and SQLITE3 Database.

The Student Feedback System is a simple project for college students has been developed with the aim of rating and analyzing the success of college faculty.

This form of Student Feedback system eliminates the time-consuming task of manually inspecting each student’s feedback pages.

A Student Feedback System Project alleviates the time and effort required to keep and maintain records on a manual basis, which necessitates a lot of space and security.

In the case of paper-based feedbacks, students’ feedbacks can also be tempered for the wrong reasons, but the Student Feedback system can still guarantee the privacy of feedbacks.

This Student Feedback System in Django is an easy project for beginners to learn how to build a web-based python Django project.

We will provide you with the complete source code and database for the python project so that you can easily install it on your machine and learn how to program in Python Django.

To start creating a Student Feedback System Project in Python Django, makes sure that you have PyCharm Professional IDE Installed in your computer.

About ProjectProject Details
Project Name Student Feedback System in Django
Python version (Recommended)3.8 Version
Programming Language UsedPython Django Language
Developer Name itsourcecode.com
IDE Tool (Recommended)Sublime, Visual Studio, PyCharm
Project Type Web Application
DatabaseSQLite
Student Feedback System Project in Django Overview

Front end Features

  • Login Page – student enter their credentials on this page to gain access in the system.
  • Home Page– When student visit the system, this is the system’s default page. This page shows the books for sale in the store, or by entering a keyword in the search box above the books.
  • View Profile – Student can view their profile.
  • Update Profile – Student can update their profile
  • Change Password – Student can update their Password for the security of their account.
  • Send Feedback – Student can choose faculty and give feedback.

Student Feedback System in Django Steps on How to Create a Project

Time needed: 5 minutes

Here are the steps on how to create a Student Feedback System Project in Django with Source Code.

  • Step 1: Open file.

    First , open “pycharm professional” after that click “file” and click “new project”.
    Create new Project for Student Feedback System Project in Django with Source Code

  • Step 2: Choose Django.

    Next, after click “new project“, choose “Django” and click.
    choose django for Student Feedback System Project in Django with Source Code

  • Step 3: Select file location.

    Then, select a file location wherever you want.
    Create location name for Student Feedback System Project in Django with Source Code

  • Step 4: Create application name.

    After that, name your application.
    Create application name for Student Feedback System Project in Django with Source Code

  • Step 5: Click create.

    Lastly, finish creating project by clicking “create” button.

  • Step 6: Start Coding.

    Finally, we will now start adding functionality to our Django Framework by adding some functional codes.

Functionality and Codes

  • Create template for the sidebar

In this section, we will learn on how create a templates for the sidebar. To start with, add the following code in your sidebar_template.html under the folder of /templates/student_template.

{% load static %}

<aside class="main-sidebar sidebar-dark-primary elevation-4">
      <!-- Brand Logo -->
      <a href="{% url 'student_home' %}" class="brand-link">
        <img src="{% static 'dist/img/chmsc.jpg' %}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3"
            style="opacity: .8">
        <span class="brand-text font-weight-light">CHMSC - BINALBAGAN</span>
      </a>

      <!-- Sidebar -->
      <div class="sidebar">
        <!-- Sidebar user panel (optional) -->
        <div class="user-panel mt-3 pb-3 mb-3 d-flex">
          <div class="image">
            <img src="{% static 'dist/img/user2-160x160.jpg' %}" class="img-circle elevation-2" alt="User Image">
          </div>
          <div class="info">
            <a href="{% url 'student_profile' %}" class="d-block">{{ user.first_name }} {{ user.last_name }}</a>
          </div>
        </div>

        <!-- Sidebar Menu -->
        <nav class="mt-2">
          <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
            <!-- Add icons to the links using the .nav-icon class
                with font-awesome or any other icon font library -->
            
            <li class="nav-item">
              {% url 'student_home' as student_home %}
              <a href="{{ student_home }}" class="nav-link {% if request.path == student_home %} active {% endif %}">
                <i class="nav-icon fas fa-tachometer-alt"></i>
                <p>
                  Home
                  {% comment %} <span class="right badge badge-danger">New</span> {% endcomment %}
                </p>
              </a>
            </li>

            <li class="nav-item">
              {% url 'student_view_attendance' as student_view_attendance %}
              <a href="{{ student_view_attendance }}" class="nav-link {% if request.path == student_view_attendance %} active {% endif %}">
                <i class="nav-icon fas fa-calendar-alt"></i>
                <p>
                  View Attendance
                  {% comment %} <span class="right badge badge-danger">New</span> {% endcomment %}
                </p>
              </a>
            </li>

            <li class="nav-item">
              {% url 'student_view_result' as student_view_result %}
              <a href="{{ student_view_result }}" class="nav-link {% if request.path == student_view_result %} active {% endif %}">
                <i class="nav-icon fas fa-tasks"></i>
                <p>
                  View Result
                  {% comment %} <span class="right badge badge-danger">New</span> {% endcomment %}
                </p>
              </a>
            </li>

            <li class="nav-item">
              {% url 'student_apply_leave' as student_apply_leave %}
              <a href="{{ student_apply_leave }}" class="nav-link {% if request.path == student_apply_leave %} active {% endif %}">
                <i class="nav-icon fas fa-envelope-open-text"></i>
                <p>
                  Apply for Leave
                  {% comment %} <span class="right badge badge-danger">New</span> {% endcomment %}
                </p>
              </a>
            </li>

            <li class="nav-item">
              {% url 'student_feedback' as student_feedback %}
              <a href="{{ student_feedback }}" class="nav-link {% if request.path == student_feedback %} active {% endif %}">
                <i class="nav-icon fas fa-comments"></i>
                <p>
                  Send Feedback
                  {% comment %} <span class="right badge badge-danger">New</span> {% endcomment %}
                </p>
              </a>
            </li>

          </ul>
        </nav>
        <!-- /.sidebar-menu -->
      </div>
      <!-- /.sidebar -->
    </aside>

  • Create template for the feedback form

In this section, we will learn on how create a templates for the feedback form. To start with, add the following code in your student_feedback.html under the folder of /templates/student_template.

{% extends 'student_template/base_template.html' %}

{% block page_title %}
    Feedback Message
{% endblock page_title %}

{% block main_content %}

{% load static %}

<section class="content">
        <div class="container-fluid">

            <div class="row">
                <div class="col-md-12">
                    <!-- general form elements -->
                    <div class="card card-primary">
                    <div class="card-header">
                        <h3 class="card-title">Leave a Feedback Message</h3>
                    </div>
                    <!-- /.card-header -->

                                {% comment %} Display Messages {% endcomment %}
                                {% if messages %}
                                <div class="form-group">
                                <div class="col-12">
                                    {% for message in messages %}
                                    {% if message.tags == "error" %}
                                        <div class="alert alert-danger alert-dismissible fade show" role="alert" style="margin-top: 10px;">
                                        {{ message }}
                                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                        </button>
                                        </div>
                                    {% elif message.tags == "success" %}
                                        <div class="alert alert-success alert-dismissible fade show" role="alert" style="margin-top: 10px;">
                                        {{ message }}
                                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                        </button>
                                        </div>
                                    {% endif %}
                                    {% endfor %}
                                </div>
                                </div>
                                {% endif %}
                            
                    <form method="POST" action="{% url 'student_feedback_save' %}">
                        {% csrf_token %}
                        <div class="card-body">
                           
                            <div class="form-group">
                                <label>Feedback Message </label>
                                <textarea name="feedback_message" class="form-control" rows="6" placeholder="Feedback Message"></textarea>
                            </div>


                        </div>
                        <!-- /.card-body -->

                        <div class="card-footer">
                        <button type="submit" class="btn btn-primary">Leave a Feedback</button>
                        </div>

                    </form>

                    </div>
                    <!-- /.card -->



                </div>
            </div>

            <div class="row">
                <div class="col-md-12">
                    <div class="card card-success">
                        <div class="card-header">
                            <h3 class="card-title">Feedback History</h3>
                        </div>

                        <div class="card-body">
                           <div class="table-responsive">
                                <table class="table">
                                    <thead class="thead-light">
                                    <tr>
                                        <th>#ID</th>
                                        <th>Feedback Message</th>
                                        <th>Feedback Reply</th>
                                    </tr>
                                    </thead>
                                    
                                    {% for row in feedback_data %}
                                    <tr>
                                        <td>{{ row.id }}</td>
                                        <td>{{ row.feedback }}</td>
                                        <td>{{ row.feedback_reply }}</td>
                                    </tr>
                                    {% endfor %}
                                </table>
                            </div>
                        </div>
                        <!-- /.card-body -->
                    </div>
                </div>
            </div>

        </div><!-- /.container-fluid -->
      </section>

  {% endblock main_content %}

{% block custom_js %}

{% endblock custom_js %}
  • Create template for the student profile form

In this section, we will learn on how create a templates for the student profile form. To start with, add the following code in your student_profile.html under the folder of /templates/student_profile.

{% extends 'student_template/base_template.html' %}

{% block page_title %}
    Update Profile
{% endblock page_title %}

{% block main_content %}

{% load static %}

<section class="content">
        <div class="container-fluid">

            <div class="row">
                <div class="col-md-12">
                    <!-- general form elements -->
                    <div class="card card-primary">
                    <div class="card-header">
                        <h3 class="card-title">Update Profile</h3>
                    </div>
                    <!-- /.card-header -->
                    <!-- form start -->
                    <form role="form" method="POST" action="{% url 'student_profile_update' %}">
                        {% csrf_token %}

                        
                                {% comment %} Display Messages {% endcomment %}
                                {% if messages %}
                                <div class="form-group">
                                <div class="col-12">
                                    {% for message in messages %}
                                    {% if message.tags == "error" %}
                                        <div class="alert alert-danger alert-dismissible fade show" role="alert" style="margin-top: 10px;">
                                        {{ message }}
                                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                        </button>
                                        </div>
                                    {% elif message.tags == "success" %}
                                        <div class="alert alert-success alert-dismissible fade show" role="alert" style="margin-top: 10px;">
                                        {{ message }}
                                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                        </button>
                                        </div>
                                    {% endif %}
                                    {% endfor %}
                                </div>
                                </div>
                                {% endif %}
                            

                        <div class="card-body">
                            <div class="form-group">
                                <label>Username </label>
                                <input type="text" class="form-control" name="username" value="{{ user.username }}" disabled="disabled">
                            </div>

                            <div class="form-group">
                                <label>Email </label>
                                <input type="text" class="form-control" name="email" value="{{ user.email }}" disabled="disabled">
                            </div>

                            <div class="form-group">
                                <label>First Name </label>
                                <input type="text" class="form-control" name="first_name" value="{{ user.first_name }}">
                            </div>

                            <div class="form-group">
                                <label>Last Name </label>
                                <input type="text" class="form-control" name="last_name" value="{{ user.last_name }}">
                            </div>

                            <div class="form-group">
                                <label>Address </label>
                                <textarea name="address" class="form-control" row="5">{{ student.address }}</textarea>
                            </div>

                            <div class="form-group">
                                <label>Password </label>
                                <input type="text" class="form-control" name="password" placeholder="Fill only if you want to change Password.">
                            </div>

                        </div>
                        <!-- /.card-body -->

                        <div class="card-footer">
                        <button type="submit" class="btn btn-primary">Update Profile</button>
                        </div>
                    </form>
                    </div>
                    <!-- /.card -->

                </div>
            </div>

        </div><!-- /.container-fluid -->
      </section>

  {% endblock main_content %}

Downloadable Source Code Below.

Anyway, if you want to level up your programming knowledge, especially python, try this new article I’ve made for you Best Python Projects with source code for Beginners.

But If you’re going to focus on web development using Django, you can download here from our list of Best Django Projects with source code based on real-world projects.

How To Run The Student Feedback System in Django?

  • Step 1: Extract/unzip the file
  • Step 2: Go inside the project folder, open cmd and type the following commands to install Django Framework and run the webserver:
  • pip install -r requirements.txt
  • python manage.py migrate
  • python manage.py runserver
  • Step 3: Finally, open the browser and go to http://127.0.0.1:8000/

Summary

In summary, this Student Feedback System in Django with Source Code can be useful to students or professional who wants to learn python programming language.

This project can also be modified to fit your personal requirements. Hope this project will help you to improve your skills. Happy Coding!

If you have any questions or suggestions about Student Feedback System in Django with Source Code, please feel free to leave a comment below.

Checkout the other related articles below.

Frequently Asked Questions

How does this Django student management or admission system work?

Records student demographics, enrollment per term, class assignments, grades, attendance, fees. Smaller-scope than full school management, student-centric. Foundation BSIT capstone.

What Django and Python versions does this project require?

Most projects in this batch run on Django 4.x or 5.x with Python 3.8+. A few older projects need Django 3.2 with Python 3.7. Check the requirements.txt file for exact versions. To run any: install Python, create a virtualenv (python -m venv venv), activate it, pip install -r requirements.txt, run python manage.py migrate, then python manage.py runserver.

How do I set up the database for this Django project?

Most projects use SQLite (zero setup, auto-creates db.sqlite3 in project root on first migrate). For projects using MySQL or PostgreSQL: install the database server, create an empty database, edit settings.py DATABASES[‘default’] with your credentials, run python manage.py migrate. For sample data: python manage.py loaddata fixtures.json (if a fixture file is included) or create a superuser via python manage.py createsuperuser.

Can I use this Django project for a BSIT capstone or thesis?

Yes, but extend it. A bare CRUD app is too narrow for full capstone scope. Add: user roles via Django Groups, dashboards (Chart.js + AJAX endpoints), PDF exports (ReportLab or WeasyPrint), email notifications (Django send_mail), real domain extension (analytics, audit log, multi-branch). Pair with Chapter 1-5 documentation matching your panel’s rubric.

Why am I getting ModuleNotFoundError, OperationalError, or ‘No such table’ errors?

Three common Django startup issues: (1) ModuleNotFoundError: virtualenv not activated OR pip install -r requirements.txt skipped. (2) OperationalError: database credentials in settings.py don’t match your local MySQL/PostgreSQL. (3) ‘No such table’: you skipped python manage.py migrate. Also: if settings.py imports fail, check Python version compatibility (Django 5 needs Python 3.10+).

Where can I find more Django projects with source code?

Browse the Django Projects hub for the full library. For broader Python capstones see Python Projects (Tkinter desktop, Pygame games, OpenCV vision, ML). For PHP MVC alternatives see Laravel Projects. For BSIT capstone idea lists see 150 Best Capstone Project Ideas.

Adones Evangelista

Programmer & Technical Writer at PIES IT Solution

Adones Evangelista is a programmer and writer at PIES IT Solution, author of over 900 tutorials and error-fix guides at itsourcecode.com. Specializes in JavaScript, Django, Laravel, and Python error debugging covering ValueError, TypeError, AttributeError, ModuleNotFoundError, and RuntimeError, plus C/C++ and PHP capstone projects for BSIT students.

Expertise: JavaScript · Python · Django · Laravel · Error Debugging · C/C++  · View all posts by Adones Evangelista →

2 thoughts on “Student Feedback System Project in Django with Source Code”

Leave a Comment