{"id":15099220,"url":"https://github.com/ecomaikgolf/buacshell","last_synced_at":"2025-10-08T05:30:21.490Z","repository":{"id":158738270,"uuid":"219322512","full_name":"ecomaikgolf/BUACShell","owner":"ecomaikgolf","description":"Unofficial terminal application for the University of Alicante library written in C++","archived":true,"fork":false,"pushed_at":"2020-03-26T14:30:46.000Z","size":145,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-24T17:56:59.983Z","etag":null,"topics":["cpp","libcurl","library-automation","terminal-based","university-of-alicante"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecomaikgolf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-03T15:31:36.000Z","updated_at":"2023-01-28T10:17:27.000Z","dependencies_parsed_at":"2023-05-06T10:31:25.201Z","dependency_job_id":null,"html_url":"https://github.com/ecomaikgolf/BUACShell","commit_stats":{"total_commits":38,"total_committers":3,"mean_commits":"12.666666666666666","dds":"0.42105263157894735","last_synced_commit":"9019eba94f1e6ac3d888d6ba54cc4a07e8f230f0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ecomaikgolf/BUACShell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomaikgolf%2FBUACShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomaikgolf%2FBUACShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomaikgolf%2FBUACShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomaikgolf%2FBUACShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecomaikgolf","download_url":"https://codeload.github.com/ecomaikgolf/BUACShell/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomaikgolf%2FBUACShell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278892037,"owners_count":26063918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","libcurl","library-automation","terminal-based","university-of-alicante"],"created_at":"2024-09-25T17:08:04.792Z","updated_at":"2025-10-08T05:30:21.221Z","avatar_url":"https://github.com/ecomaikgolf.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BUACShell [![Build Status](https://travis-ci.com/ecomaikgolf/BUACShell.svg?branch=master)](https://travis-ci.com/ecomaikgolf/BUACShell) ![GitHub stars](https://img.shields.io/github/stars/ecomaikgolf/BUACShell?style=social)\nThis project aims to provide an unofficial terminal application for the University of Alicante library\n\n## Installation\n```\ngit clone https://github.com/ecomaikgolf/BUACShell.git\ncd BUACShell\nsudo make install\n```\nDependencies: \n * libcurl (`libcurl4-openssl-dev`)\n\nOperating Systems:\n * GNU/Linux\n   * Ubuntu 16.04 (Tested)\n   * Archlinux (Tested)\n\nThere is no need to execute `setup.sh` as `sudo make install` does it for you\n\n### Common errors\n* `\u003ccurl/curl.h\u003e does not exist...`: try installing `libcurl4-openssl-dev` package. (Ubuntu) `sudo apt install libcurl4-openssl-dev`\n\n* `make: command not found`: try installing `make` package. (Ubuntu) `sudo apt install make`\n\n## Updating\n```\ncd BUACShell\ngit pull -f\nsudo make install\n```\n\n## Usage\n```\nUsage: bua COMMAND\n\n Command list:\n  renew [-f]  Renews all non-reserved books\n  list        Lists reserved books from local cache\n\n Parameter list:\n  [-f] Force credential input\n ```\n\n## Features\n* Lightweight (~60K)\n* Fast (C++)\n* Easy build from source (make)\n* Non bloated with dependencies (libcurl)\n* Scriptable (cron)\n* Autologin protected with system permissions\n* Open Source!\n\n## FAQ\n### Why do I need sudo to compile?\nIn order to disallow non-privileged users from reading `~/.config/uacshell/user.toml` we remove read/write permissions from everyone except root-level users.\n\nThe 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.\n\nAs 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.\n\nThis way, you benefit from a passwordless login while your credentials stay **a bit more** safe.\n\nAlso we need sudo to move the binary to `/usr/bin`\n### What happens if the library software changes?\nBUACShell won't work.\n\nThe library software is expected to be renewed during 2020, we'll try to release an update if possible.\n\n### What happens if someone reserved one of my books?\nIt appears if you do `bua renew` and that situation occurs.\n\nIf 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.\n\n### Can I renew my books each minute?\nFlooding 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.\n\nPlease 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.\n\n### Some file is missing\nPerhaps you removed/moved `~/.config/uacshell/`, try to do `sudo make install` again and look for errors.\n\n### I have error X\nContact us.\n\n## Colaborate\nYou can colaborate in several ways:\n* Submitting issues [here](https://github.com/ecomaikgolf/BUACShell/issues)\n* Pull requests [here](https://github.com/ecomaikgolf/BUACShell/pulls)\n  * New features\n  * Bug fixes\n* Spread this project\n\n## Developers\n**Ernesto Martínez García** [1]\n * ecomaikgolf@protonmail.com\n * [ecomaikgolf.com](ecomaikgolf.com)\n * ![Twitter Follow](https://img.shields.io/twitter/follow/ecomaikgolf?style=social)\n * ![GitHub followers](https://img.shields.io/github/followers/ecomaikgolf?style=social)\n\n**Ignacio Encinas Rubio** [1]\n * ier11@alu.ua.es\n * ![GitHub followers](https://img.shields.io/github/followers/IEncinas10?style=social)\n \n[1] Computer Science, University of Alicante Polytechnic School\n\n# UACShell\n![](https://drive.ecomaikgolf.com/Public/UACShell/banner.png)   \n\nBUACShell 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)\n\nUACShell 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...).\n\nIt 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\n\nThis project is being developed as closed-source until we solve some burocracy.\n\nBUACShell will be merged with UACShell on a single project.\n\n# BUACShell installation video\n[![asciicast](https://asciinema.org/a/cr0xmAtLnrxnUdh4k3nNG3dpk.svg)](https://asciinema.org/a/cr0xmAtLnrxnUdh4k3nNG3dpk)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecomaikgolf%2Fbuacshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecomaikgolf%2Fbuacshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecomaikgolf%2Fbuacshell/lists"}