4 커밋

작성자 SHA1 메시지 날짜
  Daniel Suazo 1d7f0b2107 Merge branch 'Master' into Suazo 4 년 전
  Daniel Suazo ad53754f9a Added Classrooms to json files 4 년 전
  Daniel Suazo 5fcb8be3a3 Miupi Parsing added 4 년 전
  Daniel Suazo 7661265168 I actually got the branches right this time 5 년 전
50개의 변경된 파일32025개의 추가작업 그리고 1개의 파일을 삭제
  1. 1
    0
      Humanidades.json
  2. 1
    0
      Miupi Parser/Admi.json
  3. 1
    0
      Miupi Parser/Admi_Grad.json
  4. 1
    0
      Miupi Parser/Arqui.json
  5. 1
    0
      Miupi Parser/Arqui_Grad.json
  6. 1
    0
      Miupi Parser/Asuntos_Aca.json
  7. 1
    0
      Miupi Parser/Ciencia_Tech_Info_Grad.json
  8. 1
    0
      Miupi Parser/Ciencias_Militares.json
  9. 1
    0
      Miupi Parser/Comunicaciones.json
  10. 1
    0
      Miupi Parser/Comunicaciones_Grad.json
  11. 1
    0
      Miupi Parser/Derecho.json
  12. 1
    0
      Miupi Parser/Educacion.json
  13. 1
    0
      Miupi Parser/Educacion_Continua.json
  14. 1
    0
      Miupi Parser/Educacion_Grad.json
  15. 1
    0
      Miupi Parser/Generales.json
  16. 1
    0
      Miupi Parser/Humanidades.json
  17. 1
    0
      Miupi Parser/Humanidades_Grad.json
  18. 6886
    0
      Miupi Parser/Naturales.json
  19. 1
    0
      Miupi Parser/Naturales_Grad.json
  20. 1
    0
      Miupi Parser/Planificacion.json
  21. 1
    0
      Miupi Parser/Sociales.json
  22. 1
    0
      Miupi Parser/Sociales_Grad.json
  23. 95
    0
      Miupi Parser/parse.py
  24. 1
    0
      Planificacion.json
  25. 0
    1
      README.md
  26. 24760
    0
      natu.html
  27. 0
    0
      server/CompanionApp/__init__.py
  28. BIN
      server/CompanionApp/__pycache__/__init__.cpython-38.pyc
  29. BIN
      server/CompanionApp/__pycache__/admin.cpython-38.pyc
  30. BIN
      server/CompanionApp/__pycache__/models.cpython-38.pyc
  31. 3
    0
      server/CompanionApp/admin.py
  32. 5
    0
      server/CompanionApp/apps.py
  33. 21
    0
      server/CompanionApp/migrations/0001_initial.py
  34. 19
    0
      server/CompanionApp/migrations/0002_curso_code.py
  35. 0
    0
      server/CompanionApp/migrations/__init__.py
  36. BIN
      server/CompanionApp/migrations/__pycache__/0001_initial.cpython-38.pyc
  37. BIN
      server/CompanionApp/migrations/__pycache__/0002_curso_code.cpython-38.pyc
  38. BIN
      server/CompanionApp/migrations/__pycache__/__init__.cpython-38.pyc
  39. 8
    0
      server/CompanionApp/models.py
  40. 3
    0
      server/CompanionApp/tests.py
  41. 3
    0
      server/CompanionApp/views.py
  42. 22
    0
      server/manage.py
  43. 0
    0
      server/restful/__init__.py
  44. BIN
      server/restful/__pycache__/__init__.cpython-38.pyc
  45. BIN
      server/restful/__pycache__/settings.cpython-38.pyc
  46. BIN
      server/restful/__pycache__/urls.cpython-38.pyc
  47. 16
    0
      server/restful/asgi.py
  48. 125
    0
      server/restful/settings.py
  49. 21
    0
      server/restful/urls.py
  50. 16
    0
      server/restful/wsgi.py

+ 1
- 0
Humanidades.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Admi.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Admi_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Arqui.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Arqui_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Asuntos_Aca.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Ciencia_Tech_Info_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Ciencias_Militares.json 파일 보기

@@ -0,0 +1 @@
1
+[{"Curso": "CIMI3011", "Seccion": "001", "Profesor": "MCGEE, SHANNON ", "Nombre": "CURSO BASIC C. MILIT I", "Dias": ["LW"], "Horario": ["01:00PM-01:50PM"], "Salones": ["DM-001"], "Info_Extra": ""}, {"Curso": "CIMI3021", "Seccion": "001", "Profesor": "MEYERS, JOSHUA ", "Nombre": "CURS BASIC C.MILIT III", "Dias": ["LW"], "Horario": ["10:30AM-11:20AM"], "Salones": ["DM-002"], "Info_Extra": ""}, {"Curso": "CIMI4011", "Seccion": "001", "Profesor": "MEYERS, JOSHUA ", "Nombre": "COM Y PSIC EN LID MILITAR", "Dias": ["LW"], "Horario": ["08:00PM-09:50PM"], "Salones": ["DM-001"], "Info_Extra": ""}, {"Curso": "CIMI4021", "Seccion": "001", "Profesor": "ROJAS, ORLANDO ", "Nombre": "LID Y ADM OPERACIONES MIL", "Dias": ["MJ"], "Horario": ["06:30AM-08:50AM"], "Salones": [], "Info_Extra": ""}, {"Curso": "ESAE3001", "Seccion": "001", "Profesor": "TORRES, C. ", "Nombre": "LA FUERZA AEREA DE HOY", "Dias": ["L", "V"], "Horario": ["09:00AM-09:50AM", "09:00AM-10:50AM"], "Salones": ["DM-001", "DM-001"], "Info_Extra": ""}, {"Curso": "ESAE3001", "Seccion": "002", "Profesor": "TORRES, C. ", "Nombre": "LA FUERZA AEREA DE HOY", "Dias": ["D"], "Horario": ["TBA"], "Salones": [], "Info_Extra": ""}, {"Curso": "ESAE3011", "Seccion": "002", "Profesor": "NIEVES,RICARDO ", "Nombre": "DESARR DEL PODERIO AEREO", "Dias": ["W", "V"], "Horario": ["09:00AM-09:50AM", "09:00AM-10:50AM"], "Salones": [], "Info_Extra": ""}, {"Curso": "ESAE4001", "Seccion": "001", "Profesor": "MENDOZA, JOEL ", "Nombre": "GER,LID EN LA FUERZA AERE", "Dias": ["LW", "V"], "Horario": ["10:00AM-11:20AM", "09:00AM-10:50AM"], "Salones": [], "Info_Extra": ""}, {"Curso": "ESAE4011", "Seccion": "001", "Profesor": "NIEVES, RICARDO", "Nombre": "SEG NAC SOC AMER CONTEMP", "Dias": ["LW", "V"], "Horario": ["10:00AM-11:20AM", "09:00AM-10:50AM"], "Salones": [], "Info_Extra": ""}]

+ 1
- 0
Miupi Parser/Comunicaciones.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Comunicaciones_Grad.json 파일 보기

@@ -0,0 +1 @@
1
+[{"Curso": "COPU6500", "Seccion": "2U1", "Profesor": "ROCHE,MARIO ", "Nombre": "TEORIAS DE LA COMUNICACIO", "Dias": ["M"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4112"], "Info_Extra": "* Curso no se ofrecer\u00e1 en el 2DO SEM *"}, {"Curso": "COPU6517", "Seccion": "2U1", "Profesor": "RAMIREZ,RUBEN ", "Nombre": "CULT Y ESTRUC MEDIATICAS", "Dias": ["W"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4112"], "Info_Extra": "* Curso no se ofrecer\u00e1 en el 2DO SEM *"}, {"Curso": "COPU6667", "Seccion": "2U1", "Profesor": "COLON,ELISEO ", "Nombre": "PERSP Y METOD INV EN COM", "Dias": ["L"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4088"], "Info_Extra": "* Curso no se ofrecer\u00e1 en el 2DO SEM *"}, {"Curso": "COPU6698", "Seccion": "0U1", "Profesor": "COLON,ELISEO ", "Nombre": "CONT EXP INVEST DIV MODS", "Dias": ["J"], "Horario": ["06:00PM-08:50PM"], "Salones": [], "Info_Extra": ""}, {"Curso": "COPU6707", "Seccion": "001", "Profesor": "COLON,ELISEO ", "Nombre": "SEMINAR COMUNICACION III", "Dias": ["M"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4110"], "Info_Extra": ""}, {"Curso": "COPU6707", "Seccion": "002", "Profesor": "ALVARADO, G. ", "Nombre": "SEMINAR COMUNICACION III", "Dias": ["L"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4110"], "Info_Extra": ""}, {"Curso": "COPU6726", "Seccion": "2U1", "Profesor": "ROCHE,MARIO ", "Nombre": "SEMINARION EN PERIOD II", "Dias": ["J"], "Horario": ["06:00PM-08:50PM"], "Salones": ["PLAZU-4110"], "Info_Extra": "* Curso no se ofrecer\u00e1 en el 2DO SEM *"}]

+ 1
- 0
Miupi Parser/Derecho.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Educacion.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Educacion_Continua.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Educacion_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Generales.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Humanidades.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Humanidades_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 6886
- 0
Miupi Parser/Naturales.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Naturales_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Planificacion.json 파일 보기

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

+ 1
- 0
Miupi Parser/Sociales.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 0
Miupi Parser/Sociales_Grad.json
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 95
- 0
Miupi Parser/parse.py 파일 보기

@@ -0,0 +1,95 @@
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
+    df.columns = ['Curso', 'Nombre', 'c', 'Dias', 'Hora', 'Salon']
11
+
12
+    upi = df[['Curso', 'Nombre', 'Dias', 'Hora', 'Salon']]
13
+    # print(upi.head())
14
+    # print(upi.to_json(orient='records'))
15
+
16
+    # puedes usar esta alternativa o la de la linea 17
17
+    # upi.to_json(r'C:\Users\diego\Documents\miupi_parse\soup\file.json')
18
+    upi.to_json(f'{name}_temp.json', orient='records')
19
+
20
+
21
+def final_parse(name):
22
+
23
+    with open(f"{name}_temp.json") as f_in:
24
+        data = json.load(f_in)
25
+
26
+    newdata = []
27
+
28
+    for item in data:
29
+        if(item["Curso"] == None):
30
+            pass
31
+        else:
32
+            course = {}
33
+
34
+            course["Curso"] = item["Curso"][0:8]
35
+            course["Seccion"] = item["Curso"][9:12]
36
+
37
+            info = item["Nombre"].split("Profesor: ")
38
+            if((profesor := info[1][0:-11]) != ""):
39
+                course["Profesor"] = profesor
40
+            else:
41
+                course["Profesor"] = "TBA"
42
+
43
+            course["Nombre"] = info[0][0:-1]
44
+            course["Dias"] = item["Dias"].split(" ")
45
+
46
+            horario = []
47
+            if(item["Hora"] != None):
48
+                for i in range(len(course["Dias"])):
49
+                    horario.append(item["Hora"][15*i:15*(i+1)])
50
+            else:
51
+                horario.append("TBA")
52
+            course["Horario"] = horario
53
+
54
+            salones_raw = item["Salon"].split("Edificio: ")
55
+            salones = []
56
+            for i in salones_raw:
57
+                if(i != "-" and i != "- " and i != ""):
58
+                    salones.append(i[:-1])
59
+            course["Salones"] = salones
60
+
61
+            course["Info_Extra"] = item["Curso"][13:-1]
62
+
63
+            newdata.append(course)
64
+
65
+    with open(f'{name}.json', 'w') as f_out:
66
+        json.dump(newdata, f_out)
67
+
68
+
69
+if __name__ == "__main__":
70
+    faculty_urls = {"Asuntos_Aca": "https://miupi.uprrp.edu/horarios/RBA120_AA.HTML",
71
+                    "Admi": "https://miupi.uprrp.edu/horarios/RBA120_AE.HTML",
72
+                    "Admi_Grad": "https://miupi.uprrp.edu/horarios/RBA120_AE2.HTML",
73
+                    "Arqui": "https://miupi.uprrp.edu/horarios/RBA120_AQ.HTML",
74
+                    "Arqui_Grad": "https://miupi.uprrp.edu/horarios/RBA120_AQ2.HTML",
75
+                    "Ciencia_Tech_Info_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CB.HTML",
76
+                    "Ciencias_Militares": "https://miupi.uprrp.edu/horarios/RBA120_CM.HTML",
77
+                    "Naturales": "https://miupi.uprrp.edu/horarios/RBA120_CN.HTML",
78
+                    "Naturales_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CN2.HTML",
79
+                    "Comunicaciones": "https://miupi.uprrp.edu/horarios/RBA120_CP.HTML",
80
+                    "Comunicaciones_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CP2.HTML",
81
+                    "Sociales": "https://miupi.uprrp.edu/horarios/RBA120_CS.HTML",
82
+                    "Sociales_Grad": "https://miupi.uprrp.edu/horarios/RBA120_CS2.HTML	",
83
+                    "Derecho": "https://miupi.uprrp.edu/horarios/RBA120_DE.HTML",
84
+                    "Educacion_Continua": "https://miupi.uprrp.edu/horarios/RBA120_EC.HTML",
85
+                    "Educacion": "https://miupi.uprrp.edu/horarios/RBA120_ED.HTML",
86
+                    "Educacion_Grad": "https://miupi.uprrp.edu/horarios/RBA120_ED2.HTML",
87
+                    "Generales": "https://miupi.uprrp.edu/horarios/RBA120_EG.HTML",
88
+                    "Humanidades": "https://miupi.uprrp.edu/horarios/RBA120_HU.HTML",
89
+                    "Humanidades_Grad": "https://miupi.uprrp.edu/horarios/RBA120_HU2.HTML",
90
+                    "Planificacion": "https://miupi.uprrp.edu/horarios/RBA120_PL.HTML"}
91
+    #initial_parse("Naturales", faculty_urls["Naturales"])
92
+    for key in faculty_urls:
93
+        initial_parse(key, faculty_urls[key])
94
+        final_parse(key)
95
+        remove(f"{key}_temp.json")

+ 1
- 0
Planificacion.json 파일 보기

@@ -0,0 +1 @@
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": ""}]

+ 0
- 1
README.md 파일 보기

@@ -1,3 +1,2 @@
1 1
 Companion App
2 2
 
3
-

+ 24760
- 0
natu.html
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 0
- 0
server/CompanionApp/__init__.py 파일 보기


BIN
server/CompanionApp/__pycache__/__init__.cpython-38.pyc 파일 보기


BIN
server/CompanionApp/__pycache__/admin.cpython-38.pyc 파일 보기


BIN
server/CompanionApp/__pycache__/models.cpython-38.pyc 파일 보기


+ 3
- 0
server/CompanionApp/admin.py 파일 보기

@@ -0,0 +1,3 @@
1
+from django.contrib import admin
2
+
3
+# Register your models here.

+ 5
- 0
server/CompanionApp/apps.py 파일 보기

@@ -0,0 +1,5 @@
1
+from django.apps import AppConfig
2
+
3
+
4
+class CompanionappConfig(AppConfig):
5
+    name = 'CompanionApp'

+ 21
- 0
server/CompanionApp/migrations/0001_initial.py 파일 보기

@@ -0,0 +1,21 @@
1
+# Generated by Django 3.1.2 on 2020-10-08 23:09
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    initial = True
9
+
10
+    dependencies = [
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='Curso',
16
+            fields=[
17
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('name', models.CharField(max_length=150)),
19
+            ],
20
+        ),
21
+    ]

+ 19
- 0
server/CompanionApp/migrations/0002_curso_code.py 파일 보기

@@ -0,0 +1,19 @@
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
+    ]

+ 0
- 0
server/CompanionApp/migrations/__init__.py 파일 보기


BIN
server/CompanionApp/migrations/__pycache__/0001_initial.cpython-38.pyc 파일 보기


BIN
server/CompanionApp/migrations/__pycache__/0002_curso_code.cpython-38.pyc 파일 보기


BIN
server/CompanionApp/migrations/__pycache__/__init__.cpython-38.pyc 파일 보기


+ 8
- 0
server/CompanionApp/models.py 파일 보기

@@ -0,0 +1,8 @@
1
+from django.db import models
2
+
3
+# Create your models here.
4
+
5
+
6
+class Curso(models.Model):
7
+    name = models.CharField(max_length=150)
8
+    code = models.CharField(max_length=9)

+ 3
- 0
server/CompanionApp/tests.py 파일 보기

@@ -0,0 +1,3 @@
1
+from django.test import TestCase
2
+
3
+# Create your tests here.

+ 3
- 0
server/CompanionApp/views.py 파일 보기

@@ -0,0 +1,3 @@
1
+from django.shortcuts import render
2
+
3
+# Create your views here.

+ 22
- 0
server/manage.py 파일 보기

@@ -0,0 +1,22 @@
1
+#!/usr/bin/env python
2
+"""Django's command-line utility for administrative tasks."""
3
+import os
4
+import sys
5
+
6
+
7
+def main():
8
+    """Run administrative tasks."""
9
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'restful.settings')
10
+    try:
11
+        from django.core.management import execute_from_command_line
12
+    except ImportError as exc:
13
+        raise ImportError(
14
+            "Couldn't import Django. Are you sure it's installed and "
15
+            "available on your PYTHONPATH environment variable? Did you "
16
+            "forget to activate a virtual environment?"
17
+        ) from exc
18
+    execute_from_command_line(sys.argv)
19
+
20
+
21
+if __name__ == '__main__':
22
+    main()

+ 0
- 0
server/restful/__init__.py 파일 보기


BIN
server/restful/__pycache__/__init__.cpython-38.pyc 파일 보기


BIN
server/restful/__pycache__/settings.cpython-38.pyc 파일 보기


BIN
server/restful/__pycache__/urls.cpython-38.pyc 파일 보기


+ 16
- 0
server/restful/asgi.py 파일 보기

@@ -0,0 +1,16 @@
1
+"""
2
+ASGI config for restful project.
3
+
4
+It exposes the ASGI callable as a module-level variable named ``application``.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/
8
+"""
9
+
10
+import os
11
+
12
+from django.core.asgi import get_asgi_application
13
+
14
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'restful.settings')
15
+
16
+application = get_asgi_application()

+ 125
- 0
server/restful/settings.py 파일 보기

@@ -0,0 +1,125 @@
1
+"""
2
+Django settings for restful project.
3
+
4
+Generated by 'django-admin startproject' using Django 3.1.2.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.1/topics/settings/
8
+
9
+For the full list of settings and their values, see
10
+https://docs.djangoproject.com/en/3.1/ref/settings/
11
+"""
12
+
13
+from pathlib import Path
14
+
15
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
16
+BASE_DIR = Path(__file__).resolve().parent.parent
17
+
18
+
19
+# Quick-start development settings - unsuitable for production
20
+# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
21
+
22
+# SECURITY WARNING: keep the secret key used in production secret!
23
+SECRET_KEY = 'j(q!!tj1a0yae#js(^7h-@y(g%=no817zm_t5*mf@p0t53l3qf'
24
+
25
+# SECURITY WARNING: don't run with debug turned on in production!
26
+DEBUG = True
27
+
28
+ALLOWED_HOSTS = []
29
+
30
+
31
+# Application definition
32
+
33
+INSTALLED_APPS = [
34
+    'django.contrib.admin',
35
+    'django.contrib.auth',
36
+    'django.contrib.contenttypes',
37
+    'django.contrib.sessions',
38
+    'django.contrib.messages',
39
+    'django.contrib.staticfiles',
40
+    'CompanionApp',
41
+    'rest_framework'
42
+]
43
+
44
+MIDDLEWARE = [
45
+    'django.middleware.security.SecurityMiddleware',
46
+    'django.contrib.sessions.middleware.SessionMiddleware',
47
+    'django.middleware.common.CommonMiddleware',
48
+    'django.middleware.csrf.CsrfViewMiddleware',
49
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
50
+    'django.contrib.messages.middleware.MessageMiddleware',
51
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
52
+]
53
+
54
+ROOT_URLCONF = 'restful.urls'
55
+
56
+TEMPLATES = [
57
+    {
58
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
59
+        'DIRS': [],
60
+        'APP_DIRS': True,
61
+        'OPTIONS': {
62
+            'context_processors': [
63
+                'django.template.context_processors.debug',
64
+                'django.template.context_processors.request',
65
+                'django.contrib.auth.context_processors.auth',
66
+                'django.contrib.messages.context_processors.messages',
67
+            ],
68
+        },
69
+    },
70
+]
71
+
72
+WSGI_APPLICATION = 'restful.wsgi.application'
73
+
74
+
75
+# Database
76
+# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
77
+
78
+DATABASES = {
79
+    'default': {
80
+        'ENGINE': 'django.db.backends.postgresql',
81
+        'NAME': 'postgres',
82
+        'USER': 'postgres',
83
+        'PASSWORD': 'Danielsofia12',
84
+        'HOST': 'localhost'
85
+    }
86
+}
87
+
88
+
89
+# Password validation
90
+# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
91
+
92
+AUTH_PASSWORD_VALIDATORS = [
93
+    {
94
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
95
+    },
96
+    {
97
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
98
+    },
99
+    {
100
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
101
+    },
102
+    {
103
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
104
+    },
105
+]
106
+
107
+
108
+# Internationalization
109
+# https://docs.djangoproject.com/en/3.1/topics/i18n/
110
+
111
+LANGUAGE_CODE = 'en-us'
112
+
113
+TIME_ZONE = 'UTC'
114
+
115
+USE_I18N = True
116
+
117
+USE_L10N = True
118
+
119
+USE_TZ = True
120
+
121
+
122
+# Static files (CSS, JavaScript, Images)
123
+# https://docs.djangoproject.com/en/3.1/howto/static-files/
124
+
125
+STATIC_URL = '/static/'

+ 21
- 0
server/restful/urls.py 파일 보기

@@ -0,0 +1,21 @@
1
+"""restful URL Configuration
2
+
3
+The `urlpatterns` list routes URLs to views. For more information please see:
4
+    https://docs.djangoproject.com/en/3.1/topics/http/urls/
5
+Examples:
6
+Function views
7
+    1. Add an import:  from my_app import views
8
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
9
+Class-based views
10
+    1. Add an import:  from other_app.views import Home
11
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
12
+Including another URLconf
13
+    1. Import the include() function: from django.urls import include, path
14
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
15
+"""
16
+from django.contrib import admin
17
+from django.urls import path
18
+
19
+urlpatterns = [
20
+    path('admin/', admin.site.urls),
21
+]

+ 16
- 0
server/restful/wsgi.py 파일 보기

@@ -0,0 +1,16 @@
1
+"""
2
+WSGI config for restful project.
3
+
4
+It exposes the WSGI callable as a module-level variable named ``application``.
5
+
6
+For more information on this file, see
7
+https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
8
+"""
9
+
10
+import os
11
+
12
+from django.core.wsgi import get_wsgi_application
13
+
14
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'restful.settings')
15
+
16
+application = get_wsgi_application()