Giter Club home page Giter Club logo

ucalendar's Introduction

UCalendar

⚠️ Este repositorio se encuentra archivado, y contiene lo que fue creado para SoC 2020-2021.

🔗 El proyecto va a ser mantenido en open-source-uc/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:

POSTGRES_PASSWORD=

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.herokuapp.com'

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.herokuapp.com/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.herokuapp.com/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

ucalendar's People

Contributors

benjavicente avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

open-source-uc

ucalendar's Issues

Mejorar estilo de la página

  • Oscurecer un poco la página
  • Ajustar la letra del horario e inputs para dispositivos móviles
  • Cambiar o arreglar el footer
  • Agregar tags meta (título, og, charset)
  • Ver tamaño de .schedule-section y cómo se adapta cuando .schedule-card es más grande verticalmente
  • Añadir ícono e imagen

Mejor plantilla para eventos

Nombre

<% "#{event.category_shot_name} - " if event.category != :class -%><%= course.subject.display_name -%>

Descripción

<%= event.category_name -%> <%= course.subject.name -%>
<%= "#{event.classroom} " unless event.classroom.nil? -%><%= course.campus.name -%>

<% unless course.teachers.empty? %>
  Profesores
  <% course.teachers.each do |teacher| %>
    - <%= teacher.name -%>
  <% end %>
<% end %>

<% event.days_names.each do |day_name| %>
  <%= day_name -%>
<% end %>

Notas:

  • Usar .gsub(/^ /, '') para cargar templates
  • Ver como Google Calendar soporta HTML básico
  • Añadir la sala con LOCATION

Crear página estática

  • Deploy con GitHub Pages en el repositorio
  • Uso de AJAX u otra tecnología similar (ver XMLHttpRequest)
  • Permitir NRC en el campo de búsqueda
  • Posibilidad de seleccionar el periodo
  • Obtener las opciones de periodos en la página estática

Nota: ver medidor de progreso de la request

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.