Browse Source

see gpa frontend and backend

dmr1725 3 years ago
parent
commit
bfe0935f7a

+ 9
- 3
client/App.js View File

1
 import { StatusBar } from 'expo-status-bar';
1
 import { StatusBar } from 'expo-status-bar';
2
 import React, {useState} from 'react';
2
 import React, {useState} from 'react';
3
-import { StyleSheet, Text, View } from 'react-native';
3
+import { StyleSheet, Text, View, Platform } from 'react-native';
4
 import * as Google from "expo-google-app-auth";
4
 import * as Google from "expo-google-app-auth";
5
 import {SocialIcon, socialIcon} from 'react-native-elements'
5
 import {SocialIcon, socialIcon} from 'react-native-elements'
6
 import {createDrawerNavigator} from '@react-navigation/drawer'
6
 import {createDrawerNavigator} from '@react-navigation/drawer'
15
 
15
 
16
 const Drawer = createDrawerNavigator()
16
 const Drawer = createDrawerNavigator()
17
 
17
 
18
+console.log(Platform.OS)
19
+
18
 const IOS_CLIENT_ID =
20
 const IOS_CLIENT_ID =
19
   "116415331974-tf6sehooctplmmn7j0gt831mdf1oqipl.apps.googleusercontent.com";
21
   "116415331974-tf6sehooctplmmn7j0gt831mdf1oqipl.apps.googleusercontent.com";
20
 
22
 
23
+const ANDROID_CLIENT_ID = 
24
+  "116415331974-72n6g689k4me386dod763gi31vpuh71a.apps.googleusercontent.com";
25
+  // 116415331974-72n6g689k4me386dod763gi31vpuh71a.apps.googleusercontent.com
21
 export default function App() {
26
 export default function App() {
22
   const [hasToken, setHasToken] = useState(false)
27
   const [hasToken, setHasToken] = useState(false)
23
   
28
   
25
     try {
30
     try {
26
       const result = await Google.logInAsync({
31
       const result = await Google.logInAsync({
27
         iosClientId: IOS_CLIENT_ID,
32
         iosClientId: IOS_CLIENT_ID,
33
+        androidClientId: ANDROID_CLIENT_ID,
28
         scopes: ["profile", "email"]
34
         scopes: ["profile", "email"]
29
       })
35
       })
30
 
36
 
33
 
39
 
34
         try {
40
         try {
35
           // login user in backend
41
           // login user in backend
36
-          let response = await fetch('http://8ad793de242b.ngrok.io/rest-auth/google/', {
42
+          let response = await fetch('http://356b92b5f6b5.ngrok.io/rest-auth/google/', {
37
             method: 'POST',
43
             method: 'POST',
38
             headers: {
44
             headers: {
39
               'content-type': 'application/json'
45
               'content-type': 'application/json'
54
           const token = await SecureStore.getItemAsync('token')
60
           const token = await SecureStore.getItemAsync('token')
55
 
61
 
56
           // storing our id
62
           // storing our id
57
-          let id = await fetch('http://8ad793de242b.ngrok.io/api/get_user_id', {
63
+          let id = await fetch('http://356b92b5f6b5.ngrok.io/api/get_user_id', {
58
             method: 'GET',
64
             method: 'GET',
59
             headers: {
65
             headers: {
60
               'content-type': 'application/json',
66
               'content-type': 'application/json',

+ 2
- 2
client/Screens/AddTakenCourse.js View File

51
 
51
 
52
       let response = await axios({
52
       let response = await axios({
53
         method: 'POST',
53
         method: 'POST',
54
-        url: 'http://8ad793de242b.ngrok.io/api/add_taken_course',
54
+        url: 'http://356b92b5f6b5.ngrok.io/api/add_taken_course',
55
         headers: {
55
         headers: {
56
           'content-type': 'application/json',
56
           'content-type': 'application/json',
57
           Authorization: `Token ${token}`
57
           Authorization: `Token ${token}`
85
       const token = await SecureStore.getItemAsync('token')
85
       const token = await SecureStore.getItemAsync('token')
86
       const response = await axios({
86
       const response = await axios({
87
           method: 'GET',
87
           method: 'GET',
88
-          url: `http://8ad793de242b.ngrok.io/api/find_course?code=${text}`,
88
+          url: `http://356b92b5f6b5.ngrok.io/api/find_course?code=${text}`,
89
           headers: {
89
           headers: {
90
             'content-type': 'application/json',
90
             'content-type': 'application/json',
91
             Authorization: `Token ${token}`
91
             Authorization: `Token ${token}`

+ 3
- 1
client/Screens/HomeScreen.js View File

4
 import Axios from 'axios';
4
 import Axios from 'axios';
5
 
5
 
6
 
6
 
7
+
8
+
7
 function HomeScreen({ navigation }) {
9
 function HomeScreen({ navigation }) {
8
   const credentials = async ()=>{
10
   const credentials = async ()=>{
9
     const token = await SecureStore.getItemAsync('token')
11
     const token = await SecureStore.getItemAsync('token')
11
     console.log(token, id)
13
     console.log(token, id)
12
 
14
 
13
     let response = await Axios({
15
     let response = await Axios({
14
-      url: 'http://8ad793de242b.ngrok.io/api/hello',
16
+      url: 'http://356b92b5f6b5.ngrok.io/api/hello',
15
       method: 'GET',
17
       method: 'GET',
16
       headers: {
18
       headers: {
17
           Authorization: `Token ${token}`
19
           Authorization: `Token ${token}`

+ 27
- 3
client/Screens/MyCurriculum.js View File

7
 
7
 
8
 
8
 
9
 const MyCurriculum = () =>{
9
 const MyCurriculum = () =>{
10
-    const [year, setYear] = useState(2)
10
+    const [year, setYear] = useState(1)
11
+    const [gpa, setGpa] = useState('')
11
     const [semester, setSemester] = useState(1)
12
     const [semester, setSemester] = useState(1)
12
     const [tableHead, setTableHead] = useState(['','Code', 'Title', 'Credits', 'Grade'])
13
     const [tableHead, setTableHead] = useState(['','Code', 'Title', 'Credits', 'Grade'])
13
     const [tableData, setTableData] = useState([])
14
     const [tableData, setTableData] = useState([])
14
     const [tableTitle, setTableTitle] = useState([])
15
     const [tableTitle, setTableTitle] = useState([])
15
 
16
 
17
+    const getMyGPA = async()=>{
18
+        const token = await SecureStore.getItemAsync('token')
19
+        let id = await SecureStore.getItemAsync('id')
20
+        let user_id = parseInt(id)
21
+
22
+        try {
23
+            let response = await axios('http://356b92b5f6b5.ngrok.io/api/see_gpa', {
24
+                method: 'POST',
25
+                headers: {
26
+                    Authorization: `Token ${token}`
27
+                },
28
+                data: {
29
+                    user_id: user_id
30
+                }
31
+            })
32
+            setGpa(response.data["gpa"][0])
33
+        } catch(e){
34
+            console.log(e)
35
+        }
36
+    }
37
+
16
     const getMyCurriculum = async()=>{
38
     const getMyCurriculum = async()=>{
17
         const token = await SecureStore.getItemAsync('token')
39
         const token = await SecureStore.getItemAsync('token')
18
         let id = await SecureStore.getItemAsync('id')
40
         let id = await SecureStore.getItemAsync('id')
21
         let numbers = []
43
         let numbers = []
22
 
44
 
23
         try {
45
         try {
24
-            let response = await axios(`http://8ad793de242b.ngrok.io/api/get_all_courses_by_semester?user_id=${user_id}&year=${year}&semestre=${semester}`, {
46
+            let response = await axios(`http://356b92b5f6b5.ngrok.io/api/get_all_courses_by_semester?user_id=${user_id}&year=${year}&semestre=${semester}`, {
25
                 method: 'GET',
47
                 method: 'GET',
26
                 headers: {
48
                 headers: {
27
                     'content-type': 'application/json',
49
                     'content-type': 'application/json',
51
     useEffect(()=>{
73
     useEffect(()=>{
52
         console.log('dimelo')
74
         console.log('dimelo')
53
         getMyCurriculum()
75
         getMyCurriculum()
54
-    }, [year, semester])
76
+        getMyGPA()
77
+    }, [year, semester, gpa])
55
 
78
 
56
 
79
 
57
     return (
80
     return (
58
         <View style={styles.container}>
81
         <View style={styles.container}>
82
+            <Text>Total GPA: {gpa}</Text>
59
             <Table borderStyle={{borderWidth: 2, borderColor: '#0f0f0f'}}>
83
             <Table borderStyle={{borderWidth: 2, borderColor: '#0f0f0f'}}>
60
                 <Row data={tableHead} flexArr={[0.9, 3.5, 10, 2.3, 2.3]} style={styles.head} textStyle={styles.text}/>
84
                 <Row data={tableHead} flexArr={[0.9, 3.5, 10, 2.3, 2.3]} style={styles.head} textStyle={styles.text}/>
61
                 <TableWrapper style={styles.wrapper}>
85
                 <TableWrapper style={styles.wrapper}>

+ 2
- 2
client/Screens/SettingScreen.js View File

15
         let user_id = parseInt(id)
15
         let user_id = parseInt(id)
16
 
16
 
17
        try {
17
        try {
18
-        let response = await axios(`http://8ad793de242b.ngrok.io/api/get_faculty_name?id=${user_id}`, {
18
+        let response = await axios(`http://356b92b5f6b5.ngrok.io/api/get_faculty_name?id=${user_id}`, {
19
             method: 'GET',
19
             method: 'GET',
20
             headers: {
20
             headers: {
21
                 'content-type': 'application/json',
21
                 'content-type': 'application/json',
43
         try {
43
         try {
44
             let response = await axios({
44
             let response = await axios({
45
                 method: 'PATCH',
45
                 method: 'PATCH',
46
-                url: 'http://8ad793de242b.ngrok.io/api/update_faculty',
46
+                url: 'http://356b92b5f6b5.ngrok.io/api/update_faculty',
47
                 headers: {
47
                 headers: {
48
                     Authorization: `Token ${token}`
48
                     Authorization: `Token ${token}`
49
                 },
49
                 },

BIN
server/CompanionApp/__pycache__/urls.cpython-38.pyc View File


BIN
server/CompanionApp/__pycache__/views.cpython-38.pyc View File


+ 2
- 1
server/CompanionApp/urls.py View File

18
     url(r'^api/get_user_id$', views.getUserId),
18
     url(r'^api/get_user_id$', views.getUserId),
19
     url('api/get_faculty_name', views.getFacultyUser),
19
     url('api/get_faculty_name', views.getFacultyUser),
20
     url('api/get_all_courses_user_has_taken', views.getAllCoursesUserHasTaken),
20
     url('api/get_all_courses_user_has_taken', views.getAllCoursesUserHasTaken),
21
-    url('api/get_all_courses_by_semester', views.getAllCoursesBySemester)
21
+    url('api/get_all_courses_by_semester', views.getAllCoursesBySemester),
22
+    url('api/see_gpa', views.seeGPA)
22
 ]
23
 ]
23
 
24
 

+ 13
- 2
server/CompanionApp/views.py View File

1
 import sys
1
 import sys
2
 import json
2
 import json
3
-sys.path.insert(1,'C:/Users/diego/Documents/companion_app_gh/organizar/')
3
+sys.path.insert(1,'C:/Users/diego/Documents/companion_app/organizar/')
4
 
4
 
5
 
5
 
6
 from organizar import files3
6
 from organizar import files3
48
         i = 1
48
         i = 1
49
         for file in files3:
49
         for file in files3:
50
             check = file['file'].split('.')
50
             check = file['file'].split('.')
51
-            path = "C:/Users/diego/Documents/companion_app_gh/segundo_sem" if check[0][-1] == '2' else "C:/Users/diego/Documents/companion_app_gh/primer_sem"
51
+            path = "C:/Users/diego/Documents/companion_app/segundo_sem" if check[0][-1] == '2' else "C:/Users/diego/Documents/companion_app/primer_sem"
52
             with open(path + '/' + file['file']) as f:
52
             with open(path + '/' + file['file']) as f:
53
                 data = json.load(f)
53
                 data = json.load(f)
54
                 fac_id = file['num']
54
                 fac_id = file['num']
242
             
242
             
243
         return JsonResponse({'list': courses}, status=status.HTTP_200_OK)
243
         return JsonResponse({'list': courses}, status=status.HTTP_200_OK)
244
 
244
 
245
+@api_view(['POST',])
246
+def seeGPA(request):
247
+    if request.method == 'POST':
248
+        user_id = int(request.data['user_id'])
249
+        cursor = connection.cursor()
250
+        cursor.execute(f'SELECT gpa from "CompanionApp_user" where id={user_id}')
251
+        GPA = cursor.fetchone()
252
+        return JsonResponse({'gpa': GPA}, status = status.HTTP_200_OK)
253
+
254
+
255
+
245
 
256
 
246
 
257
 
247
 @api_view(['GET', 'POST'])
258
 @api_view(['GET', 'POST'])