Skip to content

open-source-uc/ucalendar

 
 

Repository files navigation

UCalendar

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.

Deploy en Heroku

Uso

  1. Seleccionar el semestre académico.
  2. Ingresar los códigos del curso junto a su sección (EJM1230-1) o el NRC de cada uno.
  3. Descargar el calendario ics o copiar el url de descarga.
  4. Agregar el calendario a la aplicación de calenadrio con el acrhivo ics (en google) o con el url (en google).

Set-Up

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

Administración

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).

Obtener los calendarios externamente

HOST = 'https://ucalendar.osuc.dev'

Directo

`${HOST}/term/${year}/${period}/schedule.ics?cs[]=${cs}&nrc[]=${nrc}`
  • year: año buscado, requerido
  • period: periodo buscado, requerido
  • cs[]: curso con su sección (ej MAT1610-1), opcional, acepta multiples valores
  • nrc[]: ncr del curso, opcional, acepta multiples valores

Ejemplo:

https://ucalendar.osuc.dev/term/2021/1/schedule.ics?cs[]=MAT1640-1&cs[]=MAT1630-1

Versíon corta

`${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 comas
  • nrc: nrc de los cursos separados por comas

Ejemplos (formato HTML):

https://ucalendar.osuc.dev/s.ics?cs=MAT1640-1,MAT1630-1

Ver periodos

`${HOST}/terms.json`

Obtiene una lista de los periodos académicos en formato JSON.

GH Pages (Página estática)

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.

Links adicionales

Languages

  • Ruby 79.3%
  • HTML 10.1%
  • JavaScript 6.5%
  • SCSS 3.3%
  • CSS 0.8%