Skip to content

Latest commit

 

History

History
121 lines (95 loc) · 4.32 KB

README.md

File metadata and controls

121 lines (95 loc) · 4.32 KB

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 = '[email protected]'

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.