Projects

Multi-Tenant Application - A database per tenant project.

This is a project I’m working on to explore and understand a multi-tenant application architecture. This project is a work in progress. Currently the application is setup where tenants share the same application (frontend and backend) but access their own isolated database based on subdomains. Authentication, creating user acounts and permissions are working. Currently working on Stripe Subscription integrations.

FEATURES:

  • Multi-Tenant architecture.
  • Shared application (frontend/backend) for tenants
  • Database per tenant.
  • Tenants are resovled based on subdomains.
  • On regeistration a tenant is given a subdomain for their company and a new database is scaffolded.
  • Authorization - Users can be limited to sepcific modules with specific permissions/operations (create, read, update, delete)
  • WIP - Integration with Stripe Subscriptions.

TECHNOLOGIES:

.NET 6
Entity Framework
.NET Identity
C#
Angular
Ngrx
NG Zorro
PostgreSQL

LINKS

SCREENSHOTS


Simple Notes - A note taking application.

This project started as a learning project to get a deeper understanding of Angular and state management with Ngrx. The concept is a utility application for students to organize their school day.

FEATURES:

  • A note taking feature which support markdown with live preview and exports to different formats.
  • A calendar for scheduling event and todo lists.
  • An interactive flash card tool go create study cards.
  • A document builder to compile several topics/sections into a single document.

TECHNOLOGIES:

NodeJS
NestJS
Express
Angular
Ngrx
TypeORM
PostgreSQL
Docker

LINKS

SCREENSHOTS


Node Realtime Chat Application

Created a room based, realtime chat application using Socket.IO. Users can either generate a random UUID room or give a name. Others with that room name can join and chat. Chat messages are not persisted and disappear after they are sent to connected users in the room.

Technologies: Node.JS, Express, SocketIO, JavaScript, Angular, TypeScript

TECHNOLOGIES:

NodeJS
Express
SocketIO
JavaScript
Angular
TypeScript

LINKS

SCREENSHOTS


Linux Server Setup

Blog & Project Server on Linode

  • Setup and configured a reverse proxy server with Nginx
  • Setup, configured, and generated SSL certs for all sites and applications using Certbot.
  • Deployed a Node chat application using Socket.io behind proxy.
  • Setup and configured a basic Jenkins (CI/CD) to clone my github blog repository, build, and deploy my blog on push and pull requests.

Future Plans: I’m currently learning Docker and containerization. I will be containerizing the Nginx server, the Jenkins server, the blog, and the chat application as a learning project.


Grow System

Hyrdoponics Automation Project

This is a personal project aimed to automate growing hydroponic plants. It uses a Raspberry PI 3 with various sensors to collect data to display in a Angular dashboard. Also uses relay to allow toggle lights, fan, nutrient pumps through the web interface.

TECHNOLOGIES:

NodeJS
Express
Angular
TypeScript
MQTT

LINKS

SCREENSHOTS