Browse Source

embeleco en git update

dmr1725 3 years ago
parent
commit
6a5725c339
100 changed files with 976 additions and 25189 deletions
  1. 0
    1
      Humanidades.json
  2. 0
    1
      Planificacion.json
  3. 45
    22
      client/App.js
  4. 107
    0
      client/Screens/AddTakenCourse.js
  5. 0
    82
      client/Screens/AddTakenCourses.js
  6. 17
    2
      client/Screens/HomeScreen.js
  7. 0
    53
      client/Screens/ProfileScreen.js
  8. 98
    67
      client/Screens/SettingScreen.js
  9. 8
    9
      client/app.json
  10. BIN
      client/assets/adaptive-icon.png
  11. BIN
      client/assets/icon.png
  12. BIN
      client/assets/splash.png
  13. 0
    3
      client/debug.log
  14. 193
    169
      client/package-lock.json
  15. 2
    0
      client/package.json
  16. 0
    24760
      natu.html
  17. BIN
      organizar/__pycache__/organizar.cpython-38.pyc
  18. 55
    0
      organizar/organizar.py
  19. 1
    0
      primer_sem/Admi.json
  20. 1
    0
      primer_sem/Admi_Grad.json
  21. 1
    0
      primer_sem/Arqui.json
  22. 1
    0
      primer_sem/Arqui_Grad.json
  23. 1
    0
      primer_sem/Asuntos_Aca.json
  24. 1
    0
      primer_sem/Ciencias_Militares.json
  25. 1
    0
      primer_sem/Ciencias_Naturales.json
  26. 1
    0
      primer_sem/Ciencias_Naturales_Grad.json
  27. 1
    0
      primer_sem/Ciencias_Sociales.json
  28. 1
    0
      primer_sem/Ciencias_Sociales_Grad.json
  29. 1
    0
      primer_sem/Comunicaciones.json
  30. 1
    0
      primer_sem/Comunicaciones_Grad.json
  31. 1
    0
      primer_sem/Educacion.json
  32. 1
    0
      primer_sem/Educacion_Continua.json
  33. 1
    0
      primer_sem/Educacion_Grad.json
  34. 1
    0
      primer_sem/Escuela_Derecho.json
  35. 1
    0
      primer_sem/Escuela_Grad_Ciencia_Tech_Info.json
  36. 1
    0
      primer_sem/Estudios_Generales.json
  37. 1
    0
      primer_sem/Humanidades.json
  38. 1
    0
      primer_sem/Humanidades_Grad.json
  39. 1
    0
      primer_sem/Planificacion.json
  40. 91
    0
      primer_sem/primer_parse.py
  41. 1
    0
      segundo_sem/Admi2.json
  42. 1
    0
      segundo_sem/Admi_Grad2.json
  43. 1
    0
      segundo_sem/Arqui2.json
  44. 1
    0
      segundo_sem/Arqui_Grad2.json
  45. 1
    0
      segundo_sem/Asuntos_Aca2.json
  46. 1
    0
      segundo_sem/Ciencias_Militares2.json
  47. 1
    0
      segundo_sem/Ciencias_Naturales2.json
  48. 1
    0
      segundo_sem/Ciencias_Naturales_Grad2.json
  49. 1
    0
      segundo_sem/Ciencias_Sociales2.json
  50. 1
    0
      segundo_sem/Ciencias_Sociales_Grad2.json
  51. 1
    0
      segundo_sem/Comunicaciones2.json
  52. 1
    0
      segundo_sem/Comunicaciones_Grad2.json
  53. 1
    0
      segundo_sem/Educacion2.json
  54. 1
    0
      segundo_sem/Educacion_Continua2.json
  55. 1
    0
      segundo_sem/Educacion_Grad2.json
  56. 1
    0
      segundo_sem/Escuela_Derecho2.json
  57. 1
    0
      segundo_sem/Escuela_Grad_Ciencia_Tech_Info2.json
  58. 1
    0
      segundo_sem/Estudios_Generales2.json
  59. 1
    0
      segundo_sem/Humanidades2.json
  60. 1
    0
      segundo_sem/Humanidades_Grad2.json
  61. 1
    0
      segundo_sem/Planificacion2.json
  62. 101
    0
      segundo_sem/second_parser.py
  63. BIN
      server/CompanionApp/__pycache__/__init__.cpython-38.pyc
  64. BIN
      server/CompanionApp/__pycache__/admin.cpython-38.pyc
  65. BIN
      server/CompanionApp/__pycache__/models.cpython-38.pyc
  66. BIN
      server/CompanionApp/__pycache__/serializers.cpython-38.pyc
  67. BIN
      server/CompanionApp/__pycache__/urls.cpython-38.pyc
  68. BIN
      server/CompanionApp/__pycache__/views.cpython-38.pyc
  69. 5
    0
      server/CompanionApp/admin.py
  70. 59
    1
      server/CompanionApp/migrations/0001_initial.py
  71. 24
    0
      server/CompanionApp/migrations/0002_auto_20201103_2016.py
  72. 0
    19
      server/CompanionApp/migrations/0002_curso_code.py
  73. 16
    0
      server/CompanionApp/migrations/0003_delete_matricula.py
  74. 32
    0
      server/CompanionApp/migrations/0004_matricula.py
  75. 23
    0
      server/CompanionApp/migrations/0005_auto_20201114_1747.py
  76. 17
    0
      server/CompanionApp/migrations/0006_remove_user_credits_score.py
  77. 23
    0
      server/CompanionApp/migrations/0007_auto_20201114_1934.py
  78. 18
    0
      server/CompanionApp/migrations/0008_auto_20201114_1935.py
  79. BIN
      server/CompanionApp/migrations/__pycache__/0001_initial.cpython-38.pyc
  80. BIN
      server/CompanionApp/migrations/__pycache__/0002_auto_20201103_2016.cpython-38.pyc
  81. BIN
      server/CompanionApp/migrations/__pycache__/0002_curso_code.cpython-38.pyc
  82. BIN
      server/CompanionApp/migrations/__pycache__/0003_auto_20201114_1146.cpython-38.pyc
  83. BIN
      server/CompanionApp/migrations/__pycache__/0003_delete_matricula.cpython-38.pyc
  84. BIN
      server/CompanionApp/migrations/__pycache__/0004_auto_20201114_1147.cpython-38.pyc
  85. BIN
      server/CompanionApp/migrations/__pycache__/0004_matricula.cpython-38.pyc
  86. BIN
      server/CompanionApp/migrations/__pycache__/0005_auto_20201114_1148.cpython-38.pyc
  87. BIN
      server/CompanionApp/migrations/__pycache__/0005_auto_20201114_1747.cpython-38.pyc
  88. BIN
      server/CompanionApp/migrations/__pycache__/0006_auto_20201114_1149.cpython-38.pyc
  89. BIN
      server/CompanionApp/migrations/__pycache__/0006_remove_user_credits_score.cpython-38.pyc
  90. BIN
      server/CompanionApp/migrations/__pycache__/0007_auto_20201114_1934.cpython-38.pyc
  91. BIN
      server/CompanionApp/migrations/__pycache__/0007_matricula_salones.cpython-38.pyc
  92. BIN
      server/CompanionApp/migrations/__pycache__/0008_auto_20201114_1935.cpython-38.pyc
  93. BIN
      server/CompanionApp/migrations/__pycache__/0008_remove_matricula_salones.cpython-38.pyc
  94. BIN
      server/CompanionApp/migrations/__pycache__/0009_prueba.cpython-38.pyc
  95. BIN
      server/CompanionApp/migrations/__pycache__/0010_delete_prueba.cpython-38.pyc
  96. BIN
      server/CompanionApp/migrations/__pycache__/0011_delete_matricula.cpython-38.pyc
  97. BIN
      server/CompanionApp/migrations/__pycache__/0012_matricula.cpython-38.pyc
  98. BIN
      server/CompanionApp/migrations/__pycache__/0013_matricula_user_id.cpython-38.pyc
  99. BIN
      server/CompanionApp/migrations/__pycache__/0014_matricula_course_id.cpython-38.pyc
  100. 0
    0
      server/CompanionApp/migrations/__pycache__/0015_auto_20201114_1208.cpython-38.pyc

+ 0
- 1
Humanidades.json
File diff suppressed because it is too large
View File


+ 0
- 1
Planificacion.json View File

@@ -1 +0,0 @@
1
-[{"Curso": "PLAN5005", "Seccion": "3U1", "Profesor": "YOEL VELAZQUEZ ", "Nombre": "ECON ESTA Y MATE PLANIF", "Dias": ["S"], "Horario": ["09:00AM-01:00PM"], "Info_Extra": ""}, {"Curso": "PLAN6006", "Seccion": "0U1", "Profesor": "IRIZARRY, R. ", "Nombre": "INTERNADO DE PLANIFICACIO", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6068", "Seccion": "013", "Profesor": "LUGO, J. ", "Nombre": "PRESERV PATRIMON Y PLANIF", "Dias": ["J"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6075", "Seccion": "2U1", "Profesor": "IRIZARRY, R. ", "Nombre": "PROYECTO DE INVESTIG II", "Dias": ["L"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6076", "Seccion": "2U1", "Profesor": "LAMBA DEEPAK ", "Nombre": "HIST & TEORIA PLAN", "Dias": ["L"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6089", "Seccion": "2U1", "Profesor": "ENCARNACION, A.", "Nombre": "PLANIF URB Y TERRITORIAL", "Dias": ["W"], "Horario": ["07:00PM-09:50PM"], "Info_Extra": ""}, {"Curso": "PLAN6116", "Seccion": "2U1", "Profesor": "GONZALEZ VERON ", "Nombre": "ORDEN JURIDICO PLAN", "Dias": ["J"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6117", "Seccion": "2U1", "Profesor": "CASTRO, A . ", "Nombre": "APLIC COMPUTADOR EN PLAN", "Dias": ["W"], "Horario": ["05:30PM-09:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6135", "Seccion": "2U1", "Profesor": "ENCARNACION, A,", "Nombre": "SOCIEDAD AMBIENTE Y PLAN", "Dias": ["L"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6513", "Seccion": "2U1", "Profesor": "IRIZARRY, R. ", "Nombre": "SEM PROP PROYECTO PLANIFI", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6602", "Seccion": "2U1", "Profesor": "CASTRO, A. ", "Nombre": "SIG PARA PLANIFICACION", "Dias": ["MJ"], "Horario": ["05:30PM-07:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6603", "Seccion": "2U1", "Profesor": "NAVARRO, C. ", "Nombre": "ELABORACION DE PLANES", "Dias": ["L"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6604", "Seccion": "2U1", "Profesor": "SANTIAGO, R. ", "Nombre": "TEOR COMUNIDAD Y DES ECON", "Dias": ["J"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6614", "Seccion": "201", "Profesor": "BARRETO, M. ", "Nombre": "PROYECTO DE PLANIFICACION", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6614", "Seccion": "202", "Profesor": "NAVARRO, C. ", "Nombre": "PROYECTO DE PLANIFICACION", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6896", "Seccion": "201", "Profesor": "BARRETO, M. ", "Nombre": "CONTINUACION PROY PLAN", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6896", "Seccion": "202", "Profesor": "PENA, P. ", "Nombre": "CONTINUACION PROY PLAN", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6896", "Seccion": "203", "Profesor": "NAVARRO, C. ", "Nombre": "CONTINUACION PROY PLAN", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}, {"Curso": "PLAN6995", "Seccion": "011", "Profesor": "MIRANDA, C. ", "Nombre": "SEM: DESARROLLO PROPUESTA", "Dias": ["LMW", "S"], "Horario": ["05:30PM-08:20PM", "09:00AM-11:00AM"], "Info_Extra": ""}, {"Curso": "PLAN6995", "Seccion": "013", "Profesor": "BARRETO MARITZA", "Nombre": "RIESGOS Y PLANIFICACIONN", "Dias": ["W"], "Horario": ["05:30PM-08:20PM"], "Info_Extra": ""}, {"Curso": "PLAN6996", "Seccion": "2U1", "Profesor": "NAVARRO, C. ", "Nombre": "PRACTICA DE PLANIFICACION", "Dias": ["D"], "Horario": ["TBA"], "Info_Extra": ""}]

+ 45
- 22
client/App.js View File

@@ -10,7 +10,7 @@ import * as SecureStore from 'expo-secure-store';
10 10
 import HomeScreen from './Screens/HomeScreen'
11 11
 import NotificationsScreen from './Screens/NotificationScreen'
12 12
 import SettingScreen from './Screens/SettingScreen'
13
-import AddTakenCourses from './Screens/AddTakenCourses'
13
+import AddTakenCourse from './Screens/AddTakenCourse'
14 14
 
15 15
 const Drawer = createDrawerNavigator()
16 16
 
@@ -30,26 +30,49 @@ export default function App() {
30 30
       if (result.type == "success"){
31 31
         console.log(result.accessToken)
32 32
 
33
-        // try {
34
-        //   let response = await fetch('http://619835f05c38.ngrok.io/rest-auth/google/', {
35
-        //     method: 'POST',
36
-        //     headers: {
37
-        //       'content-type': 'application/json'
38
-        //     }, 
39
-        //     body: JSON.stringify({
40
-        //       access_token: `${result.accessToken}`
41
-        //     })
42
-        //   })
43
-        //   let responseJson = await response.json()
44
-        //   if (responseJson){
45
-        //     if (responseJson.key){
46
-        //       await SecureStore.setItemAsync('token', responseJson.key)
47
-        //     }
48
-        //   }
33
+        try {
34
+          // login user in backend
35
+          let response = await fetch('http://ef32e7a10841.ngrok.io/rest-auth/google/', {
36
+            method: 'POST',
37
+            headers: {
38
+              'content-type': 'application/json'
39
+            }, 
40
+            body: JSON.stringify({
41
+              access_token: `${result.accessToken}`
42
+            })
43
+          })
44
+
45
+          // storing our token
46
+          let responseJson = await response.json()
47
+          if (responseJson){
48
+            if (responseJson.key){
49
+              await SecureStore.setItemAsync('token', responseJson.key)
50
+            }
51
+          }
52
+
53
+          const token = await SecureStore.getItemAsync('token')
54
+
55
+          // storing our id
56
+          let id = await fetch('http://ef32e7a10841.ngrok.io/api/get_user_id', {
57
+            method: 'GET',
58
+            headers: {
59
+              'content-type': 'application/json',
60
+              Authorization: `Token ${token}`
61
+            }
62
+          })
63
+          let idJson = await id.json()
64
+          if (idJson){
65
+            if(idJson.user_id){
66
+              idJson = idJson.user_id
67
+              let id = idJson.toString()
68
+              await SecureStore.setItemAsync('id', id)
69
+            }
70
+          }
71
+
72
+        } catch(error){
73
+          console.log(error)
74
+        }
49 75
 
50
-        // } catch(error){
51
-        //   console.log(error)
52
-        // }
53 76
         setHasToken(true) // update states and redirect
54 77
       }
55 78
 
@@ -67,14 +90,14 @@ export default function App() {
67 90
       </View>
68 91
     );
69 92
   }
70
-  console.log(hasToken)
93
+
71 94
   return (
72 95
     <NavigationContainer>
73 96
         <Drawer.Navigator initialRouteName="Home">
74 97
           <Drawer.Screen name="Home" component={HomeScreen}/>
75 98
           <Drawer.Screen name="Notifications" component={NotificationsScreen} />
76 99
           <Drawer.Screen name="Settings" component={SettingScreen} />
77
-          <Drawer.Screen name="Add Taken Courses" component={AddTakenCourses} />
100
+          <Drawer.Screen name="Add Taken Courses" component={AddTakenCourse} />
78 101
         </Drawer.Navigator>
79 102
     </NavigationContainer>
80 103
   )

+ 107
- 0
client/Screens/AddTakenCourse.js View File

@@ -0,0 +1,107 @@
1
+import axios from "axios";
2
+import React, { useState } from "react";
3
+import { FlatList, SafeAreaView, StatusBar, StyleSheet, Text, TouchableOpacity, TextInput, View } from "react-native";
4
+import * as SecureStore from 'expo-secure-store';
5
+
6
+
7
+const Item = ({ item, onPress, style }) => (
8
+  <TouchableOpacity onPress={onPress} style={[styles.item, style]}>
9
+    <Text style={styles.title}>{item.code}</Text>
10
+  </TouchableOpacity>
11
+);
12
+
13
+// separates results, taken from https://stackoverflow.com/questions/60350768/how-to-make-search-bar-with-dropdown-list-in-react-native
14
+const renderSeparator = () => {
15
+    return (
16
+      <View
17
+        style={{
18
+          height: 1,
19
+          width: '100%',
20
+          backgroundColor: '#CED0CE',
21
+        }}
22
+      />
23
+    );
24
+};
25
+
26
+
27
+const AddTakenCourse = () => {
28
+  const [text, setText] = useState('')
29
+  const [selectedId, setSelectedId] = useState(null);
30
+  const [data, setData] = useState([])
31
+
32
+
33
+  const searchCourses = async(text)=>{
34
+      let courses = []
35
+      setText(text)
36
+      const token = await SecureStore.getItemAsync('token')
37
+      const response = await axios({
38
+          method: 'GET',
39
+          url: `http://ef32e7a10841.ngrok.io/api/find_course?code=${text}`,
40
+          headers: {
41
+            'content-type': 'application/json',
42
+            Authorization: `Token ${token}`
43
+          }
44
+
45
+      })
46
+      response.data.list.map((course)=>{
47
+        let oneCourse = {'id': course.id, 'code': course.code}
48
+        courses.push(oneCourse)
49
+      })
50
+
51
+      setData(courses)
52
+  }
53
+
54
+  const renderItem = ({ item }) => {
55
+    const backgroundColor = item.id === selectedId ? "#e60505" : "#fafbfc";
56
+    return (
57
+      <Item
58
+        item={item}
59
+        onPress={() => setSelectedId(item.id)}
60
+        style={{ backgroundColor }}
61
+      />
62
+    );
63
+  };
64
+
65
+
66
+  console.log(selectedId)
67
+  return (
68
+    <View style={{padding: 10}}>
69
+       <TextInput
70
+        style={styles.searchBar}
71
+        placeholder="Search for a course that you've taken"
72
+        onChangeText={text=>searchCourses(text)}
73
+        // onChangeText={text=>setText(text)}
74
+      />
75
+      <FlatList
76
+        data={data}
77
+        renderItem={renderItem}
78
+        keyExtractor={(item) => item.id.toString()}
79
+        extraData={selectedId}
80
+        ItemSeparatorComponent={renderSeparator}
81
+      />
82
+    </View>
83
+  );
84
+};
85
+
86
+
87
+const styles = StyleSheet.create({
88
+  container: {
89
+    flex: 1,
90
+    marginTop: StatusBar.currentHeight || 0,
91
+  },
92
+  item: {
93
+    padding: 10,
94
+    marginVertical: 8,
95
+    marginHorizontal: 16,
96
+  },
97
+  title: {
98
+    fontSize: 15,
99
+  },
100
+  searchBar: {
101
+    height: 40, 
102
+    borderColor: '#000', 
103
+    borderWidth: 1 
104
+  }
105
+});
106
+
107
+export default AddTakenCourse;

+ 0
- 82
client/Screens/AddTakenCourses.js View File

@@ -1,82 +0,0 @@
1
-import React, { Component } from "react";
2
-import { Text, View, StyleSheet, Button, ScrollView, Picker, TextInput } from "react-native";
3
-
4
-
5
-export default class SettingScreen extends Component {
6
-    state = {
7
-        faculty: "naturales"
8
-
9
-    }
10
-    render() {
11
-
12
-        return(
13
-
14
-
15
-            <View style={styles.container}>
16
-                <View style={{alignItems: "center", backgroundColor: 'red', marginTop: 30, marginBottom: 150}}>
17
-                    <Text style= {{fontSize: 20, fontWeight: "bold"}}> Add Taken </Text>
18
-                    <Text style= {{fontSize: 20, fontWeight: "bold"}}>Course{/*{this.props.navigation.getParam("username")} */}</Text>
19
-
20
-                </View>
21
-
22
-                <View style={{alignItems: "flex-start", backgroundColor: 'white', flex:0}}>
23
-                <Button
24
-                    title="<Back"
25
-                    onPress= {() => this.props.navigation.navigate("Profile")}
26
-                    /> 
27
-                </View>
28
-
29
-                <View style={{alignItems: "flex-start",backgroundColor: 'white', flex:0}}>
30
-                    <Text style={{ fontSize: 20}}> Course: </Text>
31
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 100}}>
32
-                    </TextInput>
33
-                    
34
-                    <Text style={{ fontSize: 20}}> Section: </Text>
35
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 100}}>
36
-                    </TextInput>
37
-
38
-                    <Text style={{ fontSize: 20}}> Semester#: </Text>
39
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 100}}>
40
-                    </TextInput>
41
-
42
-                    <Text style={{ fontSize: 20}}> Professor: </Text>
43
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 250}}>
44
-                    </TextInput>
45
-                </View>
46
-
47
-                <View style={{alignItems: "flex-end", backgroundColor: 'white', marginTop: 50, marginBottom: 250}}> 
48
-                <Text style={{ fontSize: 20, fontWeight: "bold" , height:30 }}> Grade: </Text>
49
-                    <Picker
50
-                    selectedValue={this.state.faculty}
51
-                    style={{ height: 0, width: 40}}
52
-                    onValueChange={(itemValue, itemIndex) =>
53
-                    this.setState({ faculty: itemValue })}>
54
-                        <Picker.Item label="A" value="001" />
55
-                        <Picker.Item label="B" value="002" />
56
-                        <Picker.Item label="C" value="003" />
57
-                        <Picker.Item label="D" value="004" />
58
-                        <Picker.Item label="F" value="005" />
59
-                        <Picker.Item label="PS" value="006" />
60
-                        <Picker.Item label="NP" value="007" />
61
-                    </Picker>
62
-                </View>
63
-                    <Button
64
-                        title="Submit Taken Course"
65
-                        onPress={null}
66
-                    /> 
67
-            </View>
68
-            
69
-        );
70
-    }
71
-}
72
-
73
-
74
-const styles = StyleSheet.create({
75
-  container: {
76
-    flex: 1,
77
-    justifyContent: "center"
78
-  }
79
-  
80
-
81
-});
82
-

+ 17
- 2
client/Screens/HomeScreen.js View File

@@ -1,13 +1,28 @@
1 1
 import * as React from 'react';
2 2
 import { Button, View } from 'react-native';
3 3
 import * as SecureStore from 'expo-secure-store';
4
+import Axios from 'axios';
4 5
 
5 6
 
6 7
 function HomeScreen({ navigation }) {
7 8
   const credentials = async ()=>{
8
-    const response = await SecureStore.getItemAsync('token')
9
-    console.log(response)
9
+    const token = await SecureStore.getItemAsync('token')
10
+    const id = await SecureStore.getItemAsync('id')
11
+    console.log(token, id)
12
+
13
+    let response = await Axios({
14
+      url: 'http://ef32e7a10841.ngrok.io/api/hello',
15
+      method: 'GET',
16
+      headers: {
17
+          Authorization: `Token ${token}`
18
+      }
19
+    })
20
+
21
+    console.log(response.data.msg)
10 22
   }
23
+
24
+  
25
+  
11 26
     return (
12 27
       <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
13 28
         <Button

+ 0
- 53
client/Screens/ProfileScreen.js View File

@@ -1,53 +0,0 @@
1
-import React, { Component } from "react";
2
-import { Text, View, StyleSheet, Button } from "react-native";
3
-
4
-export default class ProfileScreen extends Component {
5
-  prueba = async()=>{
6
-    let response = await fetch('http://05cb04aa6bc5.ngrok.io/api/hello',{
7
-      method: 'GET',
8
-      headers: {
9
-        Authorization: 'Token c33cc0e20cdf09a12d1e3e3de2515f3e9f2fd008'
10
-      }
11
-    })
12
-    let responseJson = await response.json()
13
-    console.log(responseJson)
14
-  }
15
-  render() {
16
-    return (
17
-      <View style={styles.container}>
18
-        <Text> Profile Screen </Text>
19
-        <Text style={{ fontSize: 20, fontWeight: "bold" }}>
20
-          Welcome, {this.props.navigation.getParam("username")}
21
-        </Text>
22
-        <Button
23
-          title="Sign out"
24
-          onPress={() => this.props.navigation.navigate("Login")}
25
-        />
26
-        <Button
27
-          title="Test"
28
-          onPress={this.prueba}
29
-        />
30
-
31
-        <Button
32
-          title="Add Taken Course"
33
-          onPress= {() => this.props.navigation.navigate("AddTakenCourse")}
34
-        />
35
-
36
-        <Button
37
-          title="Settings"
38
-          onPress= {() => this.props.navigation.navigate("Settings")}
39
-        />
40
-        
41
-      </View>
42
-    );
43
-  }
44
-}
45
-
46
-const styles = StyleSheet.create({
47
-  container: {
48
-    flex: 1,
49
-    backgroundColor: "#fff",
50
-    alignItems: "center",
51
-    justifyContent: "center"
52
-  }
53
-});

+ 98
- 67
client/Screens/SettingScreen.js View File

@@ -1,78 +1,109 @@
1
-import React, { Component } from "react";
2
-import { Text, View, StyleSheet, Button, ScrollView, Picker, TextInput } from "react-native";
1
+import React, { useState, useEffect } from "react";
2
+import { Text, View, StyleSheet, Button, ScrollView, TextInput } from "react-native";
3
+import {Picker} from '@react-native-community/picker'
4
+import * as SecureStore from 'expo-secure-store';
5
+import axios from "axios";
3 6
 
4 7
 
5
-export default class SettingScreen extends Component {
6
-    state = {
7
-        faculty: "naturales"
8
+export default function SettingScreen() {
9
+    const [currentFaculty, setCurrentFaculty] = useState('') // faculty of backend
10
+    const [faculty, setFaculty] = useState('') // faculty of dropdown
8 11
 
9
-    }
10
-    render() {
11
-
12
-        return(
13
-
14
-
15
-            <View style={styles.container}>
16
-                <View style={{alignItems: "center", backgroundColor: 'red', marginTop: 30, marginBottom: 150}}>
17
-                    <Text style= {{fontSize: 20, fontWeight: "bold"}}> Profile Settings </Text>
18
-            
19
-                </View>
20
-
21
-                <View style={{alignItems: "flex-start", backgroundColor: 'Silver', flex:0}}>
22
-                <Button
23
-                    title="<Back"
24
-                    onPress= {() => this.props.navigation.navigate("Profile")}
25
-                    /> 
26
-                </View>
12
+    const getFaculty = async ()=>{
13
+        const token = await SecureStore.getItemAsync('token')
14
+        let id = await SecureStore.getItemAsync('id')
15
+        let user_id = parseInt(id)
27 16
 
28
-                <View style={{alignItems: "center",backgroundColor: 'white', flex:0}}>
29
-                    <Text style={{ fontSize: 20}}> Name: </Text>
30
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 250}}>
31
-                    </TextInput>
32
-                    <Button
33
-                        title="Update Name"
34
-                        onPress={this.prueba}
35
-                        />
36
-                    <Text style={{ fontSize: 20}}> Email: </Text>
37
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 250}}>
38
-                    </TextInput>
39
-                    <Button
40
-                        title="Update Email"
41
-                        onPress={this.prueba}
42
-                    /> 
17
+       try {
18
+        let response = await axios(`http://ef32e7a10841.ngrok.io/api/get_faculty_name?id=${user_id}`, {
19
+            method: 'GET',
20
+            headers: {
21
+                'content-type': 'application/json',
22
+                Authorization: `Token ${token}`
23
+            },
24
+        })
25
+        setCurrentFaculty(response.data.FacultyName[0])
26
+       } catch(error){
27
+           console.log(error)
28
+       }
29
+    }
43 30
 
44
-                    <Text style={{ fontSize: 20}}> Student ID: </Text>
45
-                    <TextInput style= {{borderColor: "black", borderWidth: 2, width: 250}}>
46
-                    </TextInput>
47
-                    <Button
48
-                        title="Update Student ID"
49
-                        onPress={this.prueba}
50
-                    /> 
51
-                </View>
31
+    useEffect(()=>{
32
+        console.log('dimelooo')
33
+        getFaculty()
34
+    },[currentFaculty])
52 35
 
53
-                <View style={{alignItems: "center", backgroundColor: 'red', marginTop: 50, marginBottom: 300}}> 
36
+    const updateFaculty = async()=>{
37
+        const token = await SecureStore.getItemAsync('token')
38
+        let id = await SecureStore.getItemAsync('id')
39
+        let user_id = id
40
+        let fac_id = faculty
41
+        // console.log(typeof(fac_id))
42
+        
43
+        try {
44
+            let response = await axios({
45
+                method: 'PATCH',
46
+                url: 'http://ef32e7a10841.ngrok.io/api/update_faculty',
47
+                headers: {
48
+                    Authorization: `Token ${token}`
49
+                },
50
+                data: {
51
+                    id: user_id,
52
+                    fac_id_id: fac_id
53
+                }
54
+            })
55
+            console.log(response.data.list)
56
+           } catch(error){
57
+               console.log(error)
58
+        }
59
+        setCurrentFaculty(faculty)
60
+    }
61
+    console.log(faculty)
62
+    return(
63
+        <View style={styles.container}>
64
+            {/* <DisplayFaculty/> */}
65
+            <View style={{textAlignVertical: 'top'}}>
66
+                <Text style={{ fontSize: 12, fontWeight: "bold" , height:30 }}>
67
+                    You currently belong to the faculty: {currentFaculty}
68
+                </Text>
69
+            </View>
70
+            <View style={{alignItems: "center", backgroundColor: 'red', marginTop: 50, marginBottom: 300}}> 
54 71
                 <Text style={{ fontSize: 20, fontWeight: "bold" , height:30 }}> Faculty </Text>
55
-
56
-                    <Picker
57
-                        selectedValue={this.state.faculty}
58
-                        style={{ height: 0, width: 1000}}
59
-                        onValueChange={(itemValue, itemIndex) =>
60
-                        this.setState({ faculty: itemValue })
61
-                        }>
62
-                        
63
-                        <Picker.Item label="Administración de Empresas" value="001" />
64
-                        <Picker.Item label="Arquitectura" value="002" />
65
-                        <Picker.Item label="Ciencias Naturales" value="003" />
66
-                        <Picker.Item label="Ciencias Sociales" value="004" />
67
-                        <Picker.Item label="Educación" value="005" />
68
-                        <Picker.Item label="Bellas Artes" value="006" />
69
-                        <Picker.Item label="Communicaciones" value="007" />
70
-                    </Picker>
71
-                </View>
72
+                <Picker
73
+                    selectedValue={faculty}
74
+                    style={{ height: 0, width: 1000}}
75
+                    onValueChange={(itemValue, itemIndex) => setFaculty(itemValue) }>
76
+                    <Picker.Item label="Administración de Empresas" value="1" />
77
+                    <Picker.Item label="Administración de Empresas Graduado" value="2" />
78
+                    <Picker.Item label="Arquitectura" value="3" />
79
+                    <Picker.Item label="Arquitectura Graduado" value="4" />
80
+                    <Picker.Item label="Asuntos Académicos" value="5" />
81
+                    <Picker.Item label="Ciencias Militares" value="6" />
82
+                    <Picker.Item label="Ciencias Naturales" value="7" />
83
+                    <Picker.Item label="Ciencias Naturales Graduado" value="8" />
84
+                    <Picker.Item label="Ciencias Sociales" value="9" />
85
+                    <Picker.Item label="Ciencias Sociales Graduado" value="10" />
86
+                    <Picker.Item label="Escuela de Comunicación" value="11" />
87
+                    <Picker.Item label="Escuela de Comunicación Graduado" value="12" />
88
+                    <Picker.Item label="Educación" value="13" />
89
+                    <Picker.Item label="Educación Continua (BEOF)" value="14" />
90
+                    <Picker.Item label="Educación Graduada" value="15" />
91
+                    <Picker.Item label="Escuela de Derecho" value="16" />
92
+                    <Picker.Item label="Escuela Graduada de Ciencias y Tecnologías de la Información" value="17" />
93
+                    <Picker.Item label="Estudios Generales" value="18" />
94
+                    <Picker.Item label="Humanidades" value="19" />
95
+                    <Picker.Item label="Humanidades Graduado" value="20" />
96
+                    <Picker.Item label="Planificación" value="21" />
97
+                </Picker>
98
+            </View>
99
+            <Button
100
+                    onPress={updateFaculty}
101
+                    title="Change Faculty"
102
+            />
72 103
         </View>
73
-            
74
-        );
75
-    }
104
+        
105
+    );
106
+    
76 107
 }
77 108
 
78 109
 

+ 8
- 9
client/app.json View File

@@ -1,7 +1,7 @@
1 1
 {
2 2
   "expo": {
3
-    "name": "native_google",
4
-    "slug": "native_google",
3
+    "name": "navigationTutorial",
4
+    "slug": "navigationTutorial",
5 5
     "version": "1.0.0",
6 6
     "orientation": "portrait",
7 7
     "icon": "./assets/icon.png",
@@ -17,14 +17,13 @@
17 17
       "**/*"
18 18
     ],
19 19
     "ios": {
20
-      "supportsTablet": true,
21
-      "bundleIdentifier": "com.webiosandroid.all",
22
-      "config":{
23
-        "googleSignIn":{
24
-          "reservedClientId": "com.googleusercontent.apps.116415331974-tf6sehooctplmmn7j0gt831mdf1oqipl"
25
-        }
20
+      "supportsTablet": true
21
+    },
22
+    "android": {
23
+      "adaptiveIcon": {
24
+        "foregroundImage": "./assets/adaptive-icon.png",
25
+        "backgroundColor": "#FFFFFF"
26 26
       }
27
-      
28 27
     },
29 28
     "web": {
30 29
       "favicon": "./assets/favicon.png"

BIN
client/assets/adaptive-icon.png View File


BIN
client/assets/icon.png View File


BIN
client/assets/splash.png View File


+ 0
- 3
client/debug.log View File

@@ -1,3 +0,0 @@
1
-[1026/183028.266:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
2
-[1027/212234.749:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
3
-[1111/110331.802:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)

+ 193
- 169
client/package-lock.json View File

@@ -11,9 +11,9 @@
11 11
       }
12 12
     },
13 13
     "@babel/compat-data": {
14
-      "version": "7.12.1",
15
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.1.tgz",
16
-      "integrity": "sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ=="
14
+      "version": "7.12.5",
15
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz",
16
+      "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg=="
17 17
     },
18 18
     "@babel/core": {
19 19
       "version": "7.9.6",
@@ -51,11 +51,11 @@
51 51
       }
52 52
     },
53 53
     "@babel/generator": {
54
-      "version": "7.12.1",
55
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz",
56
-      "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==",
54
+      "version": "7.12.5",
55
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
56
+      "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
57 57
       "requires": {
58
-        "@babel/types": "^7.12.1",
58
+        "@babel/types": "^7.12.5",
59 59
         "jsesc": "^2.5.1",
60 60
         "source-map": "^0.5.0"
61 61
       }
@@ -97,13 +97,13 @@
97 97
       }
98 98
     },
99 99
     "@babel/helper-compilation-targets": {
100
-      "version": "7.12.1",
101
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz",
102
-      "integrity": "sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g==",
100
+      "version": "7.12.5",
101
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
102
+      "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==",
103 103
       "requires": {
104
-        "@babel/compat-data": "^7.12.1",
104
+        "@babel/compat-data": "^7.12.5",
105 105
         "@babel/helper-validator-option": "^7.12.1",
106
-        "browserslist": "^4.12.0",
106
+        "browserslist": "^4.14.5",
107 107
         "semver": "^5.5.0"
108 108
       }
109 109
     },
@@ -182,11 +182,11 @@
182 182
       }
183 183
     },
184 184
     "@babel/helper-module-imports": {
185
-      "version": "7.12.1",
186
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz",
187
-      "integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==",
185
+      "version": "7.12.5",
186
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
187
+      "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
188 188
       "requires": {
189
-        "@babel/types": "^7.12.1"
189
+        "@babel/types": "^7.12.5"
190 190
       }
191 191
     },
192 192
     "@babel/helper-module-transforms": {
@@ -237,14 +237,14 @@
237 237
       }
238 238
     },
239 239
     "@babel/helper-replace-supers": {
240
-      "version": "7.12.1",
241
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz",
242
-      "integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==",
240
+      "version": "7.12.5",
241
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz",
242
+      "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==",
243 243
       "requires": {
244 244
         "@babel/helper-member-expression-to-functions": "^7.12.1",
245 245
         "@babel/helper-optimise-call-expression": "^7.10.4",
246
-        "@babel/traverse": "^7.12.1",
247
-        "@babel/types": "^7.12.1"
246
+        "@babel/traverse": "^7.12.5",
247
+        "@babel/types": "^7.12.5"
248 248
       }
249 249
     },
250 250
     "@babel/helper-simple-access": {
@@ -293,13 +293,13 @@
293 293
       }
294 294
     },
295 295
     "@babel/helpers": {
296
-      "version": "7.12.1",
297
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz",
298
-      "integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==",
296
+      "version": "7.12.5",
297
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
298
+      "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
299 299
       "requires": {
300 300
         "@babel/template": "^7.10.4",
301
-        "@babel/traverse": "^7.12.1",
302
-        "@babel/types": "^7.12.1"
301
+        "@babel/traverse": "^7.12.5",
302
+        "@babel/types": "^7.12.5"
303 303
       }
304 304
     },
305 305
     "@babel/highlight": {
@@ -313,9 +313,9 @@
313 313
       }
314 314
     },
315 315
     "@babel/parser": {
316
-      "version": "7.12.3",
317
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz",
318
-      "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw=="
316
+      "version": "7.12.5",
317
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz",
318
+      "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ=="
319 319
     },
320 320
     "@babel/plugin-external-helpers": {
321 321
       "version": "7.12.1",
@@ -409,9 +409,9 @@
409 409
       }
410 410
     },
411 411
     "@babel/plugin-proposal-numeric-separator": {
412
-      "version": "7.12.1",
413
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz",
414
-      "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==",
412
+      "version": "7.12.5",
413
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz",
414
+      "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==",
415 415
       "requires": {
416 416
         "@babel/helper-plugin-utils": "^7.10.4",
417 417
         "@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -833,9 +833,9 @@
833 833
       }
834 834
     },
835 835
     "@babel/plugin-transform-react-jsx": {
836
-      "version": "7.12.1",
837
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz",
838
-      "integrity": "sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw==",
836
+      "version": "7.12.5",
837
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz",
838
+      "integrity": "sha512-2xkcPqqrYiOQgSlM/iwto1paPijjsDbUynN13tI6bosDz/jOW3CRzYguIE8wKX32h+msbBM22Dv5fwrFkUOZjQ==",
839 839
       "requires": {
840 840
         "@babel/helper-builder-react-jsx": "^7.10.4",
841 841
         "@babel/helper-builder-react-jsx-experimental": "^7.12.1",
@@ -1053,9 +1053,9 @@
1053 1053
       }
1054 1054
     },
1055 1055
     "@babel/runtime": {
1056
-      "version": "7.12.1",
1057
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz",
1058
-      "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==",
1056
+      "version": "7.12.5",
1057
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
1058
+      "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
1059 1059
       "requires": {
1060 1060
         "regenerator-runtime": "^0.13.4"
1061 1061
       }
@@ -1071,25 +1071,25 @@
1071 1071
       }
1072 1072
     },
1073 1073
     "@babel/traverse": {
1074
-      "version": "7.12.1",
1075
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz",
1076
-      "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==",
1074
+      "version": "7.12.5",
1075
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz",
1076
+      "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==",
1077 1077
       "requires": {
1078 1078
         "@babel/code-frame": "^7.10.4",
1079
-        "@babel/generator": "^7.12.1",
1079
+        "@babel/generator": "^7.12.5",
1080 1080
         "@babel/helper-function-name": "^7.10.4",
1081 1081
         "@babel/helper-split-export-declaration": "^7.11.0",
1082
-        "@babel/parser": "^7.12.1",
1083
-        "@babel/types": "^7.12.1",
1082
+        "@babel/parser": "^7.12.5",
1083
+        "@babel/types": "^7.12.5",
1084 1084
         "debug": "^4.1.0",
1085 1085
         "globals": "^11.1.0",
1086 1086
         "lodash": "^4.17.19"
1087 1087
       }
1088 1088
     },
1089 1089
     "@babel/types": {
1090
-      "version": "7.12.1",
1091
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz",
1092
-      "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==",
1090
+      "version": "7.12.6",
1091
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz",
1092
+      "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==",
1093 1093
       "requires": {
1094 1094
         "@babel/helper-validator-identifier": "^7.10.4",
1095 1095
         "lodash": "^4.17.19",
@@ -1132,9 +1132,9 @@
1132 1132
       },
1133 1133
       "dependencies": {
1134 1134
         "core-js": {
1135
-          "version": "3.6.5",
1136
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
1137
-          "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
1135
+          "version": "3.7.0",
1136
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz",
1137
+          "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA=="
1138 1138
         }
1139 1139
       }
1140 1140
     },
@@ -1679,6 +1679,11 @@
1679 1679
       "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.10.tgz",
1680 1680
       "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ=="
1681 1681
     },
1682
+    "@react-native-community/picker": {
1683
+      "version": "1.6.6",
1684
+      "resolved": "https://registry.npmjs.org/@react-native-community/picker/-/picker-1.6.6.tgz",
1685
+      "integrity": "sha512-R2QUEcpdOClgvCsTUzfJcb/qcRy40ikHoJslvnRRj2iP8zCaB1k/3XK3JKCo3e+Alux1fR5o7edlDOIOtwx1YQ=="
1686
+    },
1682 1687
     "@react-navigation/core": {
1683 1688
       "version": "5.14.3",
1684 1689
       "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.14.3.tgz",
@@ -1774,18 +1779,18 @@
1774 1779
       "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
1775 1780
     },
1776 1781
     "@types/react": {
1777
-      "version": "16.9.53",
1778
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz",
1779
-      "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==",
1782
+      "version": "16.9.56",
1783
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz",
1784
+      "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==",
1780 1785
       "requires": {
1781 1786
         "@types/prop-types": "*",
1782 1787
         "csstype": "^3.0.2"
1783 1788
       }
1784 1789
     },
1785 1790
     "@types/react-native": {
1786
-      "version": "0.63.30",
1787
-      "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.30.tgz",
1788
-      "integrity": "sha512-8/PrOjuUaPTCfMeW12ubseZPUGdbRhxYDa/aT+0D0KWVTe60b4H/gJrcfJmBXC6EcCFcimuTzQCv8/S03slYqA==",
1791
+      "version": "0.63.34",
1792
+      "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.34.tgz",
1793
+      "integrity": "sha512-6syTIfUt+DY4mJBoO0Y5i4jsDg0I7v31XIPRgsJZAlHeMY9p9GehtGd4VpQKB/NgzLiGzx9ahJPE8w+0lt/WxA==",
1789 1794
       "requires": {
1790 1795
         "@types/react": "*"
1791 1796
       }
@@ -2066,6 +2071,14 @@
2066 2071
         }
2067 2072
       }
2068 2073
     },
2074
+    "axios": {
2075
+      "version": "0.21.0",
2076
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz",
2077
+      "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==",
2078
+      "requires": {
2079
+        "follow-redirects": "^1.10.0"
2080
+      }
2081
+    },
2069 2082
     "babel-plugin-dynamic-import-node": {
2070 2083
       "version": "2.3.3",
2071 2084
       "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
@@ -2143,9 +2156,9 @@
2143 2156
       }
2144 2157
     },
2145 2158
     "badgin": {
2146
-      "version": "1.2.0",
2147
-      "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.0.tgz",
2148
-      "integrity": "sha512-GHnusKmXE7zrZCWZVnTj7IDoBK0SjvrRpDiW0qf8h2I5Ai2V1aVBj1FTiLIUdVzq2be5hvNHSNIsgXR8eyav5g=="
2159
+      "version": "1.2.2",
2160
+      "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.2.tgz",
2161
+      "integrity": "sha512-XtoSjNhy2D09qGiLhFWBJmBwBlmleQuwyYyjddWNCJ3gqGRBOBR25VGcd8CAOSghpEUmghB3LD4NpHrUG89zCg=="
2149 2162
     },
2150 2163
     "balanced-match": {
2151 2164
       "version": "1.0.0",
@@ -2203,9 +2216,9 @@
2203 2216
       }
2204 2217
     },
2205 2218
     "base64-js": {
2206
-      "version": "1.3.1",
2207
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
2208
-      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
2219
+      "version": "1.5.1",
2220
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
2221
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
2209 2222
     },
2210 2223
     "big-integer": {
2211 2224
       "version": "1.6.48",
@@ -2279,14 +2292,15 @@
2279 2292
       }
2280 2293
     },
2281 2294
     "browserslist": {
2282
-      "version": "4.14.5",
2283
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz",
2284
-      "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==",
2295
+      "version": "4.14.7",
2296
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz",
2297
+      "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==",
2285 2298
       "requires": {
2286
-        "caniuse-lite": "^1.0.30001135",
2287
-        "electron-to-chromium": "^1.3.571",
2288
-        "escalade": "^3.1.0",
2289
-        "node-releases": "^1.1.61"
2299
+        "caniuse-lite": "^1.0.30001157",
2300
+        "colorette": "^1.2.1",
2301
+        "electron-to-chromium": "^1.3.591",
2302
+        "escalade": "^3.1.1",
2303
+        "node-releases": "^1.1.66"
2290 2304
       }
2291 2305
     },
2292 2306
     "bser": {
@@ -2347,6 +2361,15 @@
2347 2361
         "unset-value": "^1.0.0"
2348 2362
       }
2349 2363
     },
2364
+    "call-bind": {
2365
+      "version": "1.0.0",
2366
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
2367
+      "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
2368
+      "requires": {
2369
+        "function-bind": "^1.1.1",
2370
+        "get-intrinsic": "^1.0.0"
2371
+      }
2372
+    },
2350 2373
     "caller-callsite": {
2351 2374
       "version": "2.0.0",
2352 2375
       "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
@@ -2374,9 +2397,9 @@
2374 2397
       "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
2375 2398
     },
2376 2399
     "caniuse-lite": {
2377
-      "version": "1.0.30001151",
2378
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001151.tgz",
2379
-      "integrity": "sha512-Zh3sHqskX6mHNrqUerh+fkf0N72cMxrmflzje/JyVImfpknscMnkeJrlFGJcqTmaa0iszdYptGpWMJCRQDkBVw=="
2400
+      "version": "1.0.30001157",
2401
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz",
2402
+      "integrity": "sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA=="
2380 2403
     },
2381 2404
     "capture-exit": {
2382 2405
       "version": "2.0.0",
@@ -2648,11 +2671,11 @@
2648 2671
       "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
2649 2672
     },
2650 2673
     "core-js-compat": {
2651
-      "version": "3.6.5",
2652
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
2653
-      "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
2674
+      "version": "3.7.0",
2675
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz",
2676
+      "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==",
2654 2677
       "requires": {
2655
-        "browserslist": "^4.8.5",
2678
+        "browserslist": "^4.14.6",
2656 2679
         "semver": "7.0.0"
2657 2680
       },
2658 2681
       "dependencies": {
@@ -2715,9 +2738,9 @@
2715 2738
       "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
2716 2739
     },
2717 2740
     "dayjs": {
2718
-      "version": "1.9.4",
2719
-      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.4.tgz",
2720
-      "integrity": "sha512-ABSF3alrldf7nM9sQ2U+Ln67NRwmzlLOqG7kK03kck0mw3wlSSEKv/XhKGGxUjQcS57QeiCyNdrFgtj9nWlrng=="
2741
+      "version": "1.9.6",
2742
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.6.tgz",
2743
+      "integrity": "sha512-HngNLtPEBWRo8EFVmHFmSXAjtCX8rGNqeXQI0Gh7wCTSqwaKgPIDqu9m07wABVopNwzvOeCb+2711vQhDlcIXw=="
2721 2744
     },
2722 2745
     "debug": {
2723 2746
       "version": "4.2.0",
@@ -2845,9 +2868,9 @@
2845 2868
       "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
2846 2869
     },
2847 2870
     "electron-to-chromium": {
2848
-      "version": "1.3.583",
2849
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.583.tgz",
2850
-      "integrity": "sha512-L9BwLwJohjZW9mQESI79HRzhicPk1DFgM+8hOCfGgGCFEcA3Otpv7QK6SGtYoZvfQfE3wKLh0Hd5ptqUFv3gvQ=="
2871
+      "version": "1.3.593",
2872
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.593.tgz",
2873
+      "integrity": "sha512-GvO7G1ZxvffnMvPCr4A7+iQPVuvpyqMrx2VWSERAjG+pHK6tmO9XqYdBfMIq9corRyi4bNImSDEiDvIoDb8HrA=="
2851 2874
     },
2852 2875
     "emoji-regex": {
2853 2876
       "version": "8.0.0",
@@ -2924,37 +2947,18 @@
2924 2947
       }
2925 2948
     },
2926 2949
     "es-get-iterator": {
2927
-      "version": "1.1.0",
2928
-      "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz",
2929
-      "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==",
2950
+      "version": "1.1.1",
2951
+      "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.1.tgz",
2952
+      "integrity": "sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw==",
2930 2953
       "requires": {
2931
-        "es-abstract": "^1.17.4",
2954
+        "call-bind": "^1.0.0",
2955
+        "get-intrinsic": "^1.0.1",
2932 2956
         "has-symbols": "^1.0.1",
2933 2957
         "is-arguments": "^1.0.4",
2934 2958
         "is-map": "^2.0.1",
2935 2959
         "is-set": "^2.0.1",
2936 2960
         "is-string": "^1.0.5",
2937 2961
         "isarray": "^2.0.5"
2938
-      },
2939
-      "dependencies": {
2940
-        "es-abstract": {
2941
-          "version": "1.17.7",
2942
-          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
2943
-          "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
2944
-          "requires": {
2945
-            "es-to-primitive": "^1.2.1",
2946
-            "function-bind": "^1.1.1",
2947
-            "has": "^1.0.3",
2948
-            "has-symbols": "^1.0.1",
2949
-            "is-callable": "^1.2.2",
2950
-            "is-regex": "^1.1.1",
2951
-            "object-inspect": "^1.8.0",
2952
-            "object-keys": "^1.1.1",
2953
-            "object.assign": "^4.1.1",
2954
-            "string.prototype.trimend": "^1.0.1",
2955
-            "string.prototype.trimstart": "^1.0.1"
2956
-          }
2957
-        }
2958 2962
       }
2959 2963
     },
2960 2964
     "es-to-primitive": {
@@ -3072,13 +3076,13 @@
3072 3076
       }
3073 3077
     },
3074 3078
     "expo": {
3075
-      "version": "39.0.3",
3076
-      "resolved": "https://registry.npmjs.org/expo/-/expo-39.0.3.tgz",
3077
-      "integrity": "sha512-pbLlkq43XDViEQpzgIW8hEPRibwjSml1uZQ3imPpCDfjMGlq7J6+IIN7q4kd+Hp+W0J6w6INYPR0E/dxdEBkSw==",
3079
+      "version": "39.0.4",
3080
+      "resolved": "https://registry.npmjs.org/expo/-/expo-39.0.4.tgz",
3081
+      "integrity": "sha512-lyd7VSg0DG+I2CwWtOHwhmMwgANoqggqU1ooWRdO4KdWPYA8hWMMsLC2vBBBemKv3PPwxhl9hhzFxtjJ/MaR7g==",
3078 3082
       "requires": {
3079 3083
         "@babel/runtime": "^7.1.2",
3080 3084
         "@expo/vector-icons": "^10.0.2",
3081
-        "@unimodules/core": "~5.5.0",
3085
+        "@unimodules/core": "~5.5.1",
3082 3086
         "@unimodules/react-native-adapter": "~5.6.0",
3083 3087
         "babel-preset-expo": "~8.3.0",
3084 3088
         "badgin": "^1.1.2",
@@ -3093,7 +3097,7 @@
3093 3097
         "expo-linking": "~1.0.4",
3094 3098
         "expo-location": "~9.0.0",
3095 3099
         "expo-permissions": "~9.3.0",
3096
-        "expo-splash-screen": "^0.6.1",
3100
+        "expo-splash-screen": "~0.6.2",
3097 3101
         "expo-sqlite": "~8.4.0",
3098 3102
         "fbemitter": "^2.1.1",
3099 3103
         "invariant": "^2.2.2",
@@ -3190,9 +3194,9 @@
3190 3194
       "integrity": "sha512-zlWGua8vm7+af4otaSpJlzu0SYIr0aWbL0qICySCDUEKkqig6MqfuI69NYHC0w9ocWZuh2xyj6Rbfy01UqcVSg=="
3191 3195
     },
3192 3196
     "expo-linking": {
3193
-      "version": "1.0.4",
3194
-      "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-1.0.4.tgz",
3195
-      "integrity": "sha512-tKZvn3D2t/rJQQbDXZaPl3pEZvyO2coSO1WHtXeOCUaWFjrrHxjW0HAZ2H2iR0zALPq/lXo0Po83RsES3E0DAg==",
3197
+      "version": "1.0.5",
3198
+      "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-1.0.5.tgz",
3199
+      "integrity": "sha512-LH26/ilFU0rCdsO1SJbNqoii3jTBqHdEfSloXhEb73aKdQT2BG6z5IjFIQXV2RiCmxNJbotdbfXyWSPqPoCEwg==",
3196 3200
       "requires": {
3197 3201
         "expo-constants": "~9.2.0",
3198 3202
         "qs": "^6.5.0",
@@ -3553,6 +3557,11 @@
3553 3557
         "locate-path": "^2.0.0"
3554 3558
       }
3555 3559
     },
3560
+    "follow-redirects": {
3561
+      "version": "1.13.0",
3562
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
3563
+      "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA=="
3564
+    },
3556 3565
     "fontfaceobserver": {
3557 3566
       "version": "2.1.0",
3558 3567
       "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz",
@@ -3593,12 +3602,19 @@
3593 3602
       },
3594 3603
       "dependencies": {
3595 3604
         "jsonfile": {
3596
-          "version": "6.0.1",
3597
-          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
3598
-          "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
3605
+          "version": "6.1.0",
3606
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
3607
+          "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
3599 3608
           "requires": {
3600 3609
             "graceful-fs": "^4.1.6",
3601
-            "universalify": "^1.0.0"
3610
+            "universalify": "^2.0.0"
3611
+          },
3612
+          "dependencies": {
3613
+            "universalify": {
3614
+              "version": "2.0.0",
3615
+              "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
3616
+              "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
3617
+            }
3602 3618
           }
3603 3619
         },
3604 3620
         "universalify": {
@@ -3629,15 +3645,25 @@
3629 3645
       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
3630 3646
     },
3631 3647
     "gensync": {
3632
-      "version": "1.0.0-beta.1",
3633
-      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
3634
-      "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
3648
+      "version": "1.0.0-beta.2",
3649
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
3650
+      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
3635 3651
     },
3636 3652
     "get-caller-file": {
3637 3653
       "version": "2.0.5",
3638 3654
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
3639 3655
       "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
3640 3656
     },
3657
+    "get-intrinsic": {
3658
+      "version": "1.0.1",
3659
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
3660
+      "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
3661
+      "requires": {
3662
+        "function-bind": "^1.1.1",
3663
+        "has": "^1.0.3",
3664
+        "has-symbols": "^1.0.1"
3665
+      }
3666
+    },
3641 3667
     "get-stream": {
3642 3668
       "version": "4.1.0",
3643 3669
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -3692,9 +3718,9 @@
3692 3718
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
3693 3719
         },
3694 3720
         "uglify-js": {
3695
-          "version": "3.11.4",
3696
-          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.4.tgz",
3697
-          "integrity": "sha512-FyYnoxVL1D6+jDGQpbK5jW6y/2JlVfRfEeQ67BPCUg5wfCjaKOpr2XeceE4QL+MkhxliLtf5EbrMDZgzpt2CNw==",
3721
+          "version": "3.11.5",
3722
+          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz",
3723
+          "integrity": "sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w==",
3698 3724
           "optional": true
3699 3725
         }
3700 3726
       }
@@ -3767,12 +3793,9 @@
3767 3793
       }
3768 3794
     },
3769 3795
     "hoist-non-react-statics": {
3770
-      "version": "3.3.2",
3771
-      "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
3772
-      "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
3773
-      "requires": {
3774
-        "react-is": "^16.7.0"
3775
-      }
3796
+      "version": "2.5.5",
3797
+      "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
3798
+      "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
3776 3799
     },
3777 3800
     "http-errors": {
3778 3801
       "version": "1.7.3",
@@ -3960,9 +3983,9 @@
3960 3983
       }
3961 3984
     },
3962 3985
     "is-core-module": {
3963
-      "version": "2.0.0",
3964
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz",
3965
-      "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==",
3986
+      "version": "2.1.0",
3987
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz",
3988
+      "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==",
3966 3989
       "requires": {
3967 3990
         "has": "^1.0.3"
3968 3991
       }
@@ -5621,14 +5644,14 @@
5621 5644
       "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="
5622 5645
     },
5623 5646
     "node-releases": {
5624
-      "version": "1.1.64",
5625
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz",
5626
-      "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg=="
5647
+      "version": "1.1.66",
5648
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz",
5649
+      "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg=="
5627 5650
     },
5628 5651
     "node-stream-zip": {
5629
-      "version": "1.11.3",
5630
-      "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.11.3.tgz",
5631
-      "integrity": "sha512-GY+9LxkQuIT3O7K8BTdHVGKFcBYBy2vAVcTBtkKpu+OlBef/NSb6VuIWSyLiVDfmLMkggHeRJZN0F3W0GWU/uw=="
5652
+      "version": "1.11.7",
5653
+      "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.11.7.tgz",
5654
+      "integrity": "sha512-tpJYTP3wgNcgCH4dsXC9x+K7No2qNzDRwoTaW9LPm39sA5elxWdSKHcv6j5TIPmjyOcxx9LoEvSdR16mi1Rfdg=="
5632 5655
     },
5633 5656
     "noop-fn": {
5634 5657
       "version": "1.0.0",
@@ -5727,12 +5750,12 @@
5727 5750
       }
5728 5751
     },
5729 5752
     "object.assign": {
5730
-      "version": "4.1.1",
5731
-      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz",
5732
-      "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==",
5753
+      "version": "4.1.2",
5754
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
5755
+      "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
5733 5756
       "requires": {
5757
+        "call-bind": "^1.0.0",
5734 5758
         "define-properties": "^1.1.3",
5735
-        "es-abstract": "^1.18.0-next.0",
5736 5759
         "has-symbols": "^1.0.1",
5737 5760
         "object-keys": "^1.1.1"
5738 5761
       }
@@ -6123,9 +6146,9 @@
6123 6146
       },
6124 6147
       "dependencies": {
6125 6148
         "ws": {
6126
-          "version": "7.3.1",
6127
-          "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
6128
-          "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
6149
+          "version": "7.4.0",
6150
+          "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
6151
+          "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ=="
6129 6152
         }
6130 6153
       }
6131 6154
     },
@@ -6539,6 +6562,14 @@
6539 6562
           "version": "4.2.2",
6540 6563
           "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
6541 6564
           "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
6565
+        },
6566
+        "hoist-non-react-statics": {
6567
+          "version": "3.3.2",
6568
+          "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
6569
+          "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
6570
+          "requires": {
6571
+            "react-is": "^16.7.0"
6572
+          }
6542 6573
         }
6543 6574
       }
6544 6575
     },
@@ -6551,13 +6582,6 @@
6551 6582
         "hoist-non-react-statics": "^2.3.1",
6552 6583
         "invariant": "^2.2.4",
6553 6584
         "prop-types": "^15.7.2"
6554
-      },
6555
-      "dependencies": {
6556
-        "hoist-non-react-statics": {
6557
-          "version": "2.5.5",
6558
-          "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
6559
-          "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
6560
-        }
6561 6585
       }
6562 6586
     },
6563 6587
     "react-native-iphone-x-helper": {
@@ -6598,9 +6622,9 @@
6598 6622
       "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw=="
6599 6623
     },
6600 6624
     "react-native-status-bar-height": {
6601
-      "version": "2.5.0",
6602
-      "resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.5.0.tgz",
6603
-      "integrity": "sha512-sYBCPYA/NapBSHkdm/IVL4ID3LLlIuLqINi2FBDyMkc2BU9pfSGOtkz9yfxoK39mYJuTrlTOQ7mManARUsYDSA=="
6625
+      "version": "2.6.0",
6626
+      "resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.6.0.tgz",
6627
+      "integrity": "sha512-z3SGLF0mHT+OlJDq7B7h/jXPjWcdBT3V14Le5L2PjntjjWM3+EJzq2BcXDwV+v67KFNJic5pgA26cCmseYek6w=="
6604 6628
     },
6605 6629
     "react-native-web": {
6606 6630
       "version": "0.13.18",
@@ -6650,9 +6674,9 @@
6650 6674
       }
6651 6675
     },
6652 6676
     "regenerate": {
6653
-      "version": "1.4.1",
6654
-      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
6655
-      "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A=="
6677
+      "version": "1.4.2",
6678
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
6679
+      "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
6656 6680
     },
6657 6681
     "regenerate-unicode-properties": {
6658 6682
       "version": "8.2.0",
@@ -6782,11 +6806,11 @@
6782 6806
       "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc="
6783 6807
     },
6784 6808
     "resolve": {
6785
-      "version": "1.18.1",
6786
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
6787
-      "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
6809
+      "version": "1.19.0",
6810
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
6811
+      "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
6788 6812
       "requires": {
6789
-        "is-core-module": "^2.0.0",
6813
+        "is-core-module": "^2.1.0",
6790 6814
         "path-parse": "^1.0.6"
6791 6815
       }
6792 6816
     },
@@ -7689,9 +7713,9 @@
7689 7713
       "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
7690 7714
     },
7691 7715
     "use-subscription": {
7692
-      "version": "1.5.0",
7693
-      "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.0.tgz",
7694
-      "integrity": "sha512-/FVRiB2I7NDjzWoNBYPt6YkkvleMm/lFtxj1hH6nX2TVrJ/5UTbovw9OE1efv2Zl0HoAYuTjM7zHd9OsABn5sg==",
7716
+      "version": "1.5.1",
7717
+      "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
7718
+      "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
7695 7719
       "requires": {
7696 7720
         "object-assign": "^4.1.1"
7697 7721
       }
@@ -7738,9 +7762,9 @@
7738 7762
       }
7739 7763
     },
7740 7764
     "whatwg-fetch": {
7741
-      "version": "3.4.1",
7742
-      "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz",
7743
-      "integrity": "sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ=="
7765
+      "version": "3.5.0",
7766
+      "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz",
7767
+      "integrity": "sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A=="
7744 7768
     },
7745 7769
     "which": {
7746 7770
       "version": "1.3.1",

+ 2
- 0
client/package.json View File

@@ -9,9 +9,11 @@
9 9
   },
10 10
   "dependencies": {
11 11
     "@react-native-community/masked-view": "0.1.10",
12
+    "@react-native-community/picker": "1.6.6",
12 13
     "@react-navigation/drawer": "^5.11.2",
13 14
     "@react-navigation/native": "^5.8.9",
14 15
     "@react-navigation/stack": "^5.12.6",
16
+    "axios": "^0.21.0",
15 17
     "expo": "~39.0.2",
16 18
     "expo-google-app-auth": "^8.1.3",
17 19
     "expo-secure-store": "~9.2.0",

+ 0
- 24760
natu.html
File diff suppressed because it is too large
View File


BIN
organizar/__pycache__/organizar.cpython-38.pyc View File


+ 55
- 0
organizar/organizar.py View File

@@ -0,0 +1,55 @@
1
+import os, sys
2
+import json
3
+
4
+path1 = "C:/Users/diego/Documents/companion_app_gh/primer_sem"
5
+path2 = "C:/Users/diego/Documents/companion_app_gh/segundo_sem"
6
+
7
+dirs1 = os.listdir(path1)
8
+dirs2 = os.listdir(path2)
9
+
10
+def orderFiles1(files1):
11
+    i = 1
12
+    for file in dirs1:
13
+        if file.endswith('.json'):
14
+            files1.append({'file': file, 'num': i})
15
+        i += 1
16
+    return files1
17
+
18
+def orderFiles2(files2):
19
+    i = 1
20
+    for file in dirs2:
21
+        if file.endswith('.json'):
22
+            files2.append({'file': file, 'num': i})
23
+        i += 1
24
+    return files2
25
+
26
+
27
+def orderFiles3(files1, files2, files3):
28
+    for i in range(len(files1)):
29
+        files3.append({'file': files1[i]['file'], 'num': files1[i]['num']})
30
+        files3.append({'file': files2[i]['file'], 'num': files1[i]['num']})
31
+    return files3
32
+
33
+files1 = orderFiles1([])
34
+files2 = orderFiles2([])
35
+files3 = []
36
+files3 = orderFiles3(files1, files2, files3)
37
+
38
+
39
+
40
+
41
+# for file in files3:
42
+#     check = file['file'].split('.')
43
+#     path = "C:/Users/diego/Documents/companion_app/segundo_sem" if check[0][-1] == '2' else "C:/Users/diego/Documents/companion_app/primer_sem"
44
+#     with open(path + '/' + file['file']) as f:
45
+#         data = json.load(f)
46
+#         fac_id = file['num']
47
+#         for key in data:
48
+#             if key != 'Horario ':
49
+#                 code = key
50
+#                 name = data[key][0]
51
+#                 creds = data[key][1]
52
+#                 print(code, name, creds, fac_id)
53
+               
54
+            
55
+    

+ 1
- 0
primer_sem/Admi.json View File

@@ -0,0 +1 @@
1
+{"ADMI4005": ["INTROD A LOS NEGOCIOS ", "3"], "ADMI4007": ["GERENCIA ESTRATEGICA ", "3"], "ADMI4010": ["PLAN ORG EMPRESAS NUEVAS ", "3"], "ADMI4236": ["COMERCIO EXTERIOR DE PR ", "3"], "ADMI4415": ["LIDERAZGO ", "3"], "ADMI4416": ["ETICA EMPRESARIAL ", "3"], "ADMI4417": ["ETICA EMPRESARIAL & SICI ", "0"], "ADMI5500": ["FUNDAMENTOS GRAD ADM EMPR ", "1"], "ADMI5600": ["HERRAMIENTAS GRAD ADM EMPR", "1"], "COEM3001": ["COMUNICACION EMPRESARIAL ", "3"], "COEM3006": ["SEM RED ANALIS DOCUM EMP ", "3"], "COEM3008": ["REDACCION DE INFORMES ", "3"], "COEM3016": ["EMPRESA Y LITE PR E HISPAN", "3"], "COEM4005": ["ETIQUETA PROTOCOL EMPRESA ", "3"], "CONT3105": ["INTR FUNDAM CONTABILIDAD I", "3"], "CONT3106": ["INTRO FUND DE CONT II ", "3"], "CONT4001": ["FIL TEOR PROB CONT FIN I ", "3"], "CONT4002": ["FIL TEOR PROB CONT FIN II ", "3"], "CONT4003": ["FIL TEOR PROB CONT FIN III", "3"], "CONT4006": ["CONTABILIDAD GERENCIAL ", "3"], "CONT4017": ["INTERV CUENTAS Y SISTEMAS ", "3"], "CONT4026": ["PROGR DE INTERN EN CONT ", "4"], "CONT4029": ["CONTABIL INTERNACIONAL ", "3"], "CONT4057": ["SISTEMAS INFO CONTABILIDAD", "3"], "CONT4059": ["CONT GOB Y NO NEGOCIOS ", "3"], "CONT4076": ["ASPECTOS CONTRIB DE INDIVI", "3"], "CONT4079": ["ASPECTOS CONTRIB DE CORP ", "3"], "CONT4125": ["CONTABILIDAD DE COSTOS ", "3"], "CONT4991": ["EXPERIENCIA EDUC COOP I ", "3"], "CONT4992": ["EXPERIENCIA EDUC COOP II ", "1"], "CONT4997": ["TEMAS ESPECIALES CONTABILI", "0"], "ESEM5005": ["EVALUACION IDEAS NEGOCIOS ", "3"], "ESTA3041": ["ESTA Y ANALIT DATOS ADEM I", "3"], "ESTA3042": ["ESTAD PARA ADEM II ", "3"], "ESTA3045": ["INTR ESTADISTICA ADM EMP ", "6"], "ESTA4501": ["MODELOS PREDICTIVOS ", "3"], "ESTA4998": ["EXPERIENC EDUC COOPERAT ", "2"], "ESTA5503": ["ANALISIS MULTIVARIANT APLC", "3"], "FINA3057": ["FINANZAS PERSONAL FAMILIAR", "3"], "FINA3106": ["GERENCIA FINANCIERA ", "3"], "FINA3107": ["MERC E INSTIT FINANCIERAS ", "3"], "FINA4020": ["FINANZAS INTERNACIONALES ", "3"], "FINA4066": ["GERENCIA DE RIESGO ", "3"], "FINA4125": ["GERENC FINANC INTERMEDIA ", "3"], "FINA4137": ["PRINCIPIOS DE INVERSIONES ", "3"], "FINA4145": ["SEM COMPRENSIVO FINANZAS ", "3"], "FINA4149": ["GERE CARTERA DE INVERSION ", "3"], "FINA4305": ["PLAN FINAN PERSONAL AVANZA", "3"], "FINA4991": ["EXPERIENC EDUC COOP I ", "3"], "FINA4992": ["EXPERIENC EDUC COOP II ", "3"], "FINA5995": ["SEM:TEMAS CONTEM FINANZAS ", "3"], "GEOF3030": ["SIST ADMI DOCU BASES DATOS", "3"], "GEOF3035": ["APREND TECLADO Y APLIC ", "3"], "GEOF3036": ["NIV AVANZ TECLADO Y APLICA", "4"], "GEOF3055": ["SEM INTEG TECNO EN ORGANI", "3"], "GEOF3317": ["ADIEST BAS PROGR HOJA CALC", "1"], "GEOF3328": ["ADIEST AVAN PROG HOJA CALC", "1"], "GEOF4045": ["SIST ADMI,PROCED EMPRESA ", "3"], "GEOF4049": ["PRODU DOCU EMPRESARI ESPA ", "3"], "GEOF4105": ["INTRGR PROGRAMAS APLICACIO", "3"], "GEOF4115": ["SEM GEREN OFICI Y SUPERVI ", "3"], "GEOF4125": ["PLAN DE ESTRA DE ADIES ", "3"], "GEOF4145": ["TECN EMER EN ORGANIZACIONE", "3"], "GEOF4150": ["PRACTICA PROF SUPERVISADA", "4"], "GEOF4995": ["EXP EDUC COOP EN GERE OFIC", "3"], "GEOP4315": ["GERENCIA OPER Y SUMINISTRO", "3"], "GEOP4316": ["\"LEAN SIGMA Y SIST DE PROD", "3"], "GEOP4319": ["PLAN CONTROL OPERACIONES ", "3"], "GEOP4335": ["GERENCIA DE COMPRAS ", "3"], "GEOP4345": ["INTERN GER OPER Y SUMINIS ", "3"], "GEOP4998": ["EXP EDUC COOP GER OPERAC ", "3"], "INCO4006": ["REDACCION DE INFORMES ", "2"], "INCO4008": ["COMUNIC ESTRATEGICA EMPRES", "2"], "INCO4998": ["EXP EDUCACION COOPERATIVA ", "4"], "LEGA4005": ["ASPECTOS LEGALES NEGOCIOS ", "3"], "MECU3031": ["METOD CUANT PARA ADEM I ", "3"], "MECU3032": ["METODOS CUANTITATIVOS II ", "3"], "MERC3115": ["PRINCIPIOS DE MERCADEO ", "3"], "MERC4010": ["CONDUCTA DEL CONSUMIDOR ", "3"], "MERC4115": ["MERCADEO INTERNACIONAL ", "3"], "MERC4130": ["GERENCIA DE PROMOCION ", "3"], "MERC4215": ["GERENCIA VENTAS AL DETAL ", "3"], "MERC4219": ["MERCADEO INTERMEDIO ", "3"], "MERC4227": ["SEMINARIO DE INVEST MERC ", "3"], "MERC4235": ["INTERNADO DE MERCADEO ", "3"], "MERC4998": ["EXPER EDUC COOP MERCADEO ", "3"], "MERC5995": ["TEMAS CONTEMP EN MERCADEO ", "3"], "REHU4405": ["GERENCIA RECURSOS HUMANOS ", "3"], "REHU4407": ["SISTEMAS DE COMPENSACION ", "3"], "REHU4408": ["CONDUCTA ORGANIZACIONAL ", "3"], "REHU4419": ["LEGISLA JURIS LABORAL ", "3"], "REHU4450": ["INTERNADO GEREN REC HUMA ", "3"], "REHU4998": ["EXP EDUC COOP GER REC HUM ", "2"], "SICI3211": ["FUND SIST INFORMACION ", "3"], "SICI3245": ["INFRAESTRU TECNOL SIS INF ", "3"], "SICI3255": ["PROGRAMACION DE APLICACION", "3"], "SICI4015": ["ARCHIVO Y BASES DE DATOS ", "3"], "SICI4025": ["ANALIS Y DISEN LOGIC SISTE", "3"], "SICI4215": ["INTELIGEN ANALIT NEGOCIOS ", "3"], "SICI4266": ["DISE\ufffdO E IMPL SIST HER EME", "3"], "SICI4275": ["CONTROL Y SEG EN SIST INFO", "3"], "SICI4278": ["ADMINISTRA DE PROYECTOS ", "3"], "SICI4286": ["DISENO ADM REDES LOCALES ", "3"], "SICI4998": ["EXPERIENC EDUC COOPERAT ", "2"], "SICI4999": ["EXPERIENCIA EDUC COOP II ", "4"]}

+ 1
- 0
primer_sem/Admi_Grad.json View File

@@ -0,0 +1 @@
1
+{"ADMI5500": ["FUNDAMENTOS GRAD ADM EMPR ", "1"], "ADMI5600": ["HERRAMIENTAS GRAD ADM EMPR", "1"], "ADMI6510": ["TOMA DE DECISIONES ", "3"], "ADMI6531": ["GERENCIA Y LIDERAZGO ", "3"], "ADMI6595": ["GEREN ESTRATEGICA GLOBAL ", "3"], "ADMI6637": ["ETICA EMPRESARIAL ", "3"], "ADMI6990": ["SEMINARIO ADMINIST EMPRESA", "1"], "ADMI8005": ["SEMINARIO DOCTORAL ", "1"], "ADMI8105": ["DISERTACION DOCTORAL ", "4"], "ADMI8106": ["CONTINUA DISERTAC DOCTORAL", "1"], "COIN6703": ["INV MERC NEGOC INTERNAC ", "3"], "COIN6707": ["GERE LOGIS OPERA INTERNA ", "3"], "COIN8016": ["SISTEMAS NEGOCIOS COMPAR ", "3"], "COIN8028": ["ESTRATEGIAS MERC INTERNAC ", "3"], "CONT6501": ["CONT PARA ANALIS,CONTROL ", "3"], "CONT6701": ["TEORIA,PROB CONT FINA I ", "3"], "ECOG6567": ["ECONOMIA GERENCIAL ", "3"], "ESEM5005": ["EVALUACION IDEAS NEGOCIOS ", "3"], "ESTA5503": ["ANALISIS MULTIVARIANT APLC", "3"], "FINA5995": ["SEM:TEMAS CONTEM FINANZAS ", "3"], "FING6501": ["FINANZA CORPORATIVA ", "3"], "FING6703": ["FINANZA EMPRESARIAL AVAN ", "3"], "FING6721": ["SEMINARIO DE FINANZAS ", "3"], "FING8006": ["TEORIA FINANCIERA II ", "3"], "FING8029": ["TEMAS CONTEM MERCAD FINA ", "3"], "GEOP6539": ["GERENCIA DE OPERACIONES ", "3"], "MECU6551": ["FUND DE ESTADISTICA ", "3"], "MERC5995": ["TEMAS CONTEMP EN MERCADEO ", "3"], "MERC6541": ["GERENCIA DE MERCADEO ", "3"]}

+ 1
- 0
primer_sem/Arqui.json View File

@@ -0,0 +1 @@
1
+{"ARQU3015": ["SEM DE TRABAJO DE CAMPO ", "3"], "ARQU3025": ["INTROD ARQUIT PAISAJISTA ", "3"], "ARQU3046": ["MATEMATICAS II ", "4"], "ARQU3121": ["INTROD A ARQUITECTURA ", "3"], "ARQU3131": ["FUNDAMENTOS DE DISENO I ", "5"], "ARQU3133": ["DISENO ARQUITEC ELEM I ", "5"], "ARQU4115": ["INTRO PRACTICA PROFESIONAL", "3"], "ARQU4133": ["DISENO ARQUIT INTERM I ", "5"], "ARQU4135": ["DIS ARQ AVAN:COMP URBANO ", "5"], "ARQU4145": ["TECN INVESTIGACION ARQUIT ", "2"], "ARQU4147": ["FUNDAMENTOS PRACTIC INTEG ", "3"], "ARQU4211": ["HIST ARQ 1 INVENCI DE CLAS", "3"], "ARQU4213": ["HIST ARQ 3:URBAN CONTEMPOR", "3"], "ARQU4214": ["HISTORIA DE ARQU EN P.R. ", "3"], "ARQU4215": ["HIST Y TEO ARQ AME LATINA ", "3"], "ARQU4311": ["TECNOLOGIA ARQUITEC I ", "3"], "ARQU4313": ["TECH III: SIST EDIFICACION", "3"], "ARQU4321": ["ESTRUCTURAS I ", "3"], "ARQU4322": ["ESTRUCTURAS II ", "3"], "ARQU4323": ["ESTRUCTURA III ", "3"], "ARQU5995": ["SEM INVEST Y TRAB CAMPO ", "2"]}

+ 1
- 0
primer_sem/Arqui_Grad.json View File

@@ -0,0 +1 @@
1
+{"ARQU5995": ["SEM INVEST Y TRAB CAMPO ", "2"], "ARQU6145": ["TECNICAS DE INVESTIGACION ", "3"], "ARQU6211": ["HISTORIA ARQUITECTURA I ", "3"], "ARQU6311": ["DISENO ARQUITEC AVANZAD I ", "5"], "ARQU6313": ["TESIS DISENO ARQUITEC I ", "5"], "ARQU6314": ["TESIS DISENO ARQUITEC II ", "5"], "ARQU6325": ["ESTRUCT I:ESTATICA,EQUILIB", "3"], "ARQU6331": ["DISENO ARQUITECTONICO I ", "5"], "ARQU6336": ["DISENO ARQUITECTONICO VI ", "5"], "ARQU6341": ["TEORIA DE ARQUITECTURA ", "3"], "ARQU6361": ["SISTEMAS DE EDIFICACION ", "3"], "ARQU6383": ["PRAC PROF:PROYECTO DISE\ufffdO ", "3"], "ARQU6384": ["PRACT PROF:FIRMA DE DISENO", "3"], "ARQU6385": ["FINANZAS DE CONSTRUCCION ", "3"], "ARQU6425": ["INTERNAD EXPER PROFESIONAL", "3"], "ARQU6431": ["SEMINARIO DE INVESTIGACION", "2"], "ARQU6511": ["TECN I:DIS ARQU BIOCLIMAT ", "3"], "ARQU6514": ["TECN IV: SIST DE ENERGIA ", "3"], "ARQU6895": ["TESIS CONTINUADA ", "0"], "ARQU6991": ["ESTUDIO ESPECIALIZADO ", "1"]}

+ 1
- 0
primer_sem/Asuntos_Aca.json View File

@@ -0,0 +1 @@
1
+{"INTD3705": ["INTERNADO LEGISLATIVO PR ", "6"], "INTD4012": ["INTERN CLIN ASIST LEGAL I ", "3"], "INTD4994": ["PRIMER EXPER LABORAL SUBGR", "3"], "PREH3901": ["EXPERIENCIA INVESTIG I ", "3"], "PREH4005": ["TEO METODO TECNICAS INVES ", "2"], "PREH4655": ["DESTREZ AVAN REDAC INGL ", "3"], "PREH4676": ["SEM HONOR INTERDISCIPLIN ", "3"], "PREH4900": ["ESTUDIOS INDIVIDUALIZADOS ", "3"], "PREH4980": ["TESINA DE HONOR ", "3"], "TARE910C": ["TAREA EQUIV-DIR DEPARTAM ", "2"], "TARE9202": ["TAREA EQUIV-INVESTIG 2C ", "2"], "TARE9203": ["TAREA EQUIV-INVESTIG 3C ", "3"], "TARE9501": ["TAREA EQUIV-COOR PROG F1C ", "1"], "TARE9502": ["TAREA EQUIV-COOR PROG F2C ", "2"], "TARE9503": ["TAREA EQUIV-COOR PROG F3C ", "3"], "TARE9504": ["TAREA EQUIV-COOR PROG F4C ", "4"], "TARE9700": ["TAREA EQUIV-PROY ESPECIAL ", "1"]}

+ 1
- 0
primer_sem/Ciencias_Militares.json View File

@@ -0,0 +1 @@
1
+{"CIMI3011": ["CURSO BASIC C. MILIT I ", "2"], "CIMI3021": ["CURS BASIC C.MILIT III ", "2"], "CIMI4011": ["COM Y PSIC EN LID MILITAR ", "4"], "CIMI4021": ["LID Y ADM OPERACIONES MIL ", "4"], "ESAE3001": ["LA FUERZA AEREA DE HOY ", "2"], "ESAE3011": ["DESARR DEL PODERIO AEREO ", "2"], "ESAE4001": ["GER,LID EN LA FUERZA AEREA", "4"], "ESAE4011": ["SEG NAC SOC AMER CONTEMP ", "4"]}

+ 1
- 0
primer_sem/Ciencias_Naturales.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Ciencias_Naturales_Grad.json View File

@@ -0,0 +1 @@
1
+{"BIOI6991": ["INVES INDEPENDIENTE EN BIO", "1"], "BIOI6997": ["INVESTIGACION PARA TESIS ", "1"], "BIOI6998": ["CONTINUACION INVEST TESIS ", "0"], "BIOI8991": ["INVESTIGACION AVANZADA ", "1"], "BIOL5026": ["HISTOLOGIA ", "4"], "BIOL5495": ["TAXONOM PLANTA FLORIFERA ", "3"], "BIOL5548": ["NEUROBIOLOGIA ", "3"], "BIOL6001": ["COLOQUIO EN BIOLOGIA I ", "1"], "BIOL6007": ["REPRODUCCION EN PLANTAS ", "3"], "BIOL6040": ["BIOGEOGRAFIA ", "3"], "BIOL6190": ["ECOLOGIA AVANZADA ", "3"], "BIOL6501": ["BIOL MOLECULAR Y CELULAR I", "3"], "BIOL6910": ["INVESTIG SUPERVISADA ", "2"], "BIOL6996": ["SEMINARIO EN ZOOLOGIA ", "3"], "BIOL8997": ["DISERTACION DOCTORAL ", "1"], "BIOL8998": ["CONTINUACION DE TESIS ", "0"], "CCOM5035": ["TEORIA DE COMPUTABILIDAD ", "3"], "CIAM6115": ["EL AMBIENTE TERRESTRE ", "3"], "CIAM6116": ["ECOSISTEMAS TROPICALES ", "3"], "CIAM6117": ["EL AMBIENTE COSTERO ", "3"], "CIAM6256": ["METODOS ANALISIS ESTADIST ", "3"], "CIAM6896": ["CONTINUACION TESIS ", "0"], "CIAM6901": ["SEMINARIO GRADUADO I ", "1"], "CIAM6910": ["INVESTIGACION GRADUADA ", "1"], "CIAM6990": ["TOPIC ESP CIEN AMBIENTALES", "1"], "CIAM6999": ["INVESTIGACION GRADUADA ", "1"], "CIAM8116": ["POLITICA ETICA AMBIENTE ", "2"], "CIAM8119": ["SRV ECOSIST ECONOM ECOLOG ", "2"], "CIAM8225": ["METODOS ANALISIS ESPACIAL ", "3"], "CIAM8226": ["TEC GEOESPACIAL ", "1"], "CIAM8405": ["SEMINARIO MANEJO AMBIENTAL", "2"], "CIAM8999": ["INV GRAD DIS DOCTOR CIAM ", "1"], "CIAM9000": ["CONT DISERTACION DOCTORAL ", "0"], "CINA5990": ["TEMAS CIENCIA MAT O TECN ", "3"], "FISI6401": ["METODOS FISI TEORICA I ", "3"], "FISI6406": ["LABORATORIO AVANZADO I ", "3"], "FISI6412": ["MECANICA AVANZADA I ", "3"], "FISI6451": ["MECANICA CUANTICA I ", "3"], "FISI6500": ["COLOQUIO I Y II ", "1"], "FISI6896": ["CONTINUACION DE TESIS ", "0"], "FISI6991": ["INVESTIGACION ", "3"], "FISI6995": ["SEMINARIO DE INVESTIGACION", "2"], "FISI8115": ["ESPECTROSCOP INFRARROJA ", "3"], "FISI8145": ["ELECTROQUIMICA AVANZADA ", "3"], "FISI8991": ["INVESTIGACION TESIS DOCT ", "1"], "FISI8992": ["TOPICO CIENCIAS MATERIAL ", "3"], "FISI8994": ["TOPICO FISI ESTAD SOLIDO ", "1"], "FISI8995": ["SEMINARIO EN QUIM-FISICA ", "1"], "FISI8996": ["TEMAS EN FISICA-QUIMICA ", "1"], "MATE5001": ["PROBABILIDAD I ", "3"], "MATE5201": ["CALCULO AVANZADO I ", "3"], "MATE6150": ["ALGEBRA LINEAL ", "3"], "MATE6201": ["ALGEBRA MODERNA I ", "3"], "MATE6261": ["FUNC UNA VARIABL REAL I ", "3"], "MATE6271": ["ANALISIS MATEMATICO I ", "3"], "MATE6460": ["INTROD ANALIS FUNCIONAL ", "3"], "MATE6551": ["TOPOLOGIA ALGEBRAICA I ", "3"], "MATE6601": ["PROBABILIDAD,ESTADIST I ", "3"], "MATE6611": ["MODELOS LINEALES I ", "3"], "MATE6680": ["ANALISIS COMPUTACIONAL I ", "3"], "MATE6681": ["ESTRUCTURA DE DATOS I ", "3"], "MATE6686": ["DISEN EXPER ANAL AVANZ DAT", "3"], "MATE6700": ["PROYECTOS MATE APLICADAS ", "3"], "MATE6800": ["SEMINARIO GRADUADO ", "3"], "MATE6896": ["CONTINUACION DE TESIS ", "0"], "MATE6990": ["ESTUDIOS INDEPENDIENTES ", "3"], "MATE6996": ["TESIS ", "3"], "MATE8309": ["ANALISIS COMPLEJO II ", "3"], "MATE8465": ["TEORIA ESPECTRAL EC DIF. ", "3"], "MATE8800": ["SEMINARIO DOCTORAL ", "3"], "MATE8899": ["CONT DISERTACION DOCTORAL ", "0"], "MATE8999": ["DISERTACION DOCTORAL ", "3"], "NUTR5997": ["TEMAS CONT ALIMENTOS NUTRI", "3"], "QUIM5995": ["REDACCION PERSUASIVA CIENC", "2"], "QUIM5995_LAB": ["QUIMICA MEDICINAL ", "3"], "QUIM6011": ["TEORIA QUIM INORGANICA 1 ", "3"], "QUIM6215": ["TEORIA DE QUIM ANALITICA ", "3"], "QUIM6411": ["TEORIA QUIM ORGANICA I ", "3"], "QUIM6612": ["QUIMICA FISICA AVANZADA II", "3"], "QUIM6811": ["BIOQUIMICA AVANZADA I ", "3"], "QUIM6905": ["PRINC, PRACTICAS QUIMICA ", "3"], "QUIM8005": ["SEM QUIM INORGANICA I ", "2"], "QUIM8205": ["SEM DE QUIM ANALITICA ", "2"], "QUIM8405": ["SEM DE QUIM ORGANICA I ", "2"], "QUIM8605": ["SEM DE QUIMICA FISICA ", "2"], "QUIM8801": ["SEMINARIO DE BIOQUIMICA ", "2"], "QUIM8896": ["CONTINUACION DE TESIS ", "0"], "QUIM8901": ["SEMINARIO GRADUADO ", "1"], "QUIM8990": ["TOPICOS ESPE QUIM INORG ", "3"], "QUIM8992": ["TECN ESPECTROSC BASES SINC", "3"], "QUIM8996": ["TOPICOS ESP QUIM FISICA ", "3"], "QUIM8998": ["TOPICOS ESP BIOQUIMICA ", "3"], "QUIM8999": ["INVESTIGACION GRADUADA ", "1"]}

+ 1
- 0
primer_sem/Ciencias_Sociales.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Ciencias_Sociales_Grad.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Comunicaciones.json View File

@@ -0,0 +1 @@
1
+{"COMA4011": ["FOTOGRAFIA BASICA ", "3"], "COMA4038": ["HISTORIA DEL CINE ", "3"], "COMA4100": ["PRACTICA SUPERVISADA EN TV", "3"], "COMA4105": ["PRACTICA SUPERVISADA RADIO", "3"], "COMA4106": ["PRACTICA SUPERVIS CINE ", "3"], "COMA4187": ["TEORIA Y CRITICA CINE ", "3"], "COMA4315": ["GUIONES ", "3"], "COMA4317": ["DISE\ufffdO GRAFICAS DIGITALES ", "3"], "COMA4341": ["PRODUCCION DE CINE I ", "3"], "COMA4342": ["PRODUCCION DE CINE II ", "3"], "COMA4351": ["PRODUCCION TELEVISION I ", "3"], "COMA4810": ["SEMINARIO EN RADIO ", "3"], "COMA4815": ["SEMINARIO EN CINE ", "3"], "COMA4991": ["SEM EN PRACTIC AUDIOVISUAL", "1"], "COPU4017": ["INTROD A LOS MEDIOS ", "3"], "COPU4045": ["SEMINARIO AVANZADO COMUNIC", "3"], "COPU4137": ["FUND REDACCION MEDIOS COMU", "3"], "COPU4355": ["TEORIAS DE LA COMUNICACION", "3"], "COPU4365": ["LEGISL MEDIOS Y DEONT INF ", "3"], "INFP4001": ["REDACCION PERIODISTICA I ", "3"], "INFP4002": ["REDACCION PERIODISTICA II ", "3"], "INFP4016": ["INTRODUCCION AL PERIODISMO", "3"], "INFP4036": ["DISE\ufffdO PERIOD MULTIMEDIA ", "3"], "INFP4059": ["PERIODISMO PARA RADIO Y TV", "3"], "INFP4109": ["PRACTICA SUPERV PERIOD ", "3"], "INFP4148": ["REDAC BASICA MEDIOS CONVER", "3"], "INFP4205": ["SEMINARIO EN COMUNICACION ", "3"], "INFP4809": ["SEMINARIO EN PERIODISMO ", "3"], "REPU4018": ["INTR A PUBLI Y REL PUBLIC ", "3"], "REPU4025": ["REDACCION PARA PUBLICIDAD ", "3"], "REPU4067": ["COMUNICACION ORAL ", "3"], "REPU4076": ["CONCEP ANUN AUDIO VID NTEC", "3"], "REPU4087": ["PLAN PRODUC EN RELAC PUBL ", "3"], "REPU4110": ["PRACT SUPER EN PUBLICIDAD ", "3"], "REPU4147": ["REDACCION RELAC PUBLICAS ", "3"], "REPU4155": ["PLANIFICACION DE MEDIOS ", "3"], "REPU4165": ["CAMPA\ufffdAS RELAC PUBLICAS ", "3"], "REPU4166": ["CAMPANAS DE PUBLICIDAD ", "3"], "REPU4807": ["SEM RELACIONES PUBLICAS ", "3"]}

+ 1
- 0
primer_sem/Comunicaciones_Grad.json View File

@@ -0,0 +1 @@
1
+{"COPU6500": ["TEORIAS DE LA COMUNICACION", "3"], "COPU6517": ["CULT Y ESTRUC MEDIATICAS ", "3"], "COPU6667": ["PERSP Y METOD INV EN COM ", "3"], "COPU6698": ["CONT EXP INVEST DIV MODS ", "0"], "COPU6707": ["SEMINAR COMUNICACION III ", "3"], "COPU6726": ["SEMINARION EN PERIOD II ", "3"]}

+ 1
- 0
primer_sem/Educacion.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Educacion_Continua.json View File

@@ -0,0 +1 @@
1
+{"BEOF3001": ["DISENO ARTESANO ARTISTA ", "3"], "BEOF3301": ["INTROD A LA CERAMICA I ", "3"], "BEOF3311": ["TORN ALFAR CERAM CONT I ", "3"], "BEOF3401": ["TEJIDOS TELAR:TAPICES I ", "3"], "BEOF3425": ["INTRODUCCION AL MACRAME ", "3"], "BEOF3611": ["INTROD A ORFEBRERIA I ", "3"], "BEOF3831": ["INTROD A CALIGRAFIA I ", "3"], "STEM6003": ["ENSEN APLIC CON ING STEM ", "3"], "STEM6004": ["INTE AUTOMATIZ DE ROBOTICA", "3"], "STEM6005": ["EVALUA TRANS PROY STEM-PBL", "3"]}

+ 1
- 0
primer_sem/Educacion_Grad.json View File

@@ -0,0 +1 @@
1
+{"CIEJ6015": ["FISIOL EJER NIVEL INTER ", "3"], "CIEJ6016": ["TEC LAB FISIOL EJERCICIO ", "2"], "CIEJ6019": ["EST INDEPEND EN CS EJER ", "3"], "CIEJ6026": ["INTRO BIOQUIM DEL EJERC ", "3"], "CIEJ6045": ["PRESCRIP Y PROG DE EJERC ", "3"], "CIEJ6069": ["PRACTICUM CIENCIAS EJER ", "3"], "CIEJ6205": ["SEM ADMIN CIENCIAS EJERCI ", "1"], "CIEJ6206": ["SEM PSICO ACTIVI FISI EJER", "1"], "EDUC6096": ["DESAR NINEZ:IMPLIC EDUC ", "3"], "EDUC6110": ["EVAL EN PROCESO CONSEJERIA", "3"], "EDUC6116": ["LECTUR PERSPEC PSICOLING ", "3"], "EDUC6118": ["LITE,EDUC DEL PREESCOLAR ", "3"], "EDUC6125": ["JUEG DESAR,EDUC PREESCOL ", "3"], "EDUC6130": ["MOTIVACION Y APRENDIZAJE ", "3"], "EDUC6147": ["DIAGNO Y EVALUA EN LECT ", "3"], "EDUC6210": ["INTERNAD LIDER EDUCATIV II", "3"], "EDUC6300": ["TEND PROG CURR ESTUD SOC ", "3"], "EDUC6310": ["TEOR,PRACT DE CONSEJERIA ", "3"], "EDUC6320": ["PRACT EN ORIENTACION I ", "6"], "EDUC6370": ["ENSEN CIENCIA ESC SECUN ", "3"], "EDUC6390": ["ESTA APLICADA EN LA EDUC I", "3"], "EDUC6400": ["DISENOS DE INVESTIGACION ", "3"], "EDUC6401": ["ASUNT ETIC LEGALES PROFES ", "3"], "EDUC6415": ["INVESTIGACION EN ACCION ", "3"], "EDUC6501": ["CURSO AVAN FUND DE EDUC I ", "3"], "EDUC6509": ["METODO INVESTIG EN EDUC ", "3"], "EDUC6511": ["TESIS O PROYEC MAESTRIA ", "6"], "EDUC6512": ["CONT TESIS O PROYECTO MA ", "0"], "EDUC6513": ["SEM: INV CUALITAT EDUC ", "3"], "EDUC6517": ["PRINCIPIOS DE CURRICULO ", "3"], "EDUC6521": ["LIDER ADM ORGAN EDUCATIVAS", "3"], "EDUC6530": ["TALLER PRODUC MATER MATE ", "3"], "EDUC6551": ["SEM INV & CREA CURR & ENSE", "3"], "EDUC6578": ["SEM NECES,NATUR ED EXCEP ", "3"], "EDUC6588": ["REDAC,ESTILO LENG INVEST ", "3"], "EDUC6597": ["CONSTRUCCION INSTRUMENTO ", "3"], "EDUC6598": ["LIDERAZGO COMUNITARIO ", "3"], "EDUC6609": ["FILO EDUC E.M.DE HOSTOS ", "3"], "EDUC6616": ["CONSEJERIA MULTICULTURAL ", "3"], "EDUC6627": ["PRUEB ESFUERZ:METOD,PROC ", "3"], "EDUC6665": ["LIDER ESTRATE ORGAN EDUC ", "3"], "EDUC6669": ["CULT ORGANIZ INSTIT EDUC ", "3"], "EDUC6670": ["INTERNADO LIDE EDUCATIVO I", "3"], "EDUC6709": ["DESAR LENGUAJE AUD-IMPED ", "4"], "EDUC6710": ["AUTISMO:BIOPSICOSOC EDUC ", "3"], "EDUC6720": ["TECNOLOGIAS PARA EL APREND", "3"], "EDUC6726": ["DISENO ELAB ALT TEC AIST ", "3"], "EDUC6740": ["AVALUO AUTISMO ", "3"], "EDUC6746": ["AUTISMO COMUNICACION ", "3"], "EDUC6807": ["INT,TAL CRE:FUN TEN EDUC ", "3"], "EDUC6855": ["EXP INT SAB PRAC EDUC ESPC", "3"], "EDUC6865": ["SEM PROY INV/CREA EDPE DIF", "3"], "EDUC6900": ["EXAMEN DE MATERIA ", "0"], "EDUC6905": ["EXAM CALIFICATIVO DOCTORAL", "0"], "EDUC6995": ["ESTUDIO INDEPENDIENTE ", "1"], "EDUC8001": ["ANAL MULTIVAR EN IVEST EDI", "3"], "EDUC8016": ["TEORIA ORG ADMI EDUC ", "3"], "EDUC8019": ["INVEST EN ORIENT,CONSEJ ", "3"], "EDUC8022": ["APRENDIZAJE A DISTANCIA ", "3"], "EDUC8028": ["EVALUACION DEL CURRICULO ", "3"], "EDUC8029": ["CONSTR,DISENO CURRICULAR ", "3"], "EDUC8030": ["EVAL PROGRAMAS EDUCATIVOS ", "3"], "EDUC8032": ["SEM PAR CAM TEN TEC EDUCII", "1"], "EDUC8038": ["INTROD CONSEJER FAMILIAR ", "3"], "EDUC8050": ["IMPLIC EDUC TEOR CIENCIA ", "3"], "EDUC8058": ["FILO, EPISTE Y ETICA EDUC ", "3"], "EDUC8086": ["SABERES Y GEN:IMPLIC EDUC ", "3"], "EDUC8115": ["INTERNADO EN EL LIDER EDUC", "6"], "EDUC8116": ["ADM EDUC FIL PRAXIS ", "3"], "EDUC8121": ["INTERNADO EN CONSEJERIA ", "3"], "EDUC8122": ["SEM,INTERNADO ORIENT II ", "3"], "EDUC8166": ["TEORIAS MODELOS DISE INST", "3"], "EDUC8167": ["CAMB CURR Y TRANSF EDUCAT ", "3"], "EDUC8170": ["SEM:DESARROLLO CURRICULAR ", "3"], "EDUC8205": ["ANALISIS TEXTO LITERARIO ", "3"], "EDUC8208": ["VIDEOJUEGOS EN LA EDUCACIO", "3"], "EDUC8235": ["SEM:PRAC,TEND ENSEN MATE ", "3"], "EDUC8267": ["ANALISIS CUALITATIVO ", "3"], "EDUC8900": ["EXAMEN DE CANDIDATURA ", "0"], "EDUC8981": ["DISERTACION DOCTORAL ", "6"], "EDUC8982": ["CONT DISERT DOCTORAL ", "0"], "EING6565": ["APREN-ENS INGL 2DO IDIOM ", "3"], "EING6570": ["EDUCACION BILINGUE ", "3"], "EING6577": ["ENSEN LITE CONTEMP INGL ", "3"], "EING6601": ["SEMINARIO INVEST TESL ", "3"]}

+ 1
- 0
primer_sem/Escuela_Derecho.json View File

@@ -0,0 +1 @@
1
+{"DERE7007": ["DERECHOS REALES ", "3"], "DERE7008": ["DERECHO DE FAMILIA ", "3"], "DERE7015": ["DERECHO PENAL ", "3"], "DERE7016": ["OBLIGACIONES Y CONTRATOS ", "4"], "DERE7017": ["DER PROCESAL CIVIL ", "4"], "DERE7018": ["DERECHO CONSTITUCIONAL ", "4"], "DERE7019": ["DER PROCES PENAL ", "4"], "DERE7021": ["JURISDICCION FEDERAL ", "3"], "DERE7025": ["DERECHO Y CAMBIO SOCIAL ", "3"], "DERE7026": ["DERECHO PRUEBA,EVIDENCIA ", "3"], "DERE7027": ["CONTRATOS MERCANTILES ", "3"], "DERE7028": ["DERECHO ADMINISTRATIVO ", "4"], "DERE7029": ["DERECHO DE SUCESIONES ", "3"], "DERE7035": ["DERECHO HIPOTECARIO ", "3"], "DERE7039": ["TEORIA DEL DERECHO ", "3"], "DERE7041": ["CLINICA ASISTENCIA LEGAL ", "3"], "DERE7056": ["ENERGIA Y DERECHO ", "3"], "DERE7066": ["LA PROFESION JURIDICA ", "2"], "DERE7068": ["INVESTIG Y REDAC JURIDIC ", "2"], "DERE7085": ["ASP LEGAL TRANSAC INTERN ", "3"], "DERE7106": ["DERECHOS DE AUTOR ", "3"], "DERE7108": ["INTRODUCCION A PI ", "3"], "DERE7109": ["DERECHO DE PATENTES ", "3"], "DERE7115": ["DERE INTERNACION PUBLICO ", "3"], "DERE7209": ["DERECHO DE INMIGRACION ", "2"], "DERE7296": ["TALL PRAC TRIBS AGENCS ADM", "3"], "DERE7297": ["TALLER AVANZADO DE PRACTIC", "3"], "DERE7309": ["DERE MEDIOS COMUNICACION ", "3"], "DERE7508": ["GARANTIAS MOBILIARIAS ", "3"], "DERE7516": ["SEGUROS ", "3"], "DERE7518": ["DERECHO TRIBUTARIO ", "4"], "DERE7519": ["CONTABILIDAD Y DERECHO ", "2"], "DERE7527": ["LEGISLACION SOCIAL ", "3"], "DERE7528": ["ADMINISTRACION JUDICIAL ", "3"], "DERE7535": ["DERECHO LABORAL ", "4"], "DERE7539": ["LEGIS RECURSOS NATURALES ", "3"], "DERE7540": ["DERE AMBIENT INTERNACION ", "3"], "DERE7545": ["HIST DERE PUERTORRIQUENO ", "3"], "DERE7546": ["CONTRATOS ESPECIALES ", "3"], "DERE7547": ["DERE INTERNAC PRIVADO ", "3"], "DERE7556": ["PRACTICA NOTARIAL I ", "3"], "DERE7570": ["JURISPRUDENCIA TERAPEUTI ", "3"], "DERE7575": ["PRACT FORENSE,APELATIVA ", "2"], "DERE7585": ["ETICA,RESPONSAB PROFES ", "3"], "DERE7590": ["SEM TEMAS CORPS & SOCS ", "2"], "DERE7630": ["SEM TEMAS DERE MERCANT ", "2"], "DERE7640": ["SEM TEMAS EN HIST DERE ", "2"], "DERE7669": ["DERECHO Y LITERATURA ", "3"], "DERE7676": ["SEM TEMAS DERE AMBIENTAL ", "2"], "DERE7678": ["SEM TEMAS DERE CIVIL ", "2"], "DERE7680": ["SEM TEMAS DERE CONST ", "2"], "DERE7686": ["SEM TEMAS DERE INTERNACI ", "2"], "DERE7688": ["SEM TEMAS DERE PROC PENL ", "2"], "DERE7696": ["SEM TEMAS DERE LABORAL ", "2"], "DERE7698": ["SEM TEMAS DERE Y SOCIED ", "2"], "DERE7730": ["MET ALT RES DISPUTAS ", "2"], "DERE7741": ["MEDIACION I ", "3"], "DERE7745": ["ESTUDIO INDEPENDIENTE ", "2"], "DERE7991": ["TEMAS ESPEC DERECHO PRIV ", "3"], "DERE7992": ["INT DERE SEGURIDAD INFOR ", "2"], "DERE7993": ["TEMAS ESPEC DERECHO PRIV ", "2"], "DERE7994": ["GERENCIA DE LA PROF LEGAL ", "2"], "DERE7996": ["TEMAS ESPEC DERECHO PUBL ", "2"], "DERE7996_LAB": ["DESTREZAS LITIGIO PENAL ", "3"], "DERE7997": ["TEMAS ESPEC DERECHO PUBL ", "2"], "DERE7998": ["PRACT ADN POST SENTENCIA ", "2"], "DERE7998_LAB": ["NACIONALIDAD Y CIUDADANIA ", "3"], "DERE7999": ["DERE CONST EDUC ESPECIAL ", "2"], "DERE7999_LAB": ["TEORIA Y PRACT LITIGACION ", "3"]}

+ 1
- 0
primer_sem/Escuela_Grad_Ciencia_Tech_Info.json View File

@@ -0,0 +1 @@
1
+{"CINF6017": ["PROG BIB ESC INT CURRICU ", "3"], "CINF6019": ["FUNCION BIBLIOT EDUC SUP ", "3"], "CINF6209": ["ORG MANEJO DOCS ACCES IN ", "3"], "CINF6415": ["PLANIFICACION ESTRATEGIC ", "1"], "CINF6417": ["ADMINISTRADOR DE DOCUMEN ", "3"], "CINF6705": ["INFO CONOC Y SOCIEDAD ", "3"], "CINF6706": ["METOD INV EN CINF ", "3"], "CINF6707": ["TECNOL INFO CONOCIMIENTO ", "3"], "CINF6708": ["FUND ORGANIZ INFORMA CONOC", "3"], "CINF6800": ["EXP CLINICAS SERV INFO ", "1"], "CINF6805": ["EXP CLINICAS BIB ESCOLAR ", "1"], "CINF6806": ["ORG Y RECUP INFO Y CONOCIM", "3"], "CINF6807": ["PRODUCTS Y SERVICI DE REFE", "3"], "CINF6809": ["SELECC ADQUI REC INFO CONO", "3"], "CINF6815": ["COMP INFORMAC Y TECNOLOGIA", "3"], "CINF6816": ["ADM SERV DE INFORMACION ", "3"], "CINF6905": ["FUNDAM GEREN CONOCIMIENTO ", "3"], "CINF6998": ["SEM APL CONC (CAPSTONE) ", "3"]}

+ 1
- 0
primer_sem/Estudios_Generales.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Humanidades.json
File diff suppressed because it is too large
View File


+ 1
- 0
primer_sem/Humanidades_Grad.json View File

@@ -0,0 +1 @@
1
+{"ESHI6101": ["FUNDAMENTOS LING HISPANICA", "3"], "ESHI6559": ["INVESTIGACION GRADUADA ", "3"], "ESHI6560": ["INVESTIGACION GRADUADA ", "3"], "ESHI6562": ["NOVELA EN HISPANOAMERICA ", "3"], "ESHI6586": ["LIT Y ESFERA PUB EN PR ", "3"], "ESHI6896": ["CONT TESIS DE MAESTRIA ", "0"], "ESHI6900": ["EXAMEN GENERAL DE GRADO ", "0"], "ESHI8513": ["CRITICA LITE:TEOR,PRACT ", "3"], "ESHI8701": ["INVESTIGACION AVANZADA ", "3"], "ESHI8702": ["INVESTIGACION AVANZADA ", "3"], "ESHI8890": ["EXAMEN DE GRADO ", "0"], "ESHI8892": ["CONT TESIS DOCTORAL ", "0"], "ESHI8900": ["EXAMEN DE CANDIDATURA ", "0"], "FILO6017": ["FILOSOFIA PLATONICA ", "1"], "FILO6425": ["EPISTEMOLOGIA ", "3"], "FILO6605": ["INVEST DIRIGIDA FILO I ", "1"], "FILO6895": ["TESIS ", "0"], "FILO6896": ["CONTINUACION DE TESIS ", "0"], "FILO6900": ["EXAMEN GENERAL DE GRADO ", "0"], "FILO6941": ["PROBLEMAS ACTUALES FILO I ", "3"], "GECU6205": ["ADM ESTRAT ORGANI CULTURAL", "3"], "GECU6207": ["POLITICAS CULTURALES ", "3"], "GECU6305": ["GESTION CULT Y COMUNIDAD ", "3"], "GECU6405": ["ARCHIVOS EN ACCION ", "3"], "GECU6901": ["PROPUES GESTION CULTURAL ", "3"], "GECU6902": ["PROYECTO DE CONCLUSION ", "0"], "GECU6993": ["GESTION ARTES VISUALES ", "1"], "GECU6995": ["GES CULT Y COMUNICACION ", "3"], "GECU6999": ["INTERNADO GEST Y ADM CULTU", "3"], "HART5006": ["OPERAC MUSEOS Y GALERIAS ", "3"], "HIST6025": ["SEMINARIO DE TESIS ", "3"], "HIST6026": ["PALEOGRAFIA HISPANOAMER ", "3"], "HIST6051": ["HISTORIOG, CRITICA HIST ", "3"], "HIST6115": ["TEORIA Y MET HIST ORAL ", "3"], "HIST6895": ["TESIS ", "0"], "HIST6896": ["CONTINUACION DE TESIS ", "0"], "HIST8018": ["SEM LECT AMER LAT XIX-XX ", "3"], "HIST8037": ["SEM LECTURA SUPERV III ", "3"], "HIST8045": ["SEM INVEST DIRIGIDA I ", "3"], "HIST8055": ["SEM AMER LAT COLONIAL 1 ", "3"], "HIST8091": ["SEM PROBL E.U.XIX-XX, 1 ", "3"], "HIST8891": ["TESIS DOCTORAL ", "0"], "HIST8892": ["CONT TESIS DOCTORAL ", "0"], "HIST8900": ["PROPUESTA TESIS DOCTORAL ", "3"], "INGL6029": ["SEM:TEMAS ESP EN LITERATUR", "3"], "INGL6051": ["SINTAXIS I ", "3"], "INGL6205": ["SEM DE REDACCION CRITICA ", "3"], "INGL6430": ["SHAKESPEARE:TEMA ESCOGID ", "3"], "INGL6439": ["ESTUDIOS EN LA POESIA ", "3"], "INGL6469": ["SOCIOLING,LENG CRIOLL AM ", "3"], "INGL6489": ["NARRATIVA CARIBE\ufffdA ", "3"], "INGL6496": ["SEM:PROB ANAL INGL CONTEMP", "3"], "INGL6891": ["ENSAYO INVEST LITERATURA I", "3"], "INGL6892": ["ENSAYO INVEST LITE II ", "0"], "INGL6893": ["ENSAYO INVEST LINGUIST I ", "3"], "INGL6894": ["ENSAYO INVEST LINGUIST II ", "0"], "INGL6896": ["CONTINUACION DE TESIS ", "0"], "INGL6905": ["ESTUDIO INDEPENDIENTE ", "3"], "INGL8018": ["DRAMA Y PERFORM CARIBE\ufffdO ", "3"], "INGL8027": ["TIPOLOGIA LENG CRIOLLAS ", "3"], "INGL8045": ["ESTUDIO INDEPENDIENTE ", "3"], "INGL8080": ["CARIB TEMA GLOB TEOR ANA ", "3"], "INGL8099": ["INVE LITE Y LINGUI CARIB ", "0"], "INGL8106": ["SEM:LENGUAJE Y PODER ", "3"], "INGL8890": ["REDAC ENSAYO CRITICO DOC ", "0"], "INGL8891": ["DISERTACION I ", "0"], "INGL8892": ["CONTINUACION DISERTACION ", "0"], "LING6040": ["FONOLOGIA ", "3"], "LING6060": ["TEORIA SEMANTICA ", "3"], "LING6070": ["DIALECTOLOG CARIBE HISP ", "3"], "LING6290": ["LINGUISTICA DEL TEXTO ", "3"], "LING6895": ["TESIS ", "0"], "LING6896": ["CONTINUACION DE TESIS ", "0"], "LING6920": ["EXAMEN GENERAL DE GRADO ", "0"], "LING6995": ["LINGUISTICA INTERDISCIPLIN", "1"], "LITE5008": ["BOCCACCIO, HITA, CHAUCER ", "3"], "LITE6007": ["TEORIA,INVESTIGACION LITER", "3"], "LITE6447": ["ENSAYO GENERO LITERARIO ", "3"], "LITE6465": ["ESTUD NARRATIVA: SIG XIX ", "3"], "LITE6515": ["MELANCOLIA Y MAL DE AMORES", "3"], "LITE6895": ["TESIS O PROYECT CONCLUSION", "0"], "LITE6896": ["CONT DE TESIS O PROY CONCL", "0"], "LITE6900": ["EXAMEN GENERAL DE GRADO ", "0"], "LITE6905": ["INV DIRIG LITE COMPAR 1 ", "3"], "TRAD6006": ["HERRAMIENTAS INFOR TRADUC ", "3"], "TRAD6008": ["TRAD PERIOD GENERO INTERPR", "3"], "TRAD6451": ["SINTAX SUPERIOR ESPAN I ", "3"], "TRAD6453": ["REDACCION Y ESTILO ", "3"], "TRAD6457": ["SINTAXIS INGLESA ", "3"], "TRAD6505": ["TRADUCCION A VISTA ", "3"], "TRAD6600": ["SEMINARIO DE TRADUCCION ", "3"], "TRAD6620": ["SEM:PRACT EN TRADUCCION ", "3"], "TRAD6660": ["SEM TRADUCCION AL INGLES ", "3"], "TRAD6895": ["TESIS ", "0"], "TRAD6896": ["CONTINUACION DE TESIS ", "0"], "TRAD6920": ["EXAMEN GENERAL DE GRADO ", "0"], "TRAD6990": ["NUEVAS TENDENCIAS TRADUCCI", "1"], "TRAD6995": ["FUNDAMENTOS Y METODOS ", "3"]}

+ 1
- 0
primer_sem/Planificacion.json View File

@@ -0,0 +1 @@
1
+{"PLAN5005": ["ECON ESTA Y MATE PLANIF ", "4"], "PLAN6006": ["INTERNADO DE PLANIFICACION", "3"], "PLAN6068": ["PRESERV PATRIMON Y PLANIFI", "3"], "PLAN6075": ["PROYECTO DE INVESTIG II ", "3"], "PLAN6076": ["HIST & TEORIA PLAN ", "3"], "PLAN6089": ["PLANIF URB Y TERRITORIAL ", "3"], "PLAN6116": ["ORDEN JURIDICO PLAN ", "3"], "PLAN6117": ["APLIC COMPUTADOR EN PLAN ", "4"], "PLAN6135": ["SOCIEDAD AMBIENTE Y PLAN ", "3"], "PLAN6513": ["SEM PROP PROYECTO PLANIFIC", "3"], "PLAN6602": ["SIG PARA PLANIFICACION ", "4"], "PLAN6603": ["ELABORACION DE PLANES ", "3"], "PLAN6604": ["TEOR COMUNIDAD Y DES ECON ", "3"], "PLAN6614": ["PROYECTO DE PLANIFICACION ", "3"], "PLAN6896": ["CONTINUACION PROY PLAN ", "0"], "PLAN6995": ["SEM: DESARROLLO PROPUESTAS", "1"], "PLAN6995_LAB": ["RIESGOS Y PLANIFICACIONN ", "3"], "PLAN6996": ["PRACTICA DE PLANIFICACION ", "5"]}

+ 91
- 0
primer_sem/primer_parse.py View File

@@ -0,0 +1,91 @@
1
+import pandas as pd
2
+import json
3
+from os import remove
4
+
5
+
6
+def initial_parse(name, url):
7
+
8
+    table_MN = pd.read_html(url)
9
+    df = table_MN[0]
10
+    
11
+    df.columns = ['Curso', 'Nombre', 'c', 'Dias', 'Hora', 'Salon']
12
+
13
+    upi = df[['Curso', 'Nombre', 'Dias', 'Hora', 'Salon']]
14
+    # print(upi.head())
15
+    # print(upi.to_json(orient='records'))
16
+
17
+    # puedes usar esta alternativa o la de la linea 17
18
+    # upi.to_json(r'C:\Users\diego\Documents\miupi_parse\soup\file.json')
19
+    upi.to_json(f'{name}_temp.json', orient='records')
20
+
21
+
22
+def final_parse(name):
23
+
24
+    with open(f"{name}_temp.json") as f_in:
25
+        data = json.load(f_in)
26
+
27
+    newdata = {}
28
+
29
+   
30
+    for item in data:
31
+        # print(item)
32
+        if(item["Curso"] != None):
33
+            course = item["Curso"][0:8]
34
+            info = item["Nombre"].split("Profesor: ")
35
+            labCourse = course + '_' + 'LAB'
36
+
37
+            courseName = info[0]
38
+            creditos = info[1][-1]
39
+           
40
+
41
+            if(course in newdata):
42
+                if(newdata[course][0] != courseName):
43
+                    newKey = course + '_' + 'LAB'
44
+                    if(newKey not in newdata):
45
+                        newdata[newKey] = []
46
+                        newdata[newKey].append(courseName)
47
+                        newdata[newKey].append(creditos)
48
+            
49
+            else:
50
+                newdata[course] = []
51
+                newdata[course].append(courseName)
52
+                newdata[course].append(creditos)
53
+
54
+
55
+    # print(newdata)
56
+    # print(len(newdata))
57
+
58
+
59
+     
60
+
61
+    with open(f'{name}.json', 'w') as f_out:
62
+        json.dump(newdata, f_out)
63
+
64
+
65
+if __name__ == "__main__":
66
+    faculty_urls = {"Asuntos_Aca": "https://miupi.uprrp.edu/horarios/RBA120_AA.HTML",
67
+                    "Admi": "https://miupi.uprrp.edu/horarios/RBA120_AE.HTML",
68
+                    "Admi_Grad": "https://miupi.uprrp.edu/horarios/RBA120_AE2.HTML",
69
+                    "Arqui": "https://miupi.uprrp.edu/horarios/RBA120_AQ.HTML",
70
+                    "Arqui_Grad": "https://miupi.uprrp.edu/horarios/RBA120_AQ2.HTML",
71
+                    "Escuela_Grad_Ciencia_Tech_Info": "https://miupi.uprrp.edu/horarios/RBA120_CB.HTML",
72
+                    "Ciencias_Militares": "https://miupi.uprrp.edu/horarios/RBA120_CM.HTML",
73
+                    "Ciencias_Naturales": "https://miupi.uprrp.edu/horarios/RBA120_CN.HTML",
74
+                    "Ciencias_Naturales_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CN2.HTML",
75
+                    "Comunicaciones": "https://miupi.uprrp.edu/horarios/RBA120_CP.HTML",
76
+                    "Comunicaciones_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CP2.HTML",
77
+                    "Ciencias_Sociales": "https://miupi.uprrp.edu/horarios/RBA120_CS.HTML",
78
+                    "Ciencias_Sociales_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CS2.HTML	",
79
+                    "Escuela_Derecho": "https://miupi.uprrp.edu/horarios/RBA120_DE.HTML",
80
+                    "Educacion_Continua": "https://miupi.uprrp.edu/horarios/RBA120_EC.HTML",
81
+                    "Educacion": "https://miupi.uprrp.edu/horarios/RBA120_ED.HTML",
82
+                    "Educacion_Grad": "https://miupi.uprrp.edu/horarios/RBA120_ED2.HTML",
83
+                    "Estudios_Generales": "https://miupi.uprrp.edu/horarios/RBA120_EG.HTML",
84
+                    "Humanidades": "https://miupi.uprrp.edu/horarios/RBA120_HU.HTML",
85
+                    "Humanidades_Grad": "https://miupi.uprrp.edu/horarios/RBA120_HU2.HTML",
86
+                    "Planificacion": "https://miupi.uprrp.edu/horarios/RBA120_PL.HTML"}
87
+
88
+    for key in faculty_urls:
89
+        initial_parse(key, faculty_urls[key])
90
+        final_parse(key)
91
+        remove(f"{key}_temp.json")

+ 1
- 0
segundo_sem/Admi2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Admi_Grad2.json View File

@@ -0,0 +1 @@
1
+{"ADMI6510": ["TOMA DE DECISIONES", 3], "ADMI6531": ["GERENCIA Y LIDERAZGO", 3], "ADMI6595": ["GEREN ESTRATEGICA GLOBAL", 3], "ADMI6637": ["ETICA EMPRESARIAL", 3], "ADMI6990": ["MAPEO CADEN VALOR COM INTN", 3], "ADMI6995": ["EXPERIENCIA EDUC COOP", 3], "ADMI8005": ["SEMINARIO DOCTORAL", 1], "ADMI8106": ["CONTINUA DISERTAC DOCTORAL", 1], "COIN6703": ["INV MERC NEGOC INTERNAC", 3], "COIN6706": ["NEGOC INTER AMER LAT CAR", 3], "COIN8016": ["SISTEMAS NEGOCIOS COMPAR", 3], "CONT6501": ["CONT PARA ANALIS,CONTROL", 3], "CONT6701": ["TEORIA,PROB CONT FINA I", 3], "ECOG6567": ["ECONOMIA GERENCIAL", 3], "ECOG8005": ["MACROECONOMIA GERENCIAL", 3], "FING6501": ["FINANZA CORPORTIVA", 3], "FING6707": ["INVERSIONES", 3], "FING6721": ["PSIC Y COMPORT INVERSIONIS", 3], "FING8005": ["TEORIA FINANCIERA I", 3], "GEOP6539": ["GERENCIA DE OPERACIONES", 3], "MECU6551": ["FUND DE ESTADISTICA", 3], "MECU8005": ["ANAL PROBABI ESTAD INTEG", 3], "MERC6541": ["GERENCIA DE MERCADEO", 3]}

+ 1
- 0
segundo_sem/Arqui2.json View File

@@ -0,0 +1 @@
1
+{"ARQU3015": ["SKEPCHUP,AUTOCAD,PHOTOSHOP", 3], "ARQU3015_LAB": ["INTROD DISENO GRAFICO I-II", 1], "ARQU3025": ["INTROD ARQUIT PAISAJISTA", 3], "ARQU3046": ["MATEMATICAS II", 4], "ARQU3121": ["INTRODUCCION A ARQU I", 3], "ARQU3132": ["FUNDAMENTOS DE DISENO II", 5], "ARQU3134": ["DISENO ARQUITEC ELEM II", 5], "ARQU3521": ["FISICA I", 3], "ARQU4037": ["VENTILAC NATURAL EN ARQU", 3], "ARQU4115": ["INTRO PRACTICA PROFESIONAL", 3], "ARQU4134": ["DISE\u00d1O ARQUIT INTERM II", 5], "ARQU4135": ["DISE\u00d1O SINTESIS", 5], "ARQU4212": ["HIST ARQU 2 RENACIMIENTOS", 3], "ARQU4213": ["HIST ARQ 3 ARQ Y MODERNIDD", 3], "ARQU4214": ["HISTORIA DE ARQU EN P.R.", 3], "ARQU4215": ["HIST Y TEO ARQ AME LATINA", 3], "ARQU4310": ["INTRODUCCION A TECNOLOGIA", 3], "ARQU4312": ["TECNOLOGIA II", 3], "ARQU4313": ["TECNOLOGIA ARQUITEC III", 3], "ARQU4321": ["ESTRUCTURAS I", 3], "ARQU4322": ["ESTRUCTURAS II", 3], "ARQU4323": ["ESTRUCTURA III", 3], "ARQU5995": ["SEM INVEST Y TRAB CAMPO", 3]}

+ 1
- 0
segundo_sem/Arqui_Grad2.json View File

@@ -0,0 +1 @@
1
+{"ARQU6145": ["TECNICAS DE INVESTIGACION", 3], "ARQU6312": ["DISENO ARQUITEC AVANZ II", 5], "ARQU6313": ["TESIS DISENO ARQUITEC I", 5], "ARQU6314": ["TESIS DISENO ARQUITEC II", 5], "ARQU6384": ["PRACT PROF:FIRMA DE DISENO", 3], "ARQU6385": ["FINANZAS DE CONSTRUCCION", 3], "ARQU6531": ["ACUSTICA", 3], "ARQU6895": ["TESIS CONTINUADA", 0], "ARQU6992": ["BIM", 3], "ARQU6992_LAB": ["ESTUDIO ESPECIALIZADO", 1]}

+ 1
- 0
segundo_sem/Asuntos_Aca2.json View File

@@ -0,0 +1 @@
1
+{"INTD4000": ["INTERNAD CONGRES-CORDOVA", 9], "INTD4010": ["SEM ACAD WASHINGTON CENT", 3], "INTD4013": ["INTERN CLIN ASIST LEGAL 2", 3], "INTD4994": ["PRIMER EXPER LABORAL SUBGR", 3], "INTD6995": ["PRIMER EXP LABORAL GRADUAD", 3], "PREH4005": ["TEO METODO TECNICAS INVES", 2], "PREH4650": ["REDAC Y SU APLIC:ESPA", 3], "PREH4676": ["FEM TEOR QUEER ESCR HIST", 3], "PREH4676_LAB": ["ETNO OTRO INDIGEN ANTROP", 1], "PREH4900": ["LENGUAJE INCLUSIVO GENERO", 3], "PREH4900_LAB": ["PK DE DROGA ANTI-METASTAS", 1], "PREH4980": ["TESINA DE HONOR", 3], "TARE910C": ["TAREA EQUIV-DIR DEPARTAM", 12], "TARE9163": ["TAREA EQUIV-REPR ACADEM", 3], "TARE9203": ["TAREA EQUIV-INVESTIG 3C", 3], "TARE9206": ["TAREA EQUIV-INVESTIG 6C", 6], "TARE9503": ["TAREA EQUIV-COOR PROG F3C", 3], "TARE9506": ["TAREA EQUIV-COOR PROG F6C", 6], "TARE9523": ["TAREA EQUIV-COOR CLAB F3C", 3], "TARE9603": ["TAREA EQUIV-LAB COM F 3C", 3], "TARE9703": ["TAREA EQUIV-PROY ESP F 3C", 3], "TARE9751": ["TAREA EQUIV-EVAL PROG F 1C", 1], "TARE9753": ["TAREA EQUIV-EVAL PROG F 3C", 3], "TARE9756": ["TAREA EQUIV-EVAL PROG F 6C", 6]}

+ 1
- 0
segundo_sem/Ciencias_Militares2.json View File

@@ -0,0 +1 @@
1
+{"CIMI3012": ["CURSO BASIC C.MILIT II", 2], "CIMI3022": ["CURS BASIC C.MILIT IV", 2], "CIMI4012": ["CURSO AVZ C.MILIT II", 4], "ESAE3002": ["LA FUERZA AEREA DE HOY", 2], "ESAE3012": ["DESARR DEL PODERIO AEREO", 2], "ESAE4002": ["GER,LID EN LA FUERZA AEREA", 4], "ESAE4012": ["SEG NAC SOC AMER CONTEMP", 4]}

+ 1
- 0
segundo_sem/Ciencias_Naturales2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Ciencias_Naturales_Grad2.json View File

@@ -0,0 +1 @@
1
+{"BIOI6991": ["INVES INDEPENDIENTE EN BIO", 1], "BIOI6997": ["INVESTIGACION INDEPENDIENT", 1], "BIOI6997_LAB": ["INVESTIGACION PARA TESIS", 1], "BIOI6998": ["CONTINUACION INVEST TESIS", 0], "BIOI8991": ["INVESTIGACION AVANZADA", 1], "BIOL6002": ["COLOQUIO EN BIOLOGIA II", 1], "BIOL6360": ["BIOINFORMATICA", 3], "BIOL6502": ["BIOL MOLECULAR Y CELULARII", 3], "BIOL6802": ["EVOLUCION", 3], "BIOL6910": ["INVESTIG SUPERVISADA", 2], "BIOL6996": ["INTR USO BIG DATA EN BIOL", 3], "BIOL6999": ["USO DE BIG DATA EN BIOLOG", 4], "BIOL8995": ["SEMINARIO DOCTORAL", 3], "BIOL8997": ["DISERTACION DOCTORAL", 1], "BIOL8998": ["CONTINUACION DE TESIS", 0], "CIAM6115": ["EL AMBIENTE TERRESTRE", 3], "CIAM6116": ["ECOSISTEMAS TROPICALES", 3], "CIAM6118": ["AMBIENTE URBANO", 3], "CIAM6256": ["METODOS ANALISIS ESTADIST", 3], "CIAM6896": ["CONTINUACION TESIS", 0], "CIAM6901": ["SEMINARIO GRADUADO I", 1], "CIAM6910": ["INVESTIGACION GRADUADA", 1], "CIAM6990": ["BIOGEOQUIMICA", 3], "CIAM6990_LAB": ["TOPIC ESP CIEN AMBIENTALES", 1], "CIAM6999": ["INVESTIGACION GRADUADA", 1], "CIAM8120": ["COMUNICAC SOBRE AMBIENTE", 2], "CIAM8990": ["PROC DESAR PRECIPIT NUBES", 1], "CIAM8990_LAB": ["USO DRONES EVAL REC NATURA", 1], "CIAM8999": ["INV GRAD DIS DOCTOR CIAM", 1], "CIAM9000": ["CONT DISERTACION DOCTORAL", 0], "FISI6407": ["LABORATORIO AVANZADO II", 3], "FISI6431": ["TEORIA ELECTROMAGNETICA", 3], "FISI6452": ["MECANICA CUANTICA II", 3], "FISI6453": ["MECANICA CUANTICA III", 3], "FISI6454": ["MECANICA ESTADISTICA", 3], "FISI6500": ["COLOQUIO I Y II", 0], "FISI6896": ["CONTINUACION DE TESIS", 0], "FISI6991": ["INVESTIGACION", 1], "FISI6995": ["SEMINARIO DE INVESTIGACION", 1], "FISI8991": ["INVESTIGACION TESIS DOCT", 1], "FISI8995": ["SEMINARIO EN QUIM-FISICA", 1], "FISI8996": ["TEMAS EN FISICA-QUIMICA", 1], "MATE6202": ["ALGEBRA MODERNA II", 3], "MATE6262": ["FUNC VARIABLES REALES II", 3], "MATE6272": ["ANALISIS MATEMATICO II", 3], "MATE6301": ["FUNC UNA VARIAB COMPLEJA", 3], "MATE6460": ["INTROD ANALIS FUNCIONAL", 3], "MATE6540": ["INTROD A LA TOPOLOGIA", 3], "MATE6602": ["PROBABILIDAD,ESTADIST II", 3], "MATE6605": ["MODELOS ESTOCASTICOS", 3], "MATE6615": ["TEORIA DECI ANAL BAYESIANO", 3], "MATE6682": ["ALGORITMOS", 3], "MATE6882": ["OPTIMIZACION", 3], "MATE6896": ["CONTINUACION DE TESIS", 0], "MATE6990": ["ESTUDIOS INDEPENDIENTES", 3], "MATE6996": ["TESIS", 3], "MATE8021": ["COMBINATORIA ALGEBRAICA I", 3], "MATE8051": ["POLITOPOS CONVEXOS I", 3], "MATE8899": ["CONT DISERTACION DOCTORAL", 0], "MATE8980": ["TEMAS MATEMATICAS PURAS", 1], "MATE8985": ["GEOMETRIA DINAMICA", 3], "MATE8986": ["TEMAS MATEMATICAS DISCRETA", 3], "QUIM6012": ["TEORIA QUIM INORGANICA 2", 3], "QUIM6215": ["TEORIA DE QUIM ANALITICA", 3], "QUIM6412": ["TEORIA QUIM ORGANICA II", 3], "QUIM6611": ["QUIMICA FISICA AVANZADA I", 3], "QUIM6812": ["BIOQUIMICA AVANZADA II", 3], "QUIM6896": ["CONTINUACION DE TESIS", 0], "QUIM6906": ["PRINC, PRACTICAS QUIMICA", 3], "QUIM8006": ["SEM QUIM INORGANICA II", 2], "QUIM8206": ["SEM QUIM ANALITICA", 2], "QUIM8406": ["SEM DE QUIM ORGANICA II", 2], "QUIM8606": ["SEM DE QUIMICA FISICA", 2], "QUIM8802": ["SEMINARIO DE BIOQUIMICA", 2], "QUIM8896": ["CONTINUACION DE TESIS", 0], "QUIM8902": ["SEMINARIO GRADUADO", 1], "QUIM8992": ["APLIC TECN BAS SINCROT ELE", 3], "QUIM8996": ["PROT,ESPECTROSC Y ENFERMED", 3], "QUIM8999": ["INVESTIGACION TESIS", 1], "QUIM8999_LAB": ["INVESTIGACION GRADUADA", 1]}

+ 1
- 0
segundo_sem/Ciencias_Sociales2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Ciencias_Sociales_Grad2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Comunicaciones2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "COMA4011": ["FOTOGRAFIA BASICA", 3], "COMA4038": ["HISTORIA DEL CINE", 3], "COMA4100": ["PRACTICA SUPERVISADA EN TV", 3], "COMA4105": ["PRACTICA SUPERVISADA RADIO", 3], "COMA4106": ["PRACTICA SUPERVIS CINE", 3], "COMA4315": ["GUIONES", 3], "COMA4317": ["DISE\u00d1O GRAFICAS DIGITALES", 3], "COMA4341": ["PRODUCCION DE CINE I", 3], "COMA4342": ["PRODUCCION DE CINE II", 3], "COMA4351": ["PRODUCCION TELEVISION I", 3], "COMA4352": ["PRODUCCION TELEVISION II", 3], "COMA4362": ["PRODUCCION DE RADIO II", 3], "COMA4815": ["SEMINARIO EN CINE", 3], "COMA4991": ["DISEN GRAF PRODUC AUDIOVIS", 1], "COPU4017": ["INTROD A LOS MEDIOS", 3], "COPU4045": ["SEMINARIO AVANZADO COMUNIC", 3], "COPU4136": ["REDAC BASICA MEDIOS COMU", 3], "COPU4355": ["TEORIAS DE LA COMUNICACION", 3], "COPU4365": ["LEGISL MEDIOS Y DEONT INF", 3], "COPU4995": ["VIAJE ESTUD COMUNICACION", 3], "INFP4001": ["REDACCION PERIODISTICA I", 3], "INFP4002": ["REDACCION PERIODISTICA II", 3], "INFP4016": ["INTRODUCCION AL PERIODISMO", 3], "INFP4036": ["DISE\u00d1O PERIOD MULTIMEDIA", 3], "INFP4059": ["PERIODISMO PARA RADIO Y TV", 3], "INFP4097": ["PRACT SUP PERIOD RADIAL", 3], "INFP4099": ["PRACT SUP PERIODISMO TV", 3], "INFP4108": ["PRACT SUPERV FOTOPERIOD", 3], "INFP4109": ["PRACTICA SUPERV PERIOD", 3], "INFP4148": ["REDAC BASICA MEDIOS CONVER", 3], "INFP4809": ["SEMINARIO EN PERIODISMO", 3], "INFP4809_LAB": ["NOTICIARIO PARA TELEVISION", 1], "REPU4018": ["INTR A PUBLI Y REL PUBLIC", 3], "REPU4025": ["REDACCION PARA PUBLICIDAD", 3], "REPU4076": ["CONCEP ANUN AUDIO VID NTEC", 3], "REPU4087": ["PLAN PRODUC EN RELAC PUBL", 3], "REPU4107": ["PRACT SUPER RELAC PUBLIC", 3], "REPU4110": ["PRACT SUPER EN PUBLICIDAD", 3], "REPU4147": ["REDACCION RELAC PUBLICAS", 3], "REPU4155": ["PLANIFICACION DE MEDIOS", 3], "REPU4165": ["CAMPA\u00d1AS RELAC PUBLICAS", 3], "REPU4166": ["CAMPANAS DE PUBLICIDAD", 3]}

+ 1
- 0
segundo_sem/Comunicaciones_Grad2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "COPU6515": ["ESTRUCT PROPIEDAD PODER", 3], "COPU6576": ["TEORIA DEL PERIODISMO", 3], "COPU6661": ["ESTUDIOS INDEPENDIENTES", 3], "COPU6675": ["PRODUCCION SIMBOLICA", 3], "COPU6695": ["SEMINARIO PROPUESTA TESIS", 3], "COPU6696": ["TESIS", 3], "COPU6705": ["SEMINARIO COMUNICACION I", 3], "COPU6726": ["SEMINARION EN PERIOD II", 3], "COPU6895": ["CONTINUACION DE TESIS", 0]}

+ 1
- 0
segundo_sem/Educacion2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Educacion_Continua2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "BEOF3301": ["INTROD A LA CERAMICA I", 3], "BEOF3311": ["TORN ALFAR CERAM CONT I", 3], "BEOF3317": ["RAKU", 3], "BEOF3425": ["INTRODUCCION AL MACRAME", 3], "BEOF3451": ["BATIK EN ARTE CONTEMP I", 3], "BEOF3611": ["INTROD A ORFEBRERIA I", 3], "BEOF3612": ["INTROD A LA ORFEBRERIA II", 3], "BEOF3831": ["INTROD A CALIGRAFIA I", 3], "TEAT1014": ["DANZA CONTEMPORANEA", 0]}

+ 1
- 0
segundo_sem/Educacion_Grad2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "CIEJ6007": ["MET INV CIENCIAS DEL EJER", 3], "CIEJ6019": ["EST INDEPEND EN CS EJER", 3], "CIEJ6035": ["EVAL FISIOL APT FISICA", 3], "EDUC6047": ["EDUC SERV ESCENARIOS EDUC:", 3], "EDUC6058": ["CALCUL,COMPUT ENSEN MATE", 3], "EDUC6095": ["DESAR HIST,FILO ED NINO", 3], "EDUC6098": ["PERSP SOCIOCULT ED NINEZ", 3], "EDUC6116": ["LECTUR PERSPEC PSICOLING", 3], "EDUC6210": ["INTERNAD LIDER EDUCATIV II", 3], "EDUC6290": ["ENSEN HIST Y ESTUD SOC", 3], "EDUC6320": ["PRACT EN ORIENTACION I", 6], "EDUC6360": ["CONSEJERIA GRUPAL", 3], "EDUC6390": ["ESTA APLICADA EN LA EDUC I", 3], "EDUC6400": ["DISENOS DE INVESTIGACION", 3], "EDUC6401": ["ASUNT ETIC LEGALES PROFES", 3], "EDUC6405": ["ESTAD APLIC EDU II", 3], "EDUC6415": ["INVESTIGACION EN ACCION", 3], "EDUC6445": ["PSICO DES HUM CONSE", 3], "EDUC6501": ["CURSO AVAN FUND DE EDUC I", 3], "EDUC6509": ["METODO INVESTIG EN EDUC", 3], "EDUC6511": ["TESIS O PROYEC MAESTRIA", 6], "EDUC6512": ["CONT TESIS O PROYECTO MA", 0], "EDUC6513": ["SEM: INV CUALITAT EDUC", 3], "EDUC6517": ["PRINCIPIOS DE CURRICULO", 3], "EDUC6521": ["LIDER ADM ORGAN EDUCATIVAS", 3], "EDUC6522": ["LID DIDACTICO ADM EDUCAT", 3], "EDUC6539": ["CONSEJERIA OCUPACIONAL", 3], "EDUC6551": ["SEM INV & CREA CURR & ENSE", 3], "EDUC6556": ["SEM ASUN CONTRO LIDER EDUC", 3], "EDUC6588": ["REDAC,ESTILO LENG INVEST", 3], "EDUC6609": ["FILO EDUC E.M.DE HOSTOS", 3], "EDUC6626": ["FUND FIL Y TEO DEL LID ORG", 3], "EDUC6627": ["PRUEB ESFUERZ:METOD,PROC", 3], "EDUC6650": ["PREPARAC CURSOS EN LINEA", 3], "EDUC6665": ["LIDER ESTRATE ORGAN EDUC", 3], "EDUC6670": ["INTERNADO LIDE EDUCATIVO I", 3], "EDUC6708": ["DEFIC LECT AUDIO-IMPED", 3], "EDUC6710": ["AUTISMO:BIOPSICOSOC EDUC", 3], "EDUC6715": ["METODOL ENSENANZA AUTISMO", 3], "EDUC6730": ["DISE\u00d1O CURRIC PROG EDUC", 3], "EDUC6746": ["AUTISMO COMUNICACION", 3], "EDUC6809": ["EVAL AUTENT INST APRENDZ", 3], "EDUC6835": ["CUR ENS DES INT TAL CREA", 3], "EDUC6855": ["EXP INT SAB PRAC EDUC ESPC", 3], "EDUC6865": ["SEM PROY INV/CREA EDPE DIF", 3], "EDUC6900": ["EXAMEN DE MATERIA", 0], "EDUC6905": ["EXAM CALIFICATIVO DOCTORAL", 0], "EDUC6995": ["DIS DESAR PROY APREND LINE", 3], "EDUC6995_LAB": ["TRANS LANGUAGING EN TESL", 1], "EDUC8005": ["PROCESOS COGNOSCITIVOS", 3], "EDUC8006": ["SOCIEDAD Y EDUCACION", 3], "EDUC8016": ["TEORIA ORG ADMI EDUC", 3], "EDUC8019": ["INVEST EN ORIENT,CONSEJ", 3], "EDUC8021": ["MULTIMEDIOS AMBIENTES VIRT", 3], "EDUC8026": ["LIDERAZ ADMI,SUPERV EDUC", 3], "EDUC8028": ["EVALUACION DEL CURRICULO", 3], "EDUC8029": ["CONSTR,DISENO CURRICULAR", 3], "EDUC8030": ["EVAL PROGRAMAS EDUCATIVOS", 3], "EDUC8032": ["SEM PAR CAM TEN TEC EDUCII", 1], "EDUC8040": ["CONS COMUN,ECOLOGIA HUMA", 3], "EDUC8045": ["CURSO AVANZ ENSEN LECTUR", 3], "EDUC8048": ["TEORIA DESARROLLO CURRRICU", 3], "EDUC8069": ["LEY Y EDUCACION", 3], "EDUC8076": ["INVESTIGACION POR ENCUESTA", 3], "EDUC8078": ["TELECOM COMP & APLIC EDUC", 3], "EDUC8079": ["TECNOLOGIA TEC SOC Y EDUC", 3], "EDUC8086": ["SABERES Y GEN:IMPLIC EDUC", 3], "EDUC8115": ["INTERNADO EN EL LIDER EDUC", 6], "EDUC8116": ["ADM EDUC FIL PRAXIS", 3], "EDUC8121": ["INTERNADO EN CONSEJERIA", 3], "EDUC8145": ["IMPL LING INGL 2DO IDIOM", 3], "EDUC8167": ["CAMB CURR Y TRANSF EDUCAT", 3], "EDUC8237": ["SEM:TEMAS INV EDUC MATE", 3], "EDUC8900": ["EXAMEN DE CANDIDATURA", 0], "EDUC8981": ["DISERTACION DOCTORAL", 6], "EDUC8982": ["CONT DISERT DOCTORAL", 0], "EDUC8995": ["LECTOESC Y EDUC NINEZ GUAT", 3], "EING6420": ["METOD AVAN ENS INGL ORAL", 3], "EING6577": ["ENSEN LITE CONTEMP INGL", 3]}

+ 1
- 0
segundo_sem/Escuela_Derecho2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "DERE7000": ["ELECTIVAS GENERALES", 12], "DERE7006": ["RESP EXTRA-CONTRACTUAL", 3], "DERE7007": ["DERECHOS REALES", 3], "DERE7008": ["DERECHO DE FAMILIA", 3], "DERE7015": ["DERECHO PENAL", 3], "DERE7016": ["OBLIGACIONES Y CONTRATOS", 4], "DERE7018": ["DERECHO CONSTITUCIONAL", 4], "DERE7019": ["DER PROCES PENAL", 4], "DERE7021": ["JURISDICCION FEDERAL", 3], "DERE7026": ["DERECHO PRUEBA,EVIDENCIA", 3], "DERE7028": ["DERECHO ADMINISTRATIVO", 4], "DERE7029": ["DERECHO DE SUCESIONES", 3], "DERE7035": ["DERECHO HIPOTECARIO", 3], "DERE7036": ["SOCIEDADES,CORPORACIONES", 3], "DERE7039": ["TEORIA DEL DERECHO", 3], "DERE7042": ["CLINICA ASISTENCIA LEGAL", 3], "DERE7059": ["DERECHO DE MARCAS", 2], "DERE7075": ["DERE,DISCRIMEN POR GENERO", 3], "DERE7087": ["TRANSFERENCIA TECNOLOGIA", 2], "DERE7106": ["DERECHOS DE AUTOR", 3], "DERE7108": ["INTRODUCCION A PI", 3], "DERE7115": ["DERE INTERNACION PUBLICO", 3], "DERE7116": ["SISTEMAS DE PAGO", 3], "DERE7296": ["TALL PRAC TRIBS AGENCS ADM", 3], "DERE7297": ["TALLER AVANZADO DE PRACTIC", 3], "DERE7301": ["REVISTA JURIDICA MERCANT I", 1], "DERE7302": ["REVISTA JURIDICA MERCAN II", 1], "DERE7308": ["DERE INTERNET NUEVAS TECNO", 2], "DERE7309": ["DERE MEDIOS COMUNICACION", 3], "DERE7488": ["REV. JUR JUNTA EDITORIAL", 2], "DERE7508": ["GARANTIAS MOBILIARIAS", 3], "DERE7509": ["LEGAL PRAC RESTR COMPET", 3], "DERE7518": ["DERECHO TRIBUTARIO", 4], "DERE7527": ["LEGISLACION SOCIAL", 3], "DERE7530": ["QUIEBRAS", 3], "DERE7535": ["DERECHO LABORAL", 4], "DERE7546": ["CONTRATOS ESPECIALES", 3], "DERE7556": ["PRACTICA NOTARIAL I", 3], "DERE7558": ["PRACTICA NOTARIAL II", 3], "DERE7575": ["PRACT FORENSE,APELATIVA", 2], "DERE7578": ["HIST DERECHO CONSTIT PR", 3], "DERE7585": ["ETICA,RESPONSAB PROFES", 3], "DERE7588": ["REVISTA JURIDICA I", 1], "DERE7589": ["REVISTA JURIDICA II", 1], "DERE7595": ["DERECHO Y DEPORTE", 3], "DERE7597": ["SEM TEMAS DERE ADMTVO", 2], "DERE7600": ["SEM TEMAS DERE PENAL", 2], "DERE7630": ["SEM TEMAS DERE MERCANT", 2], "DERE7667": ["SEM TEMAS TEORIA DERE", 2], "DERE7669": ["DERECHO Y LITERATURA", 3], "DERE7676": ["SEM TEMAS DERE AMBIENTAL", 2], "DERE7678": ["SEM TEMAS DERE CIVIL", 2], "DERE7680": ["SEM TEMAS DERE CONST", 2], "DERE7686": ["SEM TEMAS DERE INTERNACI", 2], "DERE7690": ["SEM TEMAS ENV JURID AVZD", 2], "DERE7696": ["SEM TEMAS DERE LABORAL", 2], "DERE7698": ["SEM TEMAS DERE Y SOCIED", 2], "DERE7730": ["MET ALT RES DISPUTAS", 2], "DERE7742": ["MEDIACION II", 3], "DERE7745": ["ESTUDIO INDEPENDIENTE", 2], "DERE7991": ["TEMAS ESPEC DERECHO PRIV", 2], "DERE7992": ["TEMAS ESPEC DERECHO PRIV", 2], "DERE7993": ["TEMAS ESPEC DERECHO PRIV", 2], "DERE7994": ["TEMAS ESPEC DERECHO PRIV", 2], "DERE7996": ["TEMAS ESPEC DERECHO PUBL", 3], "DERE7997": ["TEMAS ESPEC DERECHO PUBL", 3], "DERE7998": ["TEMAS ESPEC DERECHO PUBL", 2], "DERE7999": ["TEMAS ESPEC DERECHO PUBL", 2]}

+ 1
- 0
segundo_sem/Escuela_Grad_Ciencia_Tech_Info2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "CINF6208": ["SIST COMPUTARIZADO DOC", 3], "CINF6418": ["SERV INFO TECN ED SUP PR", 3], "CINF6419": ["LOS ARCH ORG DESA LEGI", 2], "CINF6426": ["ADMINISTRACION BIBLIOTEC", 3], "CINF6507": ["CONSERV PRES RESTAUR DOC", 3], "CINF6705": ["INFO CONOC Y SOCIEDAD", 3], "CINF6706": ["METOD INV EN CINF", 3], "CINF6707": ["TECNOL INFO CONOCIMIENTO", 3], "CINF6800": ["EXP CLINICAS SERV INFO", 1], "CINF6806": ["ORG Y RECUP INFO Y CONOCIM", 3], "CINF6807": ["PRODUCTS Y SERVICI DE REFE", 3], "CINF6808": ["ESTUD DE USUA Y NEC INFO", 3], "CINF6815": ["COMP INFORMAC Y TECNOLOGIA", 3], "CINF6995": ["INTROD CURADORIA DIGITAL", 3], "CINF6995_LAB": ["METADATOS", 1], "CINF6996": ["ESTUDIO INDEPENDIENTE", 1], "CINF6998": ["SEM APL CONC (CAPSTONE)", 3]}

+ 1
- 0
segundo_sem/Estudios_Generales2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Humanidades2.json
File diff suppressed because it is too large
View File


+ 1
- 0
segundo_sem/Humanidades_Grad2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "ESHI6019": ["\"NOVELLA Y EL DISCURSO LEG", 3], "ESHI6105": ["LINGUSITICA HISPANICA", 3], "ESHI6546": ["ENSAYO ESPANOL GENER '98", 3], "ESHI6559": ["INVESTIGACION GRADUADA", 3], "ESHI6560": ["INVESTIGACION GRADUADA", 3], "ESHI6705": ["PROBLEMAS LITER PUERTORRIQ", 3], "ESHI6895": ["TESIS DE MAESTRIA", 0], "ESHI6896": ["CONT TESIS DE MAESTRIA", 0], "ESHI6900": ["EXAMEN GENERAL DE GRADO", 0], "ESHI8019": ["POESIA LUIS PALES MATOS", 3], "ESHI8663": ["JOSE MARTI", 3], "ESHI8701": ["INVESTIGACION AVANZADA", 3], "ESHI8702": ["INVESTIGACION AVANZADA", 3], "ESHI8890": ["EXAMEN DE GRADO", 0], "ESHI8891": ["TESIS DOCTORAL", 0], "ESHI8892": ["CONT TESIS DOCTORAL", 0], "ESHI8900": ["EXAMEN DE CANDIDATURA", 0], "ESIN6995": ["SEM INSTIT INVIERN HARVARD", 3], "FILO6026": ["POLITICA Y ETICA ANTIGUA", 1], "FILO6035": ["ETICA", 3], "FILO6302": ["BUDDHISMO Y FILOSOFIA II", 3], "FILO6606": ["INVEST DIRIGIDA FILO II", 3], "FILO6747": ["PSICOLOGIA FILOSOFICA", 3], "FILO6895": ["TESIS", 0], "FILO6896": ["CONTINUACION DE TESIS", 0], "FILO6900": ["EXAMEN GENERAL DE GRADO", 0], "GECU6205": ["ADM ESTRAT ORGANI CULTURAL", 3], "GECU6405": ["ARCHIVOS EN ACCION", 3], "GECU6901": ["PROPUES GESTION CULTURAL", 3], "GECU6902": ["PROYECTO DE CONCLUSION", 3], "GECU6993": ["GESTION ARTES VISUALES", 3], "GECU6994": ["RECAUDACION DE FONDOS", 3], "GECU6994_LAB": ["EVALUACION DE PROYECTOS", 1], "GECU6995": ["MANJ DAT MASIV:MIR ECOS CU", 3], "GECU6999": ["INTERNADO GEST Y ADM CULTU", 3], "HIST6025": ["SEMINARIO DE TESIS", 3], "HIST6029": ["DIPL HISPANOAM S.XIX-SS", 3], "HIST6052": ["HISTORIOG, CRITICA HIST", 3], "HIST6895": ["TESIS", 0], "HIST6896": ["CONTINUACION DE TESIS", 0], "HIST6900": ["EXAMEN GENERAL DE GRADO", 0], "HIST8005": ["SEM INV HIST DE P.R.-I", 3], "HIST8015": ["SEM LECT AMER LAT XIX-XX", 3], "HIST8035": ["SEM LECTURA SUPERV I", 3], "HIST8039": ["SEM TEMAS HIST DE AFRICA", 3], "HIST8045": ["SEM INVEST DIRIGIDA I", 3], "HIST8125": ["SEM HIST DE LA MUJER I", 3], "HIST8891": ["TESIS DOCTORAL", 0], "HIST8892": ["CONT TESIS DOCTORAL", 0], "HIST8900": ["PROPUESTA TESIS DOCTORAL", 3], "INGL6029": ["SEM:TEMAS ESP EN LITERATUR", 3], "INGL6067": ["LITERATURA Y CINE", 1], "INGL6415": ["SEM CRITICA LITE Y TEORIA", 3], "INGL6430": ["SHAKESPEARE:TEMA ESCOGID", 3], "INGL6439": ["ESTUDIOS EN LA POESIA", 3], "INGL6475": ["DIALECT DEL ANGLO-PARLAN", 3], "INGL6499": ["SEM FONOLOGIA DEL INGLES", 3], "INGL6891": ["ENSAYO INVEST LITERATURA I", 3], "INGL6892": ["ENSAYO INVEST LITE II", 0], "INGL6893": ["ENSAYO INVEST LINGUIST I", 3], "INGL6894": ["ENSAYO INVEST LINGUIST II", 0], "INGL6895": ["TESIS", 3], "INGL6896": ["CONTINUACION DE TESIS", 0], "INGL6900": ["EXAMEN GENERAL DE GRADO", 0], "INGL8007": ["SEM:NACI Y MUERTE LENGUAJE", 3], "INGL8020": ["NARRATIVA ESCRITO CARIBE", 3], "INGL8045": ["ESTUDIO INDEPENDIENTE", 3], "INGL8080": ["CARIB TEMA GLOB TEOR ANA", 3], "INGL8099": ["INVE LITE Y LINGUI CARIB", 0], "INGL8201": ["SEMINAR TRABAJO DE CAMPO", 3], "INGL8890": ["REDAC ENSAYO CRITICO DOC", 0], "INGL8891": ["DISERTACION I", 0], "INGL8892": ["CONTINUACION DISERTACION", 0], "LING6008": ["ESPA E.U.GRAMAT CONTACTO", 3], "LING6015": ["PRODUCCION DE TEXTOS", 3], "LING6020": ["METODOS INVEST LING MODE", 3], "LING6040": ["FONOLOGIA", 3], "LING6050": ["MORFOSINTAXIS", 3], "LING6590": ["SEM EN LING HISTORICA", 3], "LING6895": ["TESIS", 0], "LING6896": ["CONTINUACION DE TESIS", 0], "LING6920": ["EXAMEN GENERAL DE GRADO", 0], "LING6995": ["LINGUISTICA INTERDISCIPLIN", 1], "LITE6019": ["NOVELLA EUROPEA Y DISC LEG", 3], "LITE6465": ["ESTUD NARRATIVA: SIG XIX", 3], "LITE6895": ["TESIS", 0], "LITE6896": ["CONTINUACION DE TESIS", 0], "LITE6900": ["EXAMEN GENERAL DE GRADO", 0], "LITE6905": ["INV DIRIG LITE COMPAR 1", 3], "LITE6991": ["CUERPO, MEMORIA, ESCRITURA", 1], "TRAD6007": ["TRAD TXT PERIOD:ING A ESPN", 3], "TRAD6108": ["TRAD COMERC ESPA-INGL", 3], "TRAD6452": ["SINTAX SUPERIOR ESPAN II", 3], "TRAD6454": ["REDACCION Y ESTILO", 3], "TRAD6455": ["SEMIOTICA", 3], "TRAD6457": ["SINTAXIS INGLESA", 3], "TRAD6505": ["TRADUCCION A VISTA", 3], "TRAD6526": ["SEM REDACCION EN INGLES", 3], "TRAD6620": ["SEM:PRACT TRAD ESPAN A ING", 3], "TRAD6640": ["TRADUC PAR MUSEO:ESP A ING", 3], "TRAD6650": ["TRADUC Y DEPORT-INGL A ESP", 3], "TRAD6700": ["TRAD TEXT PERIOD ING-ESPAN", 3], "TRAD6895": ["TESIS", 0], "TRAD6896": ["CONTINUACION DE TESIS", 0], "TRAD6920": ["EXAMEN GENERAL DE GRADO", 0], "TRAD6990": ["REDAC,EDIC,REVS TRADUC ING", 3]}

+ 1
- 0
segundo_sem/Planificacion2.json View File

@@ -0,0 +1 @@
1
+{"Horario ": ["Horario SEGUNDO SEMESTRE 2018-2019"], "PLAN6006": ["INTERNADO DE PLANIFICACION", 3], "PLAN6068": ["LECT AVANZADA EN PLAN", 1], "PLAN6077": ["MARCOS INST PROCE IMPLANTA", 3], "PLAN6117": ["APLIC COMPUTADOR EN PLAN", 4], "PLAN6118": ["ESTUDIO DE NECESIDADES", 3], "PLAN6513": ["SEM PROP PROYECTO PLANIFIC", 3], "PLAN6525": ["ESTRUCTURA URBANA", 4], "PLAN6537": ["FINANC DES URB VIVIENDA", 3], "PLAN6552": ["METODOS ANALISIS PLAN II", 3], "PLAN6584": ["EVALUA PLANES PROG PROYEC", 3], "PLAN6610": ["PLAN DEL SECTOR PUBLICO", 3], "PLAN6614": ["PROYECTO DE PLANIFICACION", 3], "PLAN6617": ["POLIT AMBIEN,RECUR NATUR", 3], "PLAN6896": ["CONTINUACION PROY PLAN", 0], "PLAN6995": ["LECTURA AVANZADA EN PLAN", 1]}

+ 101
- 0
segundo_sem/second_parser.py View File

@@ -0,0 +1,101 @@
1
+import pandas as pd
2
+import json
3
+from os import remove
4
+
5
+
6
+def initial_parse(name, url):
7
+
8
+    table_MN = pd.read_html(url)
9
+    df = table_MN[0]
10
+    del df[5]
11
+    df.columns = ['Curso', 'Nombre', 'c', 'Dias', 'Hora', 'Salon']
12
+
13
+    upi = df[['Curso', 'Nombre', 'Dias', 'Hora', 'Salon']]
14
+    # print(upi.head())
15
+    # print(upi.to_json(orient='records'))
16
+
17
+    # puedes usar esta alternativa o la de la linea 17
18
+    # upi.to_json(r'C:\Users\diego\Documents\miupi_parse\soup\file.json')
19
+    upi.to_json(f'{name}2_temp.json', orient='records')
20
+
21
+
22
+def final_parse(name):
23
+
24
+    with open(f"{name}2_temp.json") as f_in:
25
+        data = json.load(f_in)
26
+
27
+    newdata = {}
28
+
29
+   
30
+    for item in data:
31
+        # print(item)
32
+        course = item["Curso"][0:8]
33
+        info = item["Nombre"]
34
+        labCourse = course + '_' + 'LAB'
35
+
36
+        if(course in newdata):
37
+            if( (newdata[course][0] != info) and ('Créditos' not in info) and ('Prof.' not in info)):
38
+                newKey = course + '_' + 'LAB'
39
+                if(newKey not in newdata):
40
+                    newdata[newKey] = []
41
+                    newdata[newKey].append(info)
42
+                    if(info == 'LABORATORIO'):
43
+                        newdata[newKey].append(0)
44
+                    elif(info == 'LABORATORIO INTERMED II'):
45
+                        newdata[newKey].append(2)
46
+                    else:
47
+                        newdata[newKey].append(1)
48
+
49
+
50
+            elif('Prof.' in info):
51
+                pass
52
+
53
+            elif('Créditos' in info):
54
+                creditos = info.split()
55
+                if (newdata[course][0] == "INVESTIG NO GRADUADA"):
56
+                    newdata[course].append(int(creditos[0]))
57
+                elif(len(newdata[course]) == 1):
58
+                    newdata[course].append(int(creditos[0]))
59
+        
60
+        else:
61
+            newdata[course] = []
62
+            newdata[course].append(info)
63
+
64
+    # print(newdata)
65
+    # print(len(newdata))
66
+
67
+
68
+     
69
+
70
+    with open(f'{name}2.json', 'w') as f_out:
71
+        json.dump(newdata, f_out)
72
+
73
+
74
+if __name__ == "__main__":
75
+    faculty_urls = {"Asuntos_Aca": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_AA.HTML",
76
+                    "Admi": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_AE.HTML",
77
+                    "Admi_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_AE2.HTML",
78
+                    "Arqui": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_AQ.HTML",
79
+                    "Arqui_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_AQ2.HTML",
80
+                    "Escuela_Grad_Ciencia_Tech_Info": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CB.HTML",
81
+                    "Ciencias_Militares": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CM.HTML",
82
+                    "Ciencias_Naturales": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CN.HTML",
83
+                    "Ciencias_Naturales_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CN2.HTML",
84
+                    "Comunicaciones": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CP.HTML",
85
+                    "Comunicaciones_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CP2.HTML",
86
+                    "Ciencias_Sociales": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CS.HTML",
87
+                    "Ciencias_Sociales_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_CS2.HTML	",
88
+                    "Escuela_Derecho": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_DE.HTML",
89
+                    "Educacion_Continua": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_EC.HTML",
90
+                    "Educacion": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_ED.HTML",
91
+                    "Educacion_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_ED2.HTML",
92
+                    "Estudios_Generales": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_EG.HTML",
93
+                    "Humanidades": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_HU.HTML",
94
+                    "Humanidades_Grad": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_HU2.HTML",
95
+                    "Planificacion": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_PL.HTML"}
96
+    # faculty_urls = {"Generales": "https://miupi.uprrp.edu/horarios/enero-2019/RBA120_EG.HTML"}
97
+   
98
+    for key in faculty_urls:
99
+        initial_parse(key, faculty_urls[key])
100
+        final_parse(key)
101
+        remove(f"{key}2_temp.json")

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


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


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


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


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


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


+ 5
- 0
server/CompanionApp/admin.py View File

@@ -1,3 +1,8 @@
1 1
 from django.contrib import admin
2
+from .models import Curso, Facultad, User,Matricula
2 3
 
3 4
 # Register your models here.
5
+admin.site.register(Facultad)
6
+admin.site.register(Curso)
7
+admin.site.register(User)
8
+admin.site.register(Matricula)

+ 59
- 1
server/CompanionApp/migrations/0001_initial.py View File

@@ -1,6 +1,10 @@
1
-# Generated by Django 3.1.2 on 2020-10-08 23:09
1
+# Generated by Django 3.0.8 on 2020-11-02 23:35
2 2
 
3
+import django.contrib.auth.models
4
+import django.contrib.auth.validators
3 5
 from django.db import migrations, models
6
+import django.db.models.deletion
7
+import django.utils.timezone
4 8
 
5 9
 
6 10
 class Migration(migrations.Migration):
@@ -8,6 +12,7 @@ class Migration(migrations.Migration):
8 12
     initial = True
9 13
 
10 14
     dependencies = [
15
+        ('auth', '0011_update_proxy_permissions'),
11 16
     ]
12 17
 
13 18
     operations = [
@@ -16,6 +21,59 @@ class Migration(migrations.Migration):
16 21
             fields=[
17 22
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 23
                 ('name', models.CharField(max_length=150)),
24
+                ('code', models.CharField(max_length=9)),
25
+                ('creditos', models.IntegerField(default=0)),
19 26
             ],
20 27
         ),
28
+        migrations.CreateModel(
29
+            name='Facultad',
30
+            fields=[
31
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
32
+                ('fname', models.CharField(max_length=150)),
33
+            ],
34
+        ),
35
+        migrations.CreateModel(
36
+            name='User',
37
+            fields=[
38
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
39
+                ('password', models.CharField(max_length=128, verbose_name='password')),
40
+                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
41
+                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
42
+                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
43
+                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
44
+                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
45
+                ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
46
+                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
47
+                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
48
+                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
49
+                ('gpa', models.DecimalField(decimal_places=2, default=0, max_digits=3)),
50
+                ('fac_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Facultad')),
51
+                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
52
+                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
53
+            ],
54
+            options={
55
+                'verbose_name': 'user',
56
+                'verbose_name_plural': 'users',
57
+                'abstract': False,
58
+            },
59
+            managers=[
60
+                ('objects', django.contrib.auth.models.UserManager()),
61
+            ],
62
+        ),
63
+        migrations.CreateModel(
64
+            name='Matricula',
65
+            fields=[
66
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
67
+                ('section', models.CharField(max_length=5)),
68
+                ('prof', models.CharField(max_length=150)),
69
+                ('grade', models.CharField(max_length=3)),
70
+                ('semestre', models.IntegerField(default=0)),
71
+                ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Curso')),
72
+            ],
73
+        ),
74
+        migrations.AddField(
75
+            model_name='curso',
76
+            name='fac_id',
77
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Facultad'),
78
+        ),
21 79
     ]

+ 24
- 0
server/CompanionApp/migrations/0002_auto_20201103_2016.py View File

@@ -0,0 +1,24 @@
1
+# Generated by Django 3.0.8 on 2020-11-04 00:16
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('CompanionApp', '0001_initial'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AlterField(
15
+            model_name='matricula',
16
+            name='grade',
17
+            field=models.CharField(default='N', max_length=3),
18
+        ),
19
+        migrations.AlterField(
20
+            model_name='user',
21
+            name='fac_id',
22
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Facultad'),
23
+        ),
24
+    ]

+ 0
- 19
server/CompanionApp/migrations/0002_curso_code.py View File

@@ -1,19 +0,0 @@
1
-# Generated by Django 3.1.2 on 2020-10-08 23:11
2
-
3
-from django.db import migrations, models
4
-
5
-
6
-class Migration(migrations.Migration):
7
-
8
-    dependencies = [
9
-        ('CompanionApp', '0001_initial'),
10
-    ]
11
-
12
-    operations = [
13
-        migrations.AddField(
14
-            model_name='curso',
15
-            name='code',
16
-            field=models.CharField(default=0, max_length=9),
17
-            preserve_default=False,
18
-        ),
19
-    ]

+ 16
- 0
server/CompanionApp/migrations/0003_delete_matricula.py View File

@@ -0,0 +1,16 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 16:30
2
+
3
+from django.db import migrations
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('CompanionApp', '0002_auto_20201103_2016'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.DeleteModel(
14
+            name='Matricula',
15
+        ),
16
+    ]

+ 32
- 0
server/CompanionApp/migrations/0004_matricula.py View File

@@ -0,0 +1,32 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 16:32
2
+
3
+from django.conf import settings
4
+from django.db import migrations, models
5
+import django.db.models.deletion
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('CompanionApp', '0003_delete_matricula'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.CreateModel(
16
+            name='Matricula',
17
+            fields=[
18
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+                ('section', models.CharField(blank=True, max_length=5, null=True)),
20
+                ('prof', models.CharField(blank=True, max_length=150, null=True)),
21
+                ('semestre', models.IntegerField(default=0)),
22
+                ('year', models.IntegerField(default=0)),
23
+                ('fecha', models.CharField(blank=True, max_length=150)),
24
+                ('grade', models.CharField(default='N', max_length=3)),
25
+                ('salones', models.CharField(blank=True, max_length=100)),
26
+                ('horarios', models.CharField(blank=True, max_length=150)),
27
+                ('dias', models.CharField(blank=True, max_length=100)),
28
+                ('course_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Curso')),
29
+                ('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
30
+            ],
31
+        ),
32
+    ]

+ 23
- 0
server/CompanionApp/migrations/0005_auto_20201114_1747.py View File

@@ -0,0 +1,23 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 21:47
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('CompanionApp', '0004_matricula'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='user',
15
+            name='credits_score',
16
+            field=models.IntegerField(default=0),
17
+        ),
18
+        migrations.AddField(
19
+            model_name='user',
20
+            name='credits_taken',
21
+            field=models.IntegerField(default=0),
22
+        ),
23
+    ]

+ 17
- 0
server/CompanionApp/migrations/0006_remove_user_credits_score.py View File

@@ -0,0 +1,17 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 23:07
2
+
3
+from django.db import migrations
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('CompanionApp', '0005_auto_20201114_1747'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.RemoveField(
14
+            model_name='user',
15
+            name='credits_score',
16
+        ),
17
+    ]

+ 23
- 0
server/CompanionApp/migrations/0007_auto_20201114_1934.py View File

@@ -0,0 +1,23 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 23:34
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('CompanionApp', '0006_remove_user_credits_score'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AlterField(
14
+            model_name='matricula',
15
+            name='horarios',
16
+            field=models.CharField(blank=True, max_length=150, null=True),
17
+        ),
18
+        migrations.AlterField(
19
+            model_name='matricula',
20
+            name='salones',
21
+            field=models.CharField(blank=True, max_length=100, null=True),
22
+        ),
23
+    ]

+ 18
- 0
server/CompanionApp/migrations/0008_auto_20201114_1935.py View File

@@ -0,0 +1,18 @@
1
+# Generated by Django 3.0.8 on 2020-11-14 23:35
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('CompanionApp', '0007_auto_20201114_1934'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AlterField(
14
+            model_name='matricula',
15
+            name='dias',
16
+            field=models.CharField(blank=True, max_length=100, null=True),
17
+        ),
18
+    ]

BIN
server/CompanionApp/migrations/__pycache__/0001_initial.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0002_auto_20201103_2016.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0002_curso_code.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0003_auto_20201114_1146.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0003_delete_matricula.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0004_auto_20201114_1147.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0004_matricula.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0005_auto_20201114_1148.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0005_auto_20201114_1747.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0006_auto_20201114_1149.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0006_remove_user_credits_score.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0007_auto_20201114_1934.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0007_matricula_salones.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0008_auto_20201114_1935.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0008_remove_matricula_salones.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0009_prueba.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0010_delete_prueba.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0011_delete_matricula.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0012_matricula.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0013_matricula_user_id.cpython-38.pyc View File


BIN
server/CompanionApp/migrations/__pycache__/0014_matricula_course_id.cpython-38.pyc View File


+ 0
- 0
server/CompanionApp/migrations/__pycache__/0015_auto_20201114_1208.cpython-38.pyc View File


Some files were not shown because too many files changed in this diff