Quizzy
is a proof-of-concept for a quiz taking platform, similar to Sporcle or Buzzfeed. This is the final project for CS3200 Database Design at Northeastern University with group members Meredith Scott, Jenna Sigman, and Nicole Sorial. Users can take quizzes and see some statistics, and quiz writers can upload, edit, and delete quizzes, as well as view aggregated statistics for quizzes they have written
Link to video: www.youtube.com/watch?v=mcXT-ZRPsHg&ab_channel=MeredithScott
Not all of the features of this app are fully functional. Specifically, as there is no proper backend server, the statistics-related operations do not work as well as one would hope, as there isn't a set way to update them (the data aggregates very quickly and it would be very expensive to maintain on a per transaction basis -- we would likely opt for a nightly operation that updates all the quiz statistics in bulk). Rather, as the app stands now, it displays the statistics as they are in the database at time of data generation. In a future iteration of the project, we would add improved handling to this data on the server side.
This repo contains a boilerplate setup for spinning up 3 Docker containers:
- A MySQL 8 container
- A Python Flask container with a REST API implementation
- A Local AppSmith Server, the repo for which can be found (here)[https://github.com/nicolesorial/quizzy-appsmith]
Important - you need Docker Desktop installed
- Clone this repository.
- Create a file named
db_root_password.txt
in thesecrets/
folder and put inside of it the root password for MySQL. - Create a file named
db_password.txt
in thesecrets/
folder and put inside of it the password you want to use for the a non-root user named webapp. - In a terminal or command prompt, navigate to the folder with the
docker-compose.yml
file. - Build the images with
docker compose build
- Start the containers with
docker compose up
. To run in detached mode, rundocker compose up -d
.