Where you can create your own quizzes, play in numerous of quizzes and compare your statistics with others in the Leaderboard of each challenge.
This project was made as part of the weekly programming challenge hosted by DevJam. The project was made for learning purposes.
Once again I learned lots of new things. For the first time I used Bootstrap. I also learned how to order database query in sqlalchemy.
π
Start: December 10th
π
Deadline: December 16th 16:00 (4PM) GMT
Practice and test your knowledge by answering questions in a quiz application. As a developer you can create a quiz application for testing coding skills of other developers. (HTML, CSS, JavaScript, Python, PHP, etc...)
- βοΈ User can start the quiz by pressing a button.
- βοΈ User can see a question with 4 possible answers
- βοΈ After selecting an answer, display the next question to the User. Do this until the quiz is finished
- At the end, the User can see the following statistics:
- βοΈ Time it took to finish the quiz
- βοΈ How many correct answers did he get
- βοΈ A message showing if he
passed
orfailed
the quiz
- βοΈ User can share the result of a quiz on social media
- βοΈ Add multiple quizzes to the application. User can select which one to take
- βοΈ User can create an account
- β User have all the scores saved in his dashboard. User can complete a quiz multiple times
- βοΈ User can create their own quizzes
- βοΈ Leaderboard for every challenge
The app is written in python using Flaks-library. Frontend is written in html5, css and vanilla js. Backend uses Flask sqlalchemy and flask-login. App is deployed in docker container in virtual private server.
- Flask - Micro web framework written in python.
- Flask-Socketio - Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
- Flask-login - Flask-Login provides user session management for Flask.
This app requires python 3.7+ to run.
Clone git repo
git clone https://github.com/JesperKauppinen/quizapp.git
After cloning or downloading this git repo, install required python libraries
pip install -r requirements.txt
Add environment variables that are used in config.py.
run app.py
python app.py
- Fill secrets in Dockerfile.
- For database, you need sql database like MariaDB. You can also use sqlite database by removing
DATABASE_URL
in Dockerfile. - You can generate docker image using command
docker image build -t quizapp .
in content root directory (projects/quizapp
). - You can start docker container with command
docker run -d -p PORT:80 quizapp
, fill PORT with the port you want the app run.
Want to contribute? Awesome!
This project was part of weekly challenges hosted by DevJam and won't be updated.
Maybe you would like to work with us, hit me up and let's talk. You can also keep working on this project yourself.
- Scoreboard design - Leaderboard design
- Card design - Cars design
- Boostrap - Some frontend elements like grids.
- Fontawesome - Icons