API for PACO (Portal Académico Online - Universidade de Aveiro)

Overview

paco-ua-api

API for Portal Académico Online - Universidade de Aveiro

Latest Release

This API uses Puppeteer to, through a headless browser, log in and scrape the page Secretaria Virtual from paco.ua.pt. The results are routed with Express.js.

This app is a personal project and has no affiliation with Universidade de Aveiro.

logo

API Documentation

Table of Contents

  1. Setup
  2. Usage
  3. Features
  4. Apps

Setup

Setup the server locally with Docker:

Make sure to have Docker running on your machine. [How to here]

  • Build the image
docker build --tag pacoua-api .
  • Run the container
docker run -p 8000:8000 --name pacoua-api pacoua-api

(To run on a different port, change the value of the port on the left side (8000:8000) in the command above. The port on the right ride (8000:8000) has to always match the port in the file static.js)

Setup the server locally manually:

  • Install the node modules
$ npm install
  • Run the app
$ npm run devStart

(To run on a different port, change the value of PORT in the file static.js)

After any of the two configurations, the server will be running at http://127.0.0.1:8000

Usage

Every endpoint is accessed through a GET HTTP Request, with your institutional email credentials in the Basic Authorization Header (encrypted in base64). More Information

GET /schedule
  -H 'accept: application/json'
  -H 'Authorization: Basic {base64_encrypted_credentials}'

If everything is correct, this should be the response:

// RESPONSE
{
    "data": {
        "schedule": {
            "Segunda": [
                {
                    "subject": {
                        "name": "SEGURANÇA INFORMÁTICA E NAS ORGANIZAÇÕES",
                        "abbrev": "SIO"
                    },
                    "start": "9h",
                    "duration": "2h",
                    "capacity": 24,
                    "class": "P8",
                    "room": "04.2.03"
                },
                {
                    "subject": {
                        "name": "ARQUITETURA DE COMPUTADORES I",
                        "abbrev": "AC-I"
                    },
                    "start": "14h",
                    "duration": "1h",
                    "capacity": 98,
                    "class": "TP1",
                    "room": "ANF. V"
                },
                ...
            ],
            "Terça": [
                {
                    "subject": {
                        "name": "ARQUITETURA DE COMPUTADORES I",
                        "abbrev": "AC-I"
                    },
                    "start": "9h",
                    "duration": "2h",
                    "capacity": 18,
                    "class": "P07",
                    "room": "04.2.17"
                },
                ...
            ],
            ...
        },
        "school_year": "2021/2022",
        "semester": 1
    },
    "url": "https://paco.ua.pt/secvirtual/horarios/c_horario_aluno.asp",
    "title": "Horário",
    "timestamp": "2022-08-16T01:51:09.193Z"
}

The same applies for all the other endpoints.

Features

  • Dados Pessoais   GET /personal
  • Situação de prescrição   GET /expiration
  • Histórico Notas   GET /subjects/history
  • Disciplinas Inscritas   GET /subjects/current
  • Estados das Propinas   GET /tuition_fees
  • Plano Curricular   GET /subjects
  • Calendário de Exames do Aluno   GET /exams
  • Calendário de Exames por Disciplina   GET /exams?subjects=...
  • Apoio às Aulas   GET /classes
  • Horário   GET /schedule
  • Requerimentos   GET /requests

Apps

If you have an app that uses this API, feel free to contact me or make a pull request of this README with your app, obeying the table format bellow.

Logo Name Contributors Description
SchedUA @digas99 Browser Extension for easy access to your Schedule from Universidade de Aveiro.
You might also like...

Un experimento personal con el portal del Centro de Documentación de la Imagen de Santander.

Un experimento personal con el portal del Centro de Documentación de la Imagen de Santander.

Retrosantander Un experimento personal con el portal del Centro de Documentación de la Imagen de Santander (CDIS) y sus contenidos. Por Jaime Gómez-Ob

Dec 11, 2022

A modern and fashion-forward retail portal.

Atelier Atelier is an ecommerce product detail page built for a fictional clothing company as an exercise in front-end development. It contains three

Aug 30, 2022

FeatureProbe UI/Portal

FeatureProbe UI FeatureProbe applications suite includes a customer UI/Portal. It is optional to install, but we highly recommend using it as the mana

Dec 29, 2022

A portal for finding and posting jobs. Assignment for internship.

A portal for finding and posting jobs. Assignment for internship.

Naukri Dundho A portal for finding and posting jobs. Assignment for internship. 💡 Explore the docs » • Report Bug • Request Feature • Backend Documan

Sep 14, 2022

A all around note taking and viewing portal for students as well as teachers.

Notetal Portal to notes for students and teachers. With Notetal you can take notes as well as view notes taken by others. Features Powerful Editor: A

Jun 13, 2022

A decentralised portal that aims to help Government Educational organisations to track student and colleges data to provide them with fellowships and programs.

A decentralised portal that aims to help Government Educational organisations to track student and colleges data to provide them with fellowships and programs.

DeSIDB A decentralised database built on Ethereum & Solidity. Introduction - India is a country with a population of 6.8 crore students graduating eac

Jul 10, 2022

Portal de desafios de programação

Portal de desafios de programação

💻 Projeto Plataforma de desafios frontend, quadro do notion com as tarefas AQUI Next.js Sass TypeScript Mongoose Prismic Next Auth Também foi adicion

Dec 20, 2022

Portal - Free Bootstrap 5 Admin Dashboard Template For Developers

Portal - Free Bootstrap 5 Admin Dashboard Template For Developers

Theme Details & Demo Demo: https://themes.3rdwavemedia.com/bootstrap-templates/admin-dashboard/portal-free-bootstrap-admin-dashboard-template-for-deve

Dec 22, 2022

A Website that consumes a movie's api online.

A Website that consumes a movie's api online.

Moviematrix A website where you can search and watch trailers of the movies or tv shows that you might like. Features Light and Dark mode toggler Watc

Dec 26, 2022
Releases(v1.0.7)
  • v1.0.7(Sep 25, 2022)

  • v1.0.6(Sep 25, 2022)

    Changelog v1.0.6

    Bug Fixes

    • Changed EventEmitter max listeners to prevent heroku from crashing server when multiple concurrent requests are made to the API
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(Sep 25, 2022)

  • v1.0.4(Sep 23, 2022)

  • v1.0.3(Sep 7, 2022)

  • v1.0.2(Sep 4, 2022)

    Changelog v1.0.2

    Content

    • Added Server Timeout (504) HTTP response to avoid crashing the app
    • Added Forbidden Access (403) when the credentials provided in the GET Requests header are wrong
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Aug 26, 2022)

  • v1.0.0(Aug 23, 2022)

    Changelog v1.0.0

    Content

    • API endpoints are accessbile through https://pacoua-api.pt
    • API covers all the main sections from PACO-UA:
      • Dados Pessoais   GET /personal
      • Situação de prescrição   GET /expiration
      • Histórico Notas   GET /subjects/history
      • Disciplinas Inscritas   GET /subjects/current
      • Estados das Propinas   GET /tuition_fees
      • Plano Curricular   GET /subjects
      • Calendário de Exames do Aluno   GET /exams
      • Calendário de Exames por Disciplina   GET /exams?subjects=...
      • Apoio às Aulas   GET /classes
      • Horário   GET /schedule
      • Requerimentos   GET /requests
    • Interactive API documentation with Swagger is accessible through https://pacoua-api.pt/docs
    Source code(tar.gz)
    Source code(zip)
Owner
Diogo Correia
I am a MSc student in Computers and Telematics Engineering at University of Aveiro.
Diogo Correia
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A chat logs online saver for discord bots to save messages history & cleared messages online

Chat Logs NPM package that saves messages online to view it later Useful for bots where users can save messages history & cleared messages online Supp

TARIQ 8 Dec 28, 2022
Foxpage portal, server apis and plugins

Low-code, made simple and fast Try live demo Foxpage is a lightweight front-end low-code framework. Features ??️ Visualization. Provides visual page e

Foxpage 165 Dec 31, 2022
Website and contest portal for SolidHack.

Solid Website This is the source code for the solid website: https://solidjs.com/ Getting started The website is built with Solid. In order to get goi

Solid 2 May 20, 2022
Admin portal for the community-profiles web app

cp-admin Admin portal for the community-profiles web app. Created with Strapi and postgresql backend. Hosted with Azure App Services. Strapi Instructi

Grant Moss 3 Nov 4, 2022
CA9.io Portal Seed Server. Makes sure the project files are always accessable.

Torrent Seed Server What is this about? This project helps users of CA9.io Metaverse to keep their files and addons permanently available. Since we us

CA9.io, TM9657 GmbH 2 Feb 3, 2022
Yara Station- Managment portal for LoKi scanner

Yara station is a management portal for Neo23x0-Loki. The mission is to transform the standalone nature of the Loki scanner into a centralized management solution that facilitates result investigation and easier scanning capabilities.

null 28 Dec 20, 2022
✨ Dramaland: Um portal de notícias, resenhas e opinião do mundo da dramaturgia coreana

Tabela de Conteúdo Tabela de Conteúdo Sobre o Projeto Feito Com Contribuição Licença Contato Sobre o Projeto Dramaland é um portal de notícias, resenh

Guilherme S. Sousa 9 Nov 21, 2022
Dyte's documentation portal built with Docusaurus.

Dyte Docs Dyte's documentation portal, built with Docusaurus. Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About the

Dyte 70 Jan 1, 2023