Update portfolio
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Kaan Barmore-Genç 2023-04-07 00:00:36 -04:00
parent 12e29ddf6a
commit d0344b00d7
Signed by: kaan
GPG key ID: B2E280771CD62FCF

View file

@ -1,45 +1,57 @@
This lists some of the projects I've worked on that I'm most proud of,
especially personal projects and open source contributions.
This page lists the projects that I'm most proud of, and that I'm actively developing and supporting.
## Bulgur Cloud
### [Gandi Live Dns Rust ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/gandi-live-dns-rust) ![Docker Pulls](https://img.shields.io/docker/pulls/seriousbug/gandi-live-dns-rust)](https://github.com/SeriousBug/gandi-live-dns-rust)
[Bulgur Cloud](https://github.com/SeriousBug/bulgur-cloud) is a cloud storage and sharing solution, similar to Google Drive,
OneDrive, or NextCloud. Bulgur Cloud is lightweight and easy to self host: it
requires very little resources, comes with the user interface bundled into a
single executable, and requires no databases or external dependencies.
A dynamic DNS system that works with Gandi's live DNS feature. Allows you to
host servers without a static IP address by updating DNS records whenever your
IP changes. Flexible deployments through Docker or system packages with systemd
timers.
![A web page with 3 files listed, "sprite-fright.mp4", "test.txt", and "sprite-fright.LICENSE.txt". There are pencil and thrash bin symbols to the right of the file names. A leftward arrow is grayed out on the top left, and top right says "kaan". On the bottom right there's a symbol of a cloud with an up arrow.](https://bgenc.net/img/2022-03-29-00-16-13.png)
### [Cuttlestore ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/cuttlestore) ![Crates.io](https://img.shields.io/crates/d/cuttlestore)](https://github.com/SeriousBug/cuttlestore)
A demo is available at [bulgur-cloud.bgenc.net](https://bulgur-cloud.bgenc.net).
Please enter `test` for both username and password to log into the demo. The
demo is read only, so if you try to upload, rename, or delete anything you'll
get an error message.
A generic key-value storage library for Rust. Cuttlestore allows you to write
your code once and run it on many key-value stores. Right now it comes with
support for Redis and Sqlite, with planned support for CouchDB and DynamoDB.
Bulgur Cloud is free, open source software, licensed under AGPL-3.0. You can find the source code at [SeriosBug/bulgur-cloud](https://github.com/SeriousBug/bulgur-cloud), releases are available under the [releases tab](https://github.com/SeriousBug/bulgur-cloud/releases) as well as [DockerHub](https://hub.docker.com/r/seriousbug/bulgur-cloud).
### [Rust Embed for Web ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/rust-embed-for-web) ![Crates.io](https://img.shields.io/crates/d/rust-embed-for-web)](https://github.com/SeriousBug/rust-embed-for-web)
Bulgur Cloud's backend is written in Rust using the [Actix web framework](https://actix.rs/), and includes a RESTful API, a CLI management
tool, and a rich web application UI built with [React Native](https://reactnative.dev/), [Native Base](https://nativebase.io/),
[Redux](https://react-redux.js.org/), and [React Navigation](https://reactnavigation.org/).
There's also a HTML-only user interface that uses server rendered HTML templates for users without JavaScript.
Embed files into your Rust executable. You can embed HTML, CSS, JavaScript
files, all your assets into your server to bundle them together. This simplifies
updates as your assets are always guaranteed to update together with your server.
## gandi-live-dns
This started as a fork of an existing project, but became a significant rewrite
of it. It includes many features useful for web servers like precomputed header
values and precompressed file contents.
[gandi-live-dns](https://github.com/SeriousBug/gandi-live-dns-rust) is a system service (daemon) that automatically updates your IP
address on the domain provider Gandi's domain name servers, allowing you to host
web services without a static IP address.
### [Rust Embed Responder for Actix Web ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/actix-web-rust-embed-responder) ![Crates.io](https://img.shields.io/crates/d/actix-web-rust-embed-responder)](https://github.com/SeriousBug/actix-web-rust-embed-responder)
It features a simple configuration file, self rate limiting, self contained
[binary releases](https://github.com/SeriousBug/gandi-live-dns-rust/releases),
docker [images](https://hub.docker.com/r/seriousbug/gandi-live-dns-rust),
and systemd [service files](https://github.com/SeriousBug/gandi-live-dns-rust/tree/master/Packaging).
A sibling project to Rust Embed for Web, this is a responder for Actix Web that
efficiently serves your embedded files. It handles cache validation and content
type negotiation, and is built for high performance.
## Image Survey
### [Bulgur Cloud ![GitHub Repo stars](https://img.shields.io/github/stars/bulgur-cloud/bulgur-cloud) ![Docker Pulls](https://img.shields.io/docker/pulls/seriousbug/bulgur-cloud)](https://github.com/bulgur-cloud/bulgur-cloud)
[Image Survey](https://github.com/SeriousBug/image-survey) is a self hosted web service for doing qualitative image comparison
surveys. It can be used to do surveys where 2 image variants are compared
against each other or against an original. It's built for quick, anonymous surveys.
![](https://media.githubusercontent.com/media/bulgur-cloud/bulgur-cloud.github.io/main/static/img/homepage-screenshot.png)
![A web page with an image of a flower, repeated 3 times with differing levels of compression artifacts. Above the images are buttons to zoom and go back, and below are buttons to pick the left or right image.](https://github.com/SeriousBug/image-survey/raw/master/misc/screenshot-vote.jpg)
An easy to self host cloud file storage and sharing system. It's similar to Google Drive or NextCloud, but effortless to set up and maintain. Built in Rust and TypeScript, using Actix-Web and React Native.
It's built with a Python backend that serves a REST API, and a React frontend.
It uses an sqlite database to store the data, with hand-coded SQL queries.
### [live limit ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/live-limit) ![npm](https://img.shields.io/npm/dt/live-limit)](https://github.com/SeriousBug/live-limit)
A TypeScript library that can limit the number of concurrent async operations
running at a time. This is useful for making concurrent requests to a server
without overloading your connection. Works with promises, has no dependencies,
and comes under 1kb minzipped.
### [Query Method Middleware for Actix Web ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/actix-web-query-method-middleware) ![Crates.io](https://img.shields.io/crates/d/actix-web-query-method-middleware)](https://github.com/SeriousBug/actix-web-query-method-middleware)
Actix Web middleware that allows you to submit HTML forms using methods other
than `POST`. Forms normally can only be submitted through `GET` or `POST`
methods, but this middleware reroutes requests using a query parameter to other
methods.
### [Http Drogue](https://github.com/SeriousBug/http-drogue) ![GitHub Repo stars](https://img.shields.io/github/stars/SeriousBug/http-drogue)
![](https://raw.githubusercontent.com/SeriousBug/http-drogue/main/pub/screenshot.png)
A tiny self-hosted service to download files over http, with support for resuming and restarting failed downloads.
Built with Rust, basic HTML templates using Askama, TailwindCSS, and DaisyUI. Uses no javascript!