Qwiz transforms how students revise class material by creating AI-powered quizzes.
- Condensing large amounts of different sources.
- Testing themselves effectively in an interactive way that covers all material.
- Make revising fun and social.
- Variety of questions
- Multiple choice
- Fill in the blank
- Short answer
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
You will need to set these services up:
- Azure Functions
- Azure Cosmos DB for NoSQL
- Azure Web PubSub
- Azure Blob Storage
- Azure Storage Queue
- Azure Speech Service
- OpenAI API
This will walk you through how to set up the project manually on your local machine. Please ensure you have all the appropriate cloud services set up.
To set up the project manually on your local machine, you need to create two configuration files:
-
local.settings.json
in theazure
directory: This file should contain the necessary configuration for the Azure function. You can find an example of this file in theazure
directory namedexample.local.settings.json
. Copy the contents of the example file into yourlocal.settings.json
file and replace the placeholder values with your actual values. -
.env
in theserver
directory: This file should contain the necessary environment variables for the server. Similarly, you can find an example of this file in theserver
directory named.example.env
.
To run the Azure Functions locally:
cd azure
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
func start
- This should start the Azure Functions locally on port 7071.
To run the Express server locally:
cd server
npm install
npm start
- This should start the Express server locally on port 5000.
You can now access the site at http://localhost:5000/.
These steps will guide you through running the website locally using Docker.
- Ensure you have Docker and Docker Compose installed on your machine. If not, you can download them from Docker's official website.
- Clone the repository to your local machine.
- In the root directory of the project, you'll find two example environment files:
.example.azure.env
and.example.server.env
. - Create two new files named
.azure.env
and.server.env
respectively in the root directory, and copy the contents of the example files into them. Replace the placeholder values with your actual values.
You can now build the Docker images and start the containers using Docker Compose:
docker-compose up
You can access the site at http://localhost:5000.
Locally, the Azure Functions in the docker container will use the master key at etc\test-secrets\host.json
for authentication.
By default this is set to "test"
.
Please ensure that the variable AZURE_FUNCTION_TOKEN
in .server.env
matches that key.
Features:
- Login, register, logout
- Create new quiz
- View quiz
- Invite friends
- Start quiz
- Answer quiz
- View result
- Delete/leave quiz
Due to the scope of the project, there were features that we set aside for future implementation. These include:
- Invitation system
- Enhanced leaderboard
- More question types
- Azure Functions - Serverless Functions
- Azure CosmosDB - No-SQL Database
- ExpressJS - Backend Framework
- VueJs - Web Framework