Skip to content

TBR-Group-software/quiz-project

Repository files navigation

Quiz project

The goal of this project is to develop the best quiz platform. This project was made using the Django framework and some minor libraries.

Features

  • Responsive design for all types of devices
  • Take quiz
  • Create quiz
  • Single choice quiz answer
  • Multi choice quiz answer
  • Results of quiz
  • Register and login
  • Register email notification
  • Docker container
  • Unit tests

Built with

  • Django - Back-end server side web framework
  • Celery - Simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system.
  • daphne - HTTP, HTTP2 and WebSocket protocol server for ASGI and ASGI-HTTP, developed to power Django Channels.
  • Visual Studio Code - Code Editing.
  • pre-commit - Framework for managing and maintaining multi-language pre-commit hooks.
  • black - The uncompromising Python code formatter.
  • Flake8 - Python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.
  • Bootstrap 5 - Bootstrap is a powerful, feature-packed frontend toolkit. Build anything-from prototype to production—in minutes.
  • Sass - Preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets.
  • JavaScript - Programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS
  • Docker - Set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.
  • Nginx - Web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
  • PostgreSQL - Relational database management system emphasizing extensibility and SQL compliance.
  • RabbitMQ - Message-broker software that originally implemented the Advanced Message Queuing Protocol.
  • Mailjet - Cloud-based email delivery and tracking system which allows users to send marketing emails and transactional emails.

Build

Step 1:

Download or clone this repo by using the link below:

https://github.com/TBR-Group-software/quiz-project.git

Step 2:

Create in root folder .env file and write in this values:

PSQL_NAME = 'quiz_project'
PSQL_USER = 'postgres'
PSQL_PASSWORD = 'XXX'
PSQL_HOST = 'localhost'
PSQL_PORT = 5432

DJANGO_DEBUG = True/False
DJANGO_ALLOWED_HOSTS = 'XXX'
DJANGO_SECRET_KEY = 'XXX'

RABBITMQ_HOST = 'localhost'
RABBITMQ_PORT = 5672

MAILJET_API_KEY = 'XXX'
MAILJET_SECRET_KEY = 'XXX'
MAILJET_SENDER = 'XXX@XXX.com'

Step 3:

If you want launch with Docker:

docker-compose up --build

Quiz project is now available at http://127.0.0.1/

Launch without Docker:

Step 1: Create and activate python env

python3 -m venv env
. env/bin/activate

Step 2: Install requirements-dev.txt

pip3 install -r requirements-dev.txt

Step 3: Run PostgreSQL

Step 4: Run RabbitMQ

Step 5: Run django migrations

python3 manage.py migrate

Step 6: Run Django server

python3 manage.py runserver

Quiz project is now available at http://127.0.0.1:8000/

License

This project is licensed under the GNU GPL v3 License - see the LICENSE.md file for details.