Skip to content

Inmoresentum/InteractiveQuizApplication

Repository files navigation

whatever

An Interactive Web-Based Quiz Application

whatever whatever whatever whatever whatever whatever https://img.shields.io/badge/Next 13-black?style=for-the-badge&logo=next.js&logoColor=red

whatever whatever whatever whatever whatever


BUILD INFORMATION

https://img.shields.io/badge/daisyui 3-5A0EF8?style=for-the-badge&logo=daisyui&logoColor=orange https://img.shields.io/badge/daisyui 3-5A0EF8?style=for-the-badge&logo=daisyui&logoColor=orange

Group Information

This repository contains CSE470 Group No 9 PROJECT, Summer 2023 Section 02.

Group Name: Enigma Enchanters

System Requirements

To test and run the application, or if you want to modify things according to your needs

you will have to install the following things.

  1. java

    jdk version 17 Download jdk if you don't have it already.

    If you're on unix like system, you can use SDK MAN which has certain advantages over other methods.

    To check your version of java, run:

     java --version

    or

    javac --version
  2. node

    node version 21 or higher. Download node if you don't have it already.

    To check your version of node, run:

    node --version
  3. npm

    npm version 10.2.3 or higher. You will have it after you install node.

    To check your version of npm, run:

    npm --version

Setup

To set up, please follow these steps:

Back-End
  1. Clone the repo if you haven't already

    make sure that you have git installed. To check run git --version in your terminal.

    git clone https://github.com/Inmoresentum/InteractiveQuizApplication.git
  2. Change directory to the project directory

    cd  InteractiveQuizApplication

    or open this directory with your favourite code editor or IDE which will download all the dependencies for maven. We used IntelliJ IDEA but other code editors or IDES will also do the job.

  3. Wait for Maven to download all the dependencies.

  4. Now You have to Set up MariaDB and to do that you can either download MariaDB for your operating system or use docker to spin up a MariaDB container. By default, the backend server is expecting MariaDB to run on port: 3306, so you will have make sure that your instance of MariaDB is also running on that port. However, if you want to overrider the default configuration, then you can do in two ways.

    1. Taking advantage of the environment variables that are used in the application.properties file
    2. Or Changing the provided default spring.datasource.url

    Furthermore, you have to create a database called quiz_application_database else you can override the configuration mentioned in the previous steps.

  5. For email sending and testing purpose while developing the application, we used MailDev which you can easily set up through docker using their latest image. If you are planning on overriding or changing the default configuration and then please consult with application.properties file.

  6. For storing images, videos and other objects, you will need to have minio which is a S3 compatible object storage solution. You can easily spin up a minio container using docker, or you can manually download minio for your respective platform from here. Furthermore, you have to make sure that you create the necessary user account(s) with permissions. Important thing to note that spring boot is expecting a bucket called quiz_storage already be there when the server starts. So make sure to create it if it does not already exist.

    • Note: It's also possible to use AWS S3 as well with minioClinet but for that you will have to do some extra configuration by yourself.
  7. For scanning files and binaries for viruses and harmful contents, you will need clamav-rest which is a rest service built on top of ClamAV.

    Note: The backend is expecting the clamav-rest service to run on port 7075 (http) and 9443 (https).

  8. And then finally Click the play icon which will start the spring boot application Alternatively, from the terminal use the included maven wrapper to build and run using

    ./mvnw clean install
  9. By default, the backed server should start at http://localhost:8080

  10. To check the OpenAPI documentation for created APIs, please visit https://localhost:8080/swagger-ui.html 😀

Front-End
  1. Clone the repo if you haven't already

    make sure that you have git installed. To check run git --version in your terminal.

    git clone https://github.com/Inmoresentum/InteractiveQuizApplication.git
  2. Change directory to the project directory

    cd  /FrontEnd/interactive-quiz-app   

    Now you have to download all the frontend dependencies using npm. To do so run the following command

    npm install

    This will download all npm dependencies.

  3. Now run the local development server by using

    npm run dev

    By default, the Front-End server should start at http://localhost:3000

Issues

You've found a bug in the source code, a mistake in the documentation? You can help by submitting an issue on GitHub. Before you create an issue, make sure to search for the issue archive -- your issue may have already been addressed!

Please try to create bug reports that are:

  • reproducible. include steps to reproduce the problem.
  • specific. include as much detail as possible: which version, what environment, etc.
  • unique. do not duplicate existing opened issues.
  • scoped to a single bug. one bug per report.

Acknowledgement

Special Thanks to @wingkwong for the react-quiz-component library which is the building block for creating different types of quizzes.

Contributor

To start contributing, please follow the contribution guidelines :)

 

Copyright © 2023-present Inmoresentum

whatever