Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
21_22-J 38
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
21_22-J 38
21_22-J 38
Commits
bd42bb29
Commit
bd42bb29
authored
Apr 27, 2022
by
Neranga K.T.
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'it18256888' into 'master'
It18256888 See merge request
!143
parents
89274bdb
37b1c946
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
217 additions
and
7 deletions
+217
-7
backend/IT18256888/__pycache__/app.cpython-39.pyc
backend/IT18256888/__pycache__/app.cpython-39.pyc
+0
-0
backend/IT18256888/app.py
backend/IT18256888/app.py
+71
-1
frontend/App.js
frontend/App.js
+3
-1
frontend/src/constants/Levels.js
frontend/src/constants/Levels.js
+5
-0
frontend/src/data/dummy-data.js
frontend/src/data/dummy-data.js
+28
-0
frontend/src/model/Users.js
frontend/src/model/Users.js
+10
-0
frontend/src/router/router.js
frontend/src/router/router.js
+1
-1
frontend/src/screen/auth/Login.js
frontend/src/screen/auth/Login.js
+21
-1
frontend/src/screen/memory/GameOverScreen.js
frontend/src/screen/memory/GameOverScreen.js
+25
-1
frontend/src/screen/memory/elementry/GameScreenOne.js
frontend/src/screen/memory/elementry/GameScreenOne.js
+9
-0
frontend/src/store/actions/login.js
frontend/src/store/actions/login.js
+5
-0
frontend/src/store/actions/memory.js
frontend/src/store/actions/memory.js
+5
-0
frontend/src/store/reducers/login.js
frontend/src/store/reducers/login.js
+22
-0
frontend/src/store/reducers/memory.js
frontend/src/store/reducers/memory.js
+12
-2
No files found.
backend/IT18256888/__pycache__/app.cpython-39.pyc
0 → 100644
View file @
bd42bb29
File added
backend/IT18256888/app.py
View file @
bd42bb29
...
...
@@ -4,6 +4,13 @@ from keras.layers import Dense,Dropout
from
keras.models
import
Sequential
import
keras.backend
as
K
#creating the tables using sqlalchemy
from
flask_sqlalchemy
import
SQLAlchemy
import
datetime
#serialize and deserialize data
from
flask_marshmallow
import
Marshmallow
scaler_x
=
joblib
.
load
(
'scaler_x.pkl'
)
scaler_y
=
joblib
.
load
(
'scaler_y.pkl'
)
...
...
@@ -53,4 +60,67 @@ def get_level():
results
=
[{
"level"
:
float
(
result
)}]
return
(
jsonify
(
results
=
results
))
app
.
run
(
host
=
'0.0.0.0'
,
port
=
5000
)
userpass
=
'mysql://root:''@'
basedir
=
'127.0.0.1'
dbname
=
'/helply'
socket
=
'?unix_socket=/opt/lampp/var/mysql/mysql.sock'
dbname
=
dbname
+
socket
app
.
config
[
'SQLALCHEMY_DATABASE_URI'
]
=
userpass
+
basedir
+
dbname
app
.
config
[
'SQLALCHEMY_TRACK_MODIFICATIONS'
]
=
False
#DB Connection
db
=
SQLAlchemy
(
app
)
#crate a object of marshmallow
ma
=
Marshmallow
(
app
)
#creating the table
class
MemoryResults
(
db
.
Model
):
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
)
name
=
db
.
Column
(
db
.
String
(
20
))
age
=
db
.
Column
(
db
.
String
(
10
))
game_level
=
db
.
Column
(
db
.
String
(
50
))
time_duration
=
db
.
Column
(
db
.
Float
())
result
=
db
.
Column
(
db
.
String
(
20
))
date
=
db
.
Column
(
db
.
DateTime
,
default
=
datetime
.
datetime
.
now
)
def
__init__
(
self
,
name
,
age
,
game_level
,
time_duration
,
result
):
self
.
name
=
name
self
.
age
=
age
self
.
game_level
=
game_level
self
.
time_duration
=
time_duration
self
.
result
=
result
#for serializing and deserializing , create the schema
#create Results schema
class
ResultsSchema
(
ma
.
Schema
):
class
Meta
:
fields
=
(
'id'
,
'name'
,
'age'
,
'game_level'
,
'time_duration'
,
'result'
,
'date'
)
# fields to serialize
result_schema
=
ResultsSchema
()
results_schema
=
ResultsSchema
(
many
=
True
)
#add results => POST method
@
app
.
route
(
'/add'
,
methods
=
[
'POST'
])
def
add_result
():
# title = request.json['title']
# body = request.json['body']
name
=
request
.
json
[
'name'
]
age
=
request
.
json
[
'age'
]
game_level
=
request
.
json
[
'game_level'
]
time_duration
=
request
.
json
[
'time_duration'
]
result
=
request
.
json
[
'result'
]
#object of class table
results
=
MemoryResults
(
name
,
age
,
game_level
,
time_duration
,
result
)
#add to the db
db
.
session
.
add
(
results
)
#commit to the db
db
.
session
.
commit
()
return
result_schema
.
jsonify
(
results
)
#run the flask file
if
__name__
==
"__main__"
:
# app.run(debug=True)
app
.
run
(
host
=
'0.0.0.0'
,
port
=
5000
,
debug
=
True
)
frontend/App.js
View file @
bd42bb29
...
...
@@ -20,12 +20,14 @@ import {createStore, combineReducers} from 'redux';
import
{
Provider
}
from
'
react-redux
'
;
import
memoryReducer
from
'
./src/store/reducers/memory
'
;
import
timeReducer
from
'
./src/store/reducers/memory
'
import
userReducer
from
'
./src/store/reducers/login
'
;
import
AppRouter
from
"
./src/router/router
"
const
rootReducer
=
combineReducers
({
memory
:
memoryReducer
,
time
:
timeReducer
time
:
timeReducer
,
users
:
userReducer
});
const
store
=
createStore
(
rootReducer
);
...
...
frontend/src/constants/Levels.js
0 → 100644
View file @
bd42bb29
export
default
{
elementry
:
'
elementry_level
'
,
level2
:
'
level_two
'
,
level3
:
'
level_three
'
}
\ No newline at end of file
frontend/src/data/dummy-data.js
0 → 100644
View file @
bd42bb29
import
Users
from
'
../model/Users
'
;
export
const
USERS
=
[
new
Users
(
'
1
'
,
'
teran@helply.com
'
,
'
12345678
'
,
'
teran
'
),
new
Users
(
'
2
'
,
'
rusiru@helply.com
'
,
'
12345678
'
,
'
rusiru
'
),
new
Users
(
'
3
'
,
'
madawa@helply.com
'
,
'
12345678
'
,
'
madawa
'
),
new
Users
(
'
4
'
,
'
navodh@helply.com
'
,
'
12345678
'
,
'
navodh
'
),
]
\ No newline at end of file
frontend/src/model/Users.js
0 → 100644
View file @
bd42bb29
class
Users
{
constructor
(
uid
,
email
,
password
,
name
){
this
.
uid
=
uid
,
this
.
email
=
email
,
this
.
password
=
password
,
this
.
name
=
name
}
}
export
default
Users
;
\ No newline at end of file
frontend/src/router/router.js
View file @
bd42bb29
...
...
@@ -7,7 +7,7 @@ import Home from '../screen/home';
import
Start
from
'
../screen/Start
'
;
import
Register
from
'
../screen/auth/Register
'
;
import
Login
from
'
../screen/auth/Login
'
;
import
Splash
from
'
../screen/splash/
S
plash
'
;
import
Splash
from
'
../screen/splash/
s
plash
'
;
import
Color
from
'
../screen/Color
'
;
import
Blue
from
'
../screen/activity/Blue
'
;
import
Read
from
'
../screen/Read
'
;
...
...
frontend/src/screen/auth/Login.js
View file @
bd42bb29
...
...
@@ -2,6 +2,8 @@ import { useNavigation } from "@react-navigation/native";
import
Orientation
from
'
react-native-orientation-locker
'
;
import
React
,
{
useState
}
from
"
react
"
;
import
{
SafeAreaView
,
ScrollView
,
View
,
StyleSheet
,
ImageBackground
,
Text
,
TextInput
,
TouchableOpacity
,
Image
}
from
"
react-native
"
;
import
{
useSelector
,
useDispatch
}
from
'
react-redux
'
;
import
{
userLogin
}
from
'
../../store/actions/login
'
;
import
client
from
"
../client/Client
"
;
...
...
@@ -23,6 +25,10 @@ const isValidEmail = (value) => {
const
Login
=
()
=>
{
const
dispatch
=
useDispatch
();
const
users
=
useSelector
(
state
=>
state
.
users
.
users
);
const
navigation
=
useNavigation
();
React
.
useEffect
(()
=>
{
...
...
@@ -66,6 +72,20 @@ const Login = () => {
return
true
;
}
const
loginHandler
=
()
=>
{
const
loggedInUser
=
users
.
find
(
user
=>
user
.
email
===
email
&&
user
.
password
===
password
)
if
(
loggedInUser
){
console
.
log
(
loggedInUser
);
dispatch
(
userLogin
({
name
:
loggedInUser
.
name
,
id
:
loggedInUser
.
uid
}));
navigation
.
navigate
(
'
Home
'
);
}
else
{
console
.
log
(
'
Invalid user credentials...
'
);
}
}
const
submitForm
=
()
=>
{
if
(
isValidForm
()){
...
...
@@ -129,7 +149,7 @@ const Login = () => {
<
/View
>
<
View
style
=
{
styles
.
form_input
}
>
<
TouchableOpacity
onPress
=
{
submitForm
}
style
=
{
styles
.
btn
}
>
<
TouchableOpacity
onPress
=
{
()
=>
{
navigation
.
navigate
(
"
Start
"
);}
}
style
=
{
styles
.
btn
}
>
<
Text
style
=
{
styles
.
btn_text
}
>
Sign
In
<
/Text
>
...
...
frontend/src/screen/memory/GameOverScreen.js
View file @
bd42bb29
...
...
@@ -8,10 +8,13 @@ const GameOverScreen = ({navigation}) => {
const
dispatch
=
useDispatch
();
const
passedLevel
=
useSelector
(
state
=>
state
.
memory
.
gameLevel
);
const
passedData
=
useSelector
(
state
=>
state
.
memory
.
memoryData
);
const
passedTime
=
useSelector
(
state
=>
state
.
time
.
screenTime
);
console
.
log
(
passedData
);
console
.
log
(
passedTime
);
console
.
log
(
passedLevel
);
let
totalTime
=
0
;
...
...
@@ -27,9 +30,10 @@ const GameOverScreen = ({navigation}) => {
console
.
log
(
seconds
);
const
[
data
,
setData
]
=
useState
([]);
// const [level, setLevel] = useState('');
const
[
loading
,
setIsLoading
]
=
useState
(
true
);
let
disorderLevel
;
let
disorderLevel
;
let
resultText
;
const
gameData
=
{
...
...
@@ -48,6 +52,7 @@ const GameOverScreen = ({navigation}) => {
})
.
then
(
resp
=>
resp
.
json
())
.
then
(
data
=>
{
console
.
log
(
'
level :
'
,
data
.
results
[
0
].
level
);
setData
(
data
.
results
[
0
].
level
)
setIsLoading
(
false
)
})
...
...
@@ -62,7 +67,26 @@ const GameOverScreen = ({navigation}) => {
disorderLevel
=
'
low
'
}
const
insertData
=
()
=>
{
fetch
(
'
http://192.168.8.170:5000/add
'
,
{
method
:
'
POST
'
,
headers
:
{
'
Content-Type
'
:
'
application/json
'
},
body
:
JSON
.
stringify
({
name
:
'
child 1
'
,
age
:
'
5
'
,
game_level
:
passedLevel
,
time_duration
:
seconds
,
result
:
disorderLevel
})
})
.
then
(
resp
=>
resp
.
json
())
.
catch
(
error
=>
console
.
log
(
error
))
}
if
(
!
loading
){
insertData
();
resultText
=
(
<
Text
style
=
{
styles
.
resultText
}
>
<
Text
>
Child
'
s disorder level is </Text> <Text style={styles.highlight}>{disorderLevel}</Text>
...
...
frontend/src/screen/memory/elementry/GameScreenOne.js
View file @
bd42bb29
...
...
@@ -2,6 +2,9 @@ import React, {useState, useEffect} from 'react';
import
{
View
,
Text
,
StyleSheet
,
Image
,
BackHandler
}
from
'
react-native
'
;
import
Header
from
'
../../../component/memory/Header
'
;
import
CountDown
from
'
react-native-countdown-component
'
;
import
{
useDispatch
}
from
'
react-redux
'
;
import
*
as
memoryActions
from
'
../../../store/actions/memory
'
;
import
Levels
from
'
../../../constants/Levels
'
;
const
GameScreenOne
=
({
navigation
})
=>
{
...
...
@@ -10,6 +13,12 @@ const GameScreenOne = ({navigation}) => {
// return () => backHandler.remove()
// },[]);
const
dispatch
=
useDispatch
();
useEffect
(()
=>
{
dispatch
(
memoryActions
.
setGameLevel
(
Levels
.
elementry
))
})
return
(
<
View
style
=
{
styles
.
sreen
}
>
<
Text
><
/Text
>
...
...
frontend/src/store/actions/login.js
0 → 100644
View file @
bd42bb29
export
const
USER_LOGIN
=
'
USER_LOGIN
'
;
export
const
userLogin
=
(
user
)
=>
{
return
{
type
:
USER_LOGIN
,
user
:
user
}
}
\ No newline at end of file
frontend/src/store/actions/memory.js
View file @
bd42bb29
export
const
SET_ANSWERS
=
'
SET_ANSWERS
'
;
export
const
SET_TIME
=
'
SET_TIME
'
;
export
const
CLEAR_DATA
=
'
CLEAR_DATA
'
;
export
const
SET_GAME_LEVEL
=
'
SET_GAME_LEVEL
'
;
export
const
setGameLevel
=
(
level
)
=>
{
return
{
type
:
SET_GAME_LEVEL
,
level
:
level
}
}
export
const
setAnswers
=
(
data
)
=>
{
return
{
type
:
SET_ANSWERS
,
data
:
data
}
...
...
frontend/src/store/reducers/login.js
0 → 100644
View file @
bd42bb29
import
{
USER_LOGIN
}
from
'
../actions/login
'
;
import
{
USERS
}
from
'
../../data/dummy-data
'
;
const
initialState
=
{
users
:
USERS
,
loggedInUser
:
{}
}
const
userReducer
=
(
state
=
initialState
,
action
)
=>
{
switch
(
action
.
type
)
{
case
USER_LOGIN
:
return
{
...
state
,
loggedInUser
:
action
.
user
}
default
:
return
state
;
}
return
state
;
}
export
default
userReducer
;
\ No newline at end of file
frontend/src/store/reducers/memory.js
View file @
bd42bb29
import
{
CLEAR_DATA
,
SET_ANSWERS
,
SET_TIME
}
from
"
../actions/memory
"
;
import
{
CLEAR_DATA
,
SET_ANSWERS
,
SET_
GAME_LEVEL
,
SET_
TIME
}
from
"
../actions/memory
"
;
const
initialState
=
{
gameLevel
:
null
,
memoryData
:
{},
screenTime
:
{}
}
const
memoryReducer
=
(
state
=
initialState
,
action
)
=>
{
switch
(
action
.
type
){
case
SET_GAME_LEVEL
:
const
level
=
action
.
level
;
return
{
...
state
,
gameLevel
:
level
}
case
SET_ANSWERS
:
const
addedAnswer
=
action
.
data
;
const
question
=
addedAnswer
.
question
;
...
...
@@ -31,7 +40,8 @@ const memoryReducer = (state=initialState, action) => {
return
{
...
state
,
memoryData
:
{},
screenTime
:
{}
screenTime
:
{},
gameLevel
:
null
}
default
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment