Implementación en Rails de uc-nrc-icalendar.
Aplicación web que obtiene los cursos de Busca Cursos y crea un calendario en formato iCalendar que luego puede ser importado a Google Calendar.
- Seleccionar el semestre académico.
- Ingresar los códigos del curso junto a su sección (
EJM1230-1
) o el NRC de cada uno. - Descargar el calendario
ics
o copiar elurl
de descarga. - Agregar el calendario a la aplicación de calenadrio con el
acrhivo
ics
(en google) o con elurl
(en google).
Antes de crear la base de datos, crear un archivo.env
con la clave
de postgres y el host de BuscaCursos:
POSTGRES_PASSWORD=
BC_HOST=
FLYYER_KEY=<optional>
Para crear el entorno de desarrollo:
bundle install
yarn install
rails db:setup
Para iniciar el servidor
sudo service postgresql start
rails s
Para que se pueda obtener los cursos, tiene que existir un periodo académico (term) en la base de datos. Tambíen, para que no se creen eventos en feriados deben crearse estos feriados (holidays).
Estos se pueden crear con las seeds o en el interfaz de
administración (/admin
).
HOST = 'https://ucalendar.osuc.dev'
`${HOST}/term/${year}/${period}/schedule.ics?cs[]=${cs}&nrc[]=${nrc}`
year
: año buscado, requeridoperiod
: periodo buscado, requeridocs[]
: curso con su sección (ejMAT1610-1
), opcional, acepta multiples valoresnrc[]
: ncr del curso, opcional, acepta multiples valores
Ejemplo:
https://ucalendar.osuc.dev/term/2021/1/schedule.ics?cs[]=MAT1640-1&cs[]=MAT1630-1
`${HOST}?s.ics?year=${year}&period=${period}&cs=${course_section}&nrc=${nrc}`
Acepta los mismos parámetros de el GET
, pero year
y period
son
opcionales, si no están presentes obtienen los datos de la el periodo
académico.
Además, acepta:
cs
: cursos coon su sección separados por comasnrc
: nrc de los cursos separados por comas
Ejemplos (formato HTML):
https://ucalendar.osuc.dev/s.ics?cs=MAT1640-1,MAT1630-1
`${HOST}/terms.json`
Obtiene una lista de los periodos académicos en formato JSON
.
Ya que se utiliza una vista con AJAX, esta puede ser compilada a
una página estática. Para esto se usa la rama gh-pages
, que es
creada con la página con el comando rake gh_pages:compile
.
Página en github.io.
- Página con documentación de icalendar: icalendar.org
- Diagrama de la base de datos en: dbdiagram.io