Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 4

for the front end we will be using pyside6 to display the data and the stuff to the user

in a visually
appealing way. abiding by design principles. UI UX design principles ux is user experience. ui is
user interface. The design process is going to be first we will do the user experience. so for the user
experience we will be doing the user flow. The user flow shows all the possible combinations that
the use can use the quiz app. UI we will first1 do a wireframe. I already have somewhere a
wireframe is a quick sketch of the program. then I will do a basic prototype and i have done it on
Figma which i have shown. then I will finalize the design of it. While i am doing that i am learning
pyside and I have made basic projects using it. I have made a calculator and a log in page. I am
learning line chain because i will be pulling from open AI API. I am going to be using a sql LITE
DATABASE TO store the questions and store the user info. Other things that i will be doing in the
back end is calculations such as user stats. also, we will be finding a way to optimize the questions.
Optimizing the questions:
The main issue that we have is pulling from the open API ai is expensive, especially GPT4. This
means that we must build our own optimization model to optimize and make the outputs
predictable, reliable and efficient. The goal right now is to use gpt 3.5 turbo to generate multiple-
choice questions and answers. So gpt 3.5 will be responsible for generating a lot of questions as this
is the cheapest. The goal is to store all of that into a database and simultaneously run error checks
on them because as we know gpt isn't 100% accurate. So, there are two options on the api doc.
There is gpt 4 and gpt 4 turbo. Even though gpt turbo is more efficient, we will be using the
traditional gpt 4 model because it is better at solving deeper complex problems and this is more
accurate. Gpt 4 is going to be used to optimize, error check and run the final checks before storing
the questions and the results into the database and outputting the content to the user whenever they
are trying to solve the questions.
The nature of the graphics will most likely be modern meaning it will be associated with modern
life and it will be linked to all sorts of developing technology. There wont be any speaking in the
game but there will be music to ease the user and calm them doing when doing the questions. There
will be a tab for where you can select multiple languages so there wont be that much
miscommunication. The app will mainly be interacted using a phone, this means you can use the
app and wont be having to take out some of your day to use the app, you can use it anywhere you
are as long as you have a stable internet connection. I havent decided whether it will be a internet
game or a offline game. it will be better if it wa a offline game as this won't require a internet
connection and there will be no excuse for users to play it, however there will be limitations on it
being offline, there wont be live sores, live leaderboards so you cannot compare your scores with
real time users. But there will be more users since not everyone has a internet connection, and there
will be problems and updates if it is online. The app will be easily accessible and there will be a
tutorial for how to use the quiz, the difficulty of the questions, where to see what topi3cs you would
like to be quizzed on, how to move on to the next question, how long you will have on each
question, the score counter on each quiz, what a streak is. With how accessible it is to play the quiz
this will open to a wider range of target audience. Due to previous factors, the app will be designed
in a way that allows the target audience to be ages 15-18. I have selected a user to personify my
target audience, Saad Akram. He is a 19-year-old in computing class who has a interest in quizzes
and has also tried and tested many played quizzes in the past, so he will know what to expect from
the type of app being created. I will also have regular contact with Saad Akram as i share my
computer science class with him.
How the problem can be solved using computational methods
This problem is well suited for a computer as it can be solved using computational methods. This is
due to how a quiz can be easily abstracted and how it can have multiple conditions that can be set or
the fact that the app has simple algorithms that can be created for a quiz scenario. I have given the
following examples to show how the computer is suited to be solved by a computer program due to
the computational methods.

Thinking abstractly
I need to decide what to include in the quiz app/what is necessary and what is not. This is why
abstraction is perfect for this.
Abstraction for ‘AI Quiz’
• Remove all 3 dimensions and restrict quiz to 2 dimensions.
• Add calming aura
• Remove all unnecessary buttons and sounds and only have simplified sound affects to indicate
certain things to the user
• Add a bar along the top of the screen when playing to help give the player an indication of how
well they are doing.
• Add a menu to give the user the ability to perhaps change the quiz or change some options.

Thinking ahead
This is a way of looking ahead and knowing what you want. It allows you to plan a but giving the
solution of your problem a bi of structure.
• I would plan to use python as this is a good software to write quiz apps in
• Inputs for the app will most likely be the use of a mouse or fingers to navigate the app and
different buttons to activate e.g app states like the ‘pause’ state
• The outputs of the app will consist of sound effects and music for the app
• Score system should be included to give the user something to aim towards e.g. reach a new
high score

Thinking procedurally
This is similar to thinking ahead as this gives the problem a structure making it easier to work with
as now you can work at the problem bit by but making the whole process more efficient.
Procedurally
Breaking down the problem
First name of app
Then players
This will determine how the app will be played and if there is a two player version of the app. If the
app is one player there will only be one person answering the questions. If the app is two players,
both players will be answering questions against each other.
Control
These are necessary to interact with the app. The player should be able to use the mouse to clock on
things in the app to interact and a few buttons to allow the app state to change e.g playing to menu
by pressing the settings button.
app state
These app states will create an illusion of depth for the app as it will give the app some structure.
There will be a log in screen to introduce the app: this will then switch to the menu app state this
will then allow the user to choose between player one app state and player two app state.
Furthermore, if certain conditions are met, the app state will change to game over.
Score:
This will give the app some sense of achievement. Different amounts in score will trigger different
events e.g if the user answers a specific streak of questions they will receive added time, if the score
per round it to low a ‘game over’ state will be triggered or the player has just achieved the right
score to go to the next round.

Under players will be one player game.


Under control will be touch system
Under app state will be menu
Under scoring will be perfect score
Under one plater game will be two player game
Under touch system will be buttons for app states
Under menu will be game over
Under perfect score will be failed to achieve certain score
Under gave over will be start up screen
Under that will be player one and two

The app has been broken down into four main problems, by thinking procedurally, that should be
solved in order for the app to have basic functionality.
Thinking logically

This helps me think about what way i could solve the logical aspect of my problem.
When the menu button is selected, the app will switch to the menu game state. If a question is
answered, a branch will be activated meaning points will be added to the player's score board. As
the quiz is running there will be a constant iteration running, checking certain conditions which will
cause a branch to change the game state to the ‘game over’ game state. There will also be a constant
iteration being run to check when a question is answered.

Thinking concurrently
This is useful for thinking about how to make my solution more efficient when the solution is in
use. The app will be updating its score and drawing questions from the open AI API at the same
time.

Conclusion

The previous examples have demonstrated that the features of my problem can be solved via
computational methods making it suited for a computer program. Thes methods are useful for
giving the problem some structure so it can be more easily solved hence making the problem suited
to the computer program.
If the problem is successfully solved using a computer program, the stakeholders will be able to
play the app where they can answer questions, which will be updated in real time, giving them a
certain number of points. This is aimed to be a form of entertainment for the stakeholders.

Research
Interview with Saad Akram to get an idea of initial requirements
Interview 23/10/23
This interview will be constructed to find the basic requirements from the user. This will then give
directions to what type of quiz app will be created.

You might also like