My name is Sebastian and I am a developer currently situated in Uppsala, Sweden, as I am currently studying a MSc in Information Technology with a specilization in Data Science at Uppsala University ๐ซ
Experience ๐
๐ I have recently finished my Bachelors Thesis, which was a collaboration with Uppsala Municipality
At the moment a succesfully logged in user is redirected to the guest screen, this should not be done since we want to have specific functionality for the different users.
Currently we have dependencies which makes the app fail upon compilation when trying to launch with expo-go. The dependencies which makes it fail are the aes256and possibly sha256 and the primary problem is these are vital for our system.
At the moment it is required to specify your local machines IP-address both in the client and the server. This should preferably be done dynamically to not have hardcoded in any of the nodes.
The npm package ip seems promising however it doesn't seem to work when launching the app with Expo Go on Android, any other similar packages which do a lookup of the host would also work but a requirement is that the chosen package works natively on any platform.
At the moment, the client automatically tries to start the key exchange with the server. This is not a problem if the server is running but if the server is not running, then the client will send the message nowhere. If the server is then started, and the client tries to log in or register, a key exchange will not have happened and the server will crash. To fix this, we should check that the client has connected before starting the key exchange.
The package "react-native-gesture-handler" is currently being used in the branch ArticleQuiz. The documentation says that this package has better implementations for buttons (compared to "react-native" package) because they are directly translated to Android and iOS native code.
The problem is that it's not at all functional in the browser (Google Chrome atleast) and completely removes the ability to test the application in the browser. The questions is wether we should use it right now or implement it at a later stage (when we don't need to test the application as much)?
We want to make use of the diffie hellman key exchange by applying a symmetric encyption algorithm to the information emitted to the server when authenticating for logging in or signing up.
The reason for removing the front-end tests was that they didn't actually test anything useful. Problem now is a thing like #61 could pass without anyone noticing (class method was broken). Maybe one thing that could be worth testing would be the internal methods of classes?
There are ways to schedule events based on time, one example of this is the library cron. This would eliminate the need to continously emit messages from the server to all the clients.
At the moment, we would need to put the scoreboard on the GameScreen screen. We should display a screen between GameScreen and NewsQ so that we display the scoreboard there, and have a button that starts the quiz.
How should this be implemented? One way would be to simply send the user to the updatePassword screen. We may want to go through the same process as when pressing on "forgot password?" at the login screen. In this case, we want to send the user to the Reset.js screen.
If we can get the current week number on client-side, we can automate the question and answer fetching. When a client would open the screen with the questions, they could simply emit a request to the server to fetch all questions with the given week number.
We can also do this on the backend, then the user would only need to emit that they want the questions and the backend would then lookup which week is it and return the appropriate questions.
From the settings screen, the user should be able to navigate to the User Policy page. How should this page look? Or should it just be a popup like the question button?
At the moment we are only using class component for all parts of the frontend. A discussion that could be had is to wether we should change from class components to functional components or keep the current implementation that we have.
An example of functional vs class could be this:
functionfuncComponent(){return<Text> Test </Text>;}classclassComponentextendsReact.component{render(){return<Text> Test </Text>;}}
I am bringing this up since when starting the application on Mobile we get this message:
And a solution seems to be to change to functional components
When you answer a question in the news quiz, and while the timer is stopped and you are waiting for the next question to appear, you are able to press another answer. This will make you skip the next question.