Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agustinsrg/agustinsrg
GitHub profile for AgustinSRG
https://github.com/agustinsrg/agustinsrg
Last synced: 24 days ago
JSON representation
GitHub profile for AgustinSRG
- Host: GitHub
- URL: https://github.com/agustinsrg/agustinsrg
- Owner: AgustinSRG
- Created: 2024-10-02T16:29:33.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-11-03T13:16:59.000Z (about 2 months ago)
- Last Synced: 2024-11-03T14:22:05.176Z (about 2 months ago)
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π Hi, I'm AgustΓn San RomΓ‘n
- πΌ Working as a software engineer for [AIR Institute](https://air-institute.com/).
- β³ 6 years of experience in the software industry.
- π Degree and master's degree in computer engineering from [University of Salamanca](https://www.usal.es/).## π« How to contact me
- π§ Email: [email protected]
## π― Personal projects
I have worked on several personal projects and published them under open source licenses.
You can find a complete list of my personal projects, with a brief description and links to the repositories below.
---
π Featured projects (Click to expand)
### Personal Media Vault
- π― PersonalMediaVault is an open source tool you can use to create an encrypted, easy to backup and easy to access media gallery. It is a privacy and usability focused project, prioritizing keeping media assets private while being able to access them in a convenient and efficient way.
- π Developed as a web application in the **Go** programming language for the backend components, and **HTML** + **CSS** + **TypeScript** + **Vue** for the user interface. The project also includes a product website powered by **Hugo** + **Docsy** and a CLI tool developed in the **Rust** programming language.
- π [PersonalMediaVault product website](https://agustinsrg.github.io/pmv-site/)
- 𧬠Source code repositories: [Main repository](https://github.com/AgustinSRG/PersonalMediaVault) | [Website source code](https://github.com/AgustinSRG/pmv-site) | [CLI tool source code](https://github.com/AgustinSRG/pmv-cli) | [Encrypted storage library](https://github.com/AgustinSRG/encrypted-storage)### RTMP server and video streaming tools
- π― This project consists on multiple backend tools for developing video streaming platforms. This includes an **RTMP** (Real Time Messaging Protocol) server and several tools to encode and server streaming in the **HLS** (HTTP Live Streaming) format.
- π The tools were developed in the **Go** programming language.
- 𧬠Source code repositories: [rtmp-server](https://github.com/AgustinSRG/rtmp-server) | [tcp-video-streaming](https://github.com/AgustinSRG/tcp-video-streaming)### ImageToMapMC
- π― This project is a desktop application for Linux and Windows to generate Minecraft maps from images. It can be used by server administrators to generate the `.dat` files to import into their servers. It can also be used to generate schematics to build the map in survival mode.
- π The application was developed in the **C++** programming language, using the [wxWidgets](https://www.wxwidgets.org/) GUI library.
- 𧬠Source code repository: [ImageToMapMC](https://github.com/AgustinSRG/ImageToMapMC)### Showdown ChatBot
- π― This project is a chat bot for the popular PokΓ©mon simulator [PokΓ©mon Showdown](https://pokemonshowdown.com/). It provides room staff many features like automated moderation, games and custom commands. It can also play battles automatically using a simple decision algorithm. This was my first open source project, being used in production for the Spanish room since 2015.
- π Developed in **JavaScript**, for **Node.js**.
- 𧬠Source code repository: [Showdown-ChatBot](https://github.com/AgustinSRG/Showdown-ChatBot)### Typescript bean-like ORM
- π― This project is a generic object relational mapping framework for TypeScript and NodeJS. The main purpose is to abstract the database logic from the web application, allowing to change from very different databases (like MySQL and MongoDB) simply changing the data source of the ORM. It is promise-based and the drivers are separated from the core, meaning you only need to import the ones you want to use.
- π Developed in **TypeScript**.
- 𧬠Source code repositories: [tsbean-orm](https://github.com/AgustinSRG/tsbean-orm) | [tsbean-driver-mysql](https://github.com/AgustinSRG/tsbean-driver-mysql) | [tsbean-driver-postgres](https://github.com/AgustinSRG/tsbean-driver-postgres) | [tsbean-driver-mongo](https://github.com/AgustinSRG/tsbean-driver-mongo) | [tsbean-driver-template](https://github.com/AgustinSRG/tsbean-driver-template) | [tsbean-codegen](https://github.com/AgustinSRG/tsbean-codegen)### Smart Contract Wrapper
- π― This project is a TypeScript library that can be used to simplify the interaction process with Ethereum smart contracts. You can generate a wrapper from the contract ABI, allowing to interact with the smart contract calling the wrapper methods.
- π Developed in **TypeScript**.
- π [Smart contract wrapper generator](https://agustinsrg.github.io/smart-contract-wrapper/codegen/)
- 𧬠Source code repository: [smart-contract-wrapper](https://github.com/AgustinSRG/smart-contract-wrapper)---
π Other projects (Click to expand)
### WebRTC CDN
- π― This project is a media content delivery network based on the WebRTC protocol. It allows for sending and receiving media streams in real time from the Browser. The use of a CDN instead of peer-to-peer communication can be useful to reduce the bandwidth requirements of the users. For example, in a call of 10 people, instead of having to send the media stream to all the 9 other participants, it sends it to the CDN, which distributes it to the rest of participants.
- π Server developed in the **Go** programming language. Client developed in **TypeScript**.
- 𧬠Source code repositories: [Server](https://github.com/AgustinSRG/webrtc-cdn) | [Client](https://github.com/AgustinSRG/webrtc-cdn-client)
- 𧬠Experiments: [webrtc-publish](https://github.com/AgustinSRG/webrtc-publish) | [webrtc-forwarder](https://github.com/AgustinSRG/webrtc-forwarder) | [webrtc-video-filter](https://github.com/AgustinSRG/webrtc-video-filter)### Async tools for JavaScript
- π― This project is a JavaScript library that provides tools to work with asynchronous functions in JavaScript. It includes and async interval (waits for the async function to end before running it again), an async queue, an async semaphore and an async value provider.
- π Developed in **TypeScript**.
- 𧬠Source code repository: [async-tools](https://github.com/AgustinSRG/async-tools)### JavaScript object sanitizer
- π― This project is a JavaScript library that provides a convenient way to sanitize untrusted objects (for example, the ones provided by the user). Ensuring an object follows an schema allows for accessing its properties without the possibility of crashes or unexpected behaviors.
- π Developed in **TypeScript**.
- 𧬠Source code repository: [javascript-object-sanitizer](https://github.com/AgustinSRG/javascript-object-sanitizer)### Basic request library
- π― This project is a basic request library aimed to be used by the frontend of web applications to communicate with the backend. It provides a way to define API bindings (to ensure parameters are the correct types and error are handled thanks to TypeScript) and it also provides named requests, to automatically abort duplicate requests.
- π Developed in **TypeScript**.
- 𧬠Source code repositories: [request-browser](https://github.com/AgustinSRG/request-browser) | [request-axios](https://github.com/AgustinSRG/request-axios)### Pokemon Showdown bot library
- π― This project is a library for bots to connect to [PokΓ©mon Showdown](https://pokemonshowdown.com/) servers and be able to play battles.
- π Developed in **TypeScript**.
- 𧬠Source code repositories: [ps-bot-lib](https://github.com/AgustinSRG/ps-bot-lib) | [ps-battle-bot-lib](https://github.com/AgustinSRG/ps-battle-bot-lib)### Parallel request controller
- π― This project is a backend component to control parallel requests. The main use case for this component is to impose limits on parallel requests when using multiple web servers for horizontal scaling.
- π Server in the **Go** programming language. Client developed in **TypeScript**.
- 𧬠Source code repository: [parallel-request-controller](https://github.com/AgustinSRG/parallel-request-controller)### Other small libraries and tools
| Project | Category | Language | Description |
| -------------------------------------------------------------------------------------- | ----------- | -------------- | ---------------------------------------------------------------------------------------------------------------- |
| **[genv](https://github.com/AgustinSRG/genv)** | **Library** | **Go** | Golang library to read and parse environment variables. |
| **[go-simple-rpc-message](https://github.com/AgustinSRG/go-simple-rpc-message)** | **Library** | **Go** | Golang library that implements a very simple RPC message system to be used in a text-based communication system. |
| **[go-child-process-manager](https://github.com/AgustinSRG/go-child-process-manager)** | **Library** | **Go** | Golang library to ensure all the child processes are killed if the main process is killed. |
| **[crystals-dilithium-js](https://github.com/AgustinSRG/crystals-dilithium-js)** | **Library** | **JavaScript** | Javascript implementation of post-quantum signature algorithm: CRYSTALS-Dilithium |
| **[Text-Transform](https://github.com/AgustinSRG/Text-Transform)** | **Library** | **JavaScript** | Library to build simple text transform tools you can run in your browser. |
| **[psim-log-to-replay](https://github.com/AgustinSRG/psim-log-to-replay)** | **Tool** | **JavaScript** | Simple web tool to turn a Pokemon Showdown battle log into a replay. |
| **[eth-test-node-action](https://github.com/AgustinSRG/eth-test-node-action)** | **CI** | **Shell** | GitHub Action to setup an Ethereum node to test Smart Contracts. |