Skip to content
This repository has been archived by the owner on Mar 4, 2021. It is now read-only.
/ BUACShell Public archive

Unofficial terminal application for the University of Alicante library written in C++

License

Notifications You must be signed in to change notification settings

ecomaikgolf/BUACShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BUACShell Build Status GitHub stars

This project aims to provide an unofficial terminal application for the University of Alicante library

Installation

git clone https://github.com/ecomaikgolf/BUACShell.git
cd BUACShell
sudo make install

Dependencies:

  • libcurl (libcurl4-openssl-dev)

Operating Systems:

  • GNU/Linux
    • Ubuntu 16.04 (Tested)
    • Archlinux (Tested)

There is no need to execute setup.sh as sudo make install does it for you

Common errors

  • <curl/curl.h> does not exist...: try installing libcurl4-openssl-dev package. (Ubuntu) sudo apt install libcurl4-openssl-dev

  • make: command not found: try installing make package. (Ubuntu) sudo apt install make

Updating

cd BUACShell
git pull -f
sudo make install

Usage

Usage: bua COMMAND

 Command list:
  renew [-f]  Renews all non-reserved books
  list        Lists reserved books from local cache

 Parameter list:
  [-f] Force credential input

Features

  • Lightweight (~60K)
  • Fast (C++)
  • Easy build from source (make)
  • Non bloated with dependencies (libcurl)
  • Scriptable (cron)
  • Autologin protected with system permissions
  • Open Source!

FAQ

Why do I need sudo to compile?

In order to disallow non-privileged users from reading ~/.config/uacshell/user.toml we remove read/write permissions from everyone except root-level users.

The program in order to read the file is compiled with sudo privileges (as ping does) and only uses them when necessary (escalate/drop privileges), in this case when it has to read the DNI/NIP. This type of binaries are safe agains non-privileged binary instrumentation attacks.

As the file is stored in home, modern distributions (as Ubuntu) allow transparent encryption for home, so the credentials are safe even at a physical level.

This way, you benefit from a passwordless login while your credentials stay a bit more safe.

Also we need sudo to move the binary to /usr/bin

What happens if the library software changes?

BUACShell won't work.

The library software is expected to be renewed during 2020, we'll try to release an update if possible.

What happens if someone reserved one of my books?

It appears if you do bua renew and that situation occurs.

If you are using cron jobs or some kind of automatic scripting, BUACShell main function returns the number of non-renewed books in a error free execution.

Can I renew my books each minute?

Flooding their servers with dummy requests could result in a Denial Of Service and they can block you from accessing the library webpage. Anyway you can't renew books more than once per day.

Please do not flood their servers and consider renewing books not more than once per day. If you need to list the books consider using bua list that uses local cache.

Some file is missing

Perhaps you removed/moved ~/.config/uacshell/, try to do sudo make install again and look for errors.

I have error X

Contact us.

Colaborate

You can colaborate in several ways:

  • Submitting issues here
  • Pull requests here
    • New features
    • Bug fixes
  • Spread this project

Developers

Ernesto Martínez García [1]

Ignacio Encinas Rubio [1]

[1] Computer Science, University of Alicante Polytechnic School

UACShell

BUACShell is a small module from a bigger project called UACShell that aims to provide a terminal interface for the University of Alicante virtual campus (UACloud)

UACShell provides a quicker and easier way to do daily tasks (downloading materiales, checking marks, notifications...) rather than being a complete substitute of the web interface (payments, administrative tasks...).

It manages authentication process automatically so you just have to setup username/password once, then just use uacloud list assignments uacloud list materials X uacloud download ... anytime you want

This project is being developed as closed-source until we solve some burocracy.

BUACShell will be merged with UACShell on a single project.

BUACShell installation video

asciicast

About

Unofficial terminal application for the University of Alicante library written in C++

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published