Skip to content

sina-soleimani/Online-Test-Application-Django-Dockerized

Repository files navigation

Description

In this program, every effort has been made to design and implement a program that meets all the needs of the electronic exam day. The site admin can easily manage all issues, such as reviewing and managing classes, managing system students, managing students in each class, managing and designing exams, reviewing exam results, and reporting some of the admin's capabilities. On the other hand, teachers can also use this system for ease in designing questions, designing exams, and obtaining exam results. As mentioned, this system is very suitable for saving teachers' time. In such a way that even with a few clicks in the system, questions and exams can be designed, and by simply clicking once, all exam results can be viewed. Students can also take their exams in a suitable environment. A list of questions, remaining exam time, and a beautiful and suitable environment for the ease and tranquility of students during the exam have been provided.

Installation

Here is the translation of the provided text from Farsi (Persian) to English:

  1. We install Docker Desktop software. By installing this software, not only does Docker run on the server, but it also provides a graphical interface for users to easily observe events within Docker.

  2. In the PowerShell section with admin access, we run the following command:

& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

At this stage, the Docker daemon is defined.

  1. In the next steps, WSL is configured on Windows. The following commands should be run in PowerShell with admin access:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

wsl.exe --install
  1. Download and install WSL from the following link on the system: WSL Download Link

  2. After completing the above steps, the Docker Desktop software will be executable. If different sections of Docker Desktop are examined, tables for images, volumes, and containers are visible. Docker is ready for Docker projects to run on it.

  3. Enter the directory where the project source is located in the command line and execute the following commands:

docker load -i .\redis.tar

docker load -i .\db.tar

docker load -i .\web.tar

docker load -i .\python.tar

By using the above commands, Docker images are created and can be viewed in the Docker Desktop software under the Images section. Note that when executing commands, make sure you are in the directory related to the files. Keep in mind that without using these commands and proceeding to step 7, Docker images related to the project can be added to Docker. However, by performing these commands, excessive downloading by Docker is avoided.

  1. Then, we build the Docker images that we transferred to the system with the following command:
docker-compose build

Using the above command, a container is created from each image file (created in step 6), and Django libraries are imported into the "web" container. In essence, the project is compiled on the server using this command.

  1. We run the Docker containers created in the previous step to start the system:
docker-compose up

Using the following command, we can view the containers of the system that we started in the previous step:

docker ps

After successfully running the project, enter the corresponding container and execute Python-related commands in this section:

docker exec -it rest_api bash

After the last command, enter the specific Docker command line. This is a Linux command line. By using the following command, run the migration files present in the project to successfully execute the database:

python manage.py migrate

With the following command, you can create a user with admin access (admin access related to Django itself):

python manage.py createsuperuser

If a technical user of the system wants to create these files that the system images are built on, they can achieve this by executing the following commands:

docker save -o python.tar python
docker save -o db.tar postgres
docker save -o python.tar exam-web

Contributing

Login Page

Screenshot 2024-10-01 181942

Question Bank

Screenshot 2024-10-01 183018

ٍExam Session

Screenshot 2024-10-01 184656

Reporting

Screenshot 2024-10-01 183732