This repository contains CSE470 Group No 9
PROJECT, Summer 2023
Section 02
.
- Athar Noor Mohammad Rafee [20101396]
- Abu Darda [23141038]
- Nuraiya Rahman Khan [18301174]
- Sumaiya Haque [23141039]
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.
-
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
-
node
node
version 21 or higher. Download node if you don't have it already.To check your version of node, run:
node --version
-
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
To set up, please follow these steps:
Back-End
-
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
-
Change directory to the project directory
cd InteractiveQuizApplication
or open this directory with your favourite
code editor
orIDE
which will download all the dependencies for maven. We used IntelliJ IDEA but other codeeditors
orIDES
will also do the job. -
Wait for Maven to download all the dependencies.
-
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.- Taking advantage of the environment variables that are used in the application.properties file
- 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. -
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.
-
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.
- Note: It's also possible to use AWS S3 as well with
-
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) and9443
(https). -
And then finally Click the
play
icon which will start the spring boot application Alternatively, from the terminal use the includedmaven
wrapper to build and run using./mvnw clean install
-
By default, the backed server should start at http://localhost:8080
-
To check the OpenAPI documentation for created APIs, please visit https://localhost:8080/swagger-ui.html 😀
Front-End
-
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
-
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 commandnpm install
This will download all
npm
dependencies. -
Now run the local development server by using
npm run dev
By default, the Front-End server should start at http://localhost:3000
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.
Special Thanks to @wingkwong for the react-quiz-component library which is the building block for creating different types of quizzes.
To start contributing, please follow the contribution guidelines :)
Copyright © 2023-present Inmoresentum