Languages

Rust Logo
Rust
Go Logo
Go
TypeScript Logo
TypeScript
JavaScript Logo
JavaScript
HTML Logo
HTML
CSS Logo
CSS
Python Logo
Python
Java Logo
Java
PHP Logo
PHP
C++ Logo
C++
C Logo
C

Libraries & Frameworks

Svelte Logo
Svelte
SolidJS Logo
SolidJS
React Logo
React
Tailwind Logo
Tailwind
Tokio Logo
Tokio
Hyper Logo
Hyper
Espressif Logo
Espressif
Express.js Logo
Express.js
Electron Logo
Electron
Discord.js Logo
Discord.js
Flask Logo
Flask
Django Logo
Django
FastAPI Logo
FastAPI
Huggingface Logo
Huggingface
Hardhat Logo
Hardhat
Anchor Logo
Anchor

Technologies

Git Logo
Git
Docker Logo
Docker
CMake Logo
CMake
Deno Logo
Deno
Node.js Logo
Node.js
PostgreSQL Logo
PostgreSQL
MySQL Logo
MySQL
MongoDB Logo
MongoDB
Solana Logo
Solana
Ethereum Logo
Ethereum
Arbitrum Logo
Arbitrum

Drippy

Drippy Git Rust Tokio Hyper Espressif TypeScript Svelte HTML CSS PostgreSQL

Drippy is an open-source Internet-of-Things (IoT) system that records the water flow rate of an outlet in a household over time. Periodic reports are aggregated in the cloud so that stakeholders (e.g., customers, the water company, etc.) may access a time-series representation of water consumption through a dashboard interface on the Web. The project was ultimately a Top 3 Finalist in the IoT Cup 2023 hosted by the University of Philippines Diliman Department of Computer Science.

Aside from data analytics, Drippy’s marquee feature is its ability to detect leaky pipes. As soon as the IoT device detects sufficient conditions for leakage, it automatically closes a master valve in the same pipe to stop the wasted flow of water. A prominently positioned LED lights up to indicate the actuation of said valve. Through the web dashboard, a customer/user may remotely release the valve. Inversely, they may also remotely close the valve (under normal operation) should the need arise. Thus, the IoT system reactively guards against wastage due to leaks and overconsumption.

login page for Drippy dashboard
Drippy dashboard

The ESP32 firmware is open-source and written in Rust on top of C bindings to the ESP IoT Development Framework, which are provided by Espressif Systems themselves. All cloud interactions (backed by a PostgreSQL database) are handled by an open-source centralized web server written in Rust with the Hyper HTTP framework on top of the Tokio asynchronous runtime. Finally, the dashboard is a web application written in Svelte.

schematic diagram for Drippy circuitry
Drippy testbench on actual hardware
enclosed circuitry for Drippy and its ESP32 chip

DocTrack

DocTrack Git Deno TypeScript JavaScript Svelte HTML CSS PostgreSQL

DocTrack is an open-source mobile-first document tracking system built for the modern age. It reimplements and improves on the DRS by the UP ITDC by leveraging PWA technologies for:

Wherever possible, the project utilizes a TypeScript-centric application stack. With Svelte in the front end, TypeScript ensures that events, messages, and interactions between UI components remain consistent. In the back end, Deno facilitates the development of robust type-safe HTTP request handlers for the REST API.

DocTrack Mobile
DocTrack Desktop

pal.ai

pal.ai Git Deno TypeScript Svelte HTML CSS Python Hugging Face

The pal.ai project is an open-source mobile-first progressive web app that uses images of rice leaves to identify rice leaf diseases.

In the back end, we use a minimal Deno Deploy server that proxies the Hugging Face Hosted Inference API, which interfaces with a model that uses a BEiT vision transformer model to classify images of rice plants for the presence/absence of diseases. The model is pre-trained using ImageNet 22k then finetuned using the PH Rice Leave Diseases dataset. The model achieves 95% accuracy using the dataset test set despite having only 1120 training data points.

In the front end, pal.ai is an installable progressive web app (PWA) written in TypeScript with the Svelte framework. It uses the Parcel build tool for asset bundling, packaging, and optimization. The PWA allows users to upload their own images of rice plants for classification.

pal.ai home page with file upload and camera controls
pal.ai results page showing 79.28% confidence in Healthy classification

SoundRave

Git Node.js Express.js HTML CSS JavaScript MongoDB

SoundRave was an aggregator app for new music released by a user's followed artists on Spotify. At the time, the news feed was missing from Spotify's features. The app aimed to fill in this hole.

The UI is primarily rendered by the server via the Express framework for Node.js. For data persistence, MongoDB is used as the database and cache for Spotify API calls.

SoundRave Mobile
SoundRave Desktop

Chrozone

Chrozone Git Rust Tokio Hyper Deno

Chrozone is a Tokio-powered Discord bot written in Rust that provides time-based utilities via slash commands. One of its primary features is to format a given date as a dynamic timestamp message (as seen in the screenshots below).

For global Discord communities that have special timezone considerations, Chrozone empowers users to send timezone-adaptive announcements. No need to convert the timezones yourself! Let Chrozone do the work.

Chrozone Autocompletion Menu
Chrozone Preview Result

Quizzo

Quizzo Git Rust Tokio Hyper Deno PostgreSQL

Quizzo is a Tokio-powered Discord bot written in Rust for hosting limited-time quizzes. With Discord's built-in message components, Quizzo provides an easy-to-use interface (and a trivially scalable setup) for large-scale quizzes with many users. When the quiz timer expires, Quizzo notifies everyone in the channel which users answered the quiz correctly. The pioneer use of message components differentiates Chrozone from the other bots in the market which use clunky reaction-based polling mechanisms.

Quizzo Chat Output

UDP Multicast Chat

Git Rust Tokio

The UDP Multicast Chat Project is a basic chat application written in Rust. The front-end GUI uses the popular egui library to render the updates from the back end. Meanwhile, the back end is a Tokio-powered server that listens for UDP messages over a specified multicast address. The same multicast channel is also used for sending new messages. This setup effectively allows multiple hosts in the local area network to communicate with each other via a common UDP multicast channel.

UDP Multicast Chat Preview

Snake Clone with SDL2

Git C++ CMake

Using the popular SDL2 library, the sdl-basic-snake project reimplements the classic game Snake with modern object-oriented C++20 code.

In line with the theme of modern best practices, the project also uses CMake as its cross-platform build system generator. Assuming the necessary system dependencies have been set up, the project may be built and run on any platform.

Snake Score 1
Snake Score 6
Snake Score 16

A Block of Optionals!

Git Rust

The option-block crate is an open-source Rust package that provides a basic direct address look-up table, where empty slots are tracked by a single bit mask. Although it is rather simple, this is a fundamental data structure in embedded development, where memory constraints especially matter.

From the pull request dlkj/usbd-human-interface-device#89 by @jedrzejboczar:

Currently, heapless::FnvIndexMap is used to store idle times for reports, which takes 260B (out of 460B for whole RawInterface) to store at most 32 u8 values. This PR changes it to use option-block which basically is [u8; 32] with u32 bitmask of "used" slots, which takes 36B (RawInterface is now 236B)... In my use case, with 3 HID interfaces, this saves 672 bytes of RAM usage, while I also observed minor improvement in code size—usbd-human-interface-device takes 406 bytes less space.