Skip to content

emeraldemperaur/jupiter-hospitalis

Repository files navigation

Hospitālis

Residential Property Management System: Web Application (Microservices)

Overview

Scalable event-driven microservices architecture web application developed to support residential property management for landlords and property administrators who would seek to provide vanguard tenants with a secure, user-friendly platform for executing modern rental tasks, including Online Rent Payments, Contract Agreements Management, Maintenance Requests, Bulletin Push Notifications, Landlord-Tenant Log Notes, Amenities Reservation, AI Agent (Ada) Integration, VoIP Intercom and Real-Time Chat communications. Adopted a Domain Driven Design approach to promote component reusability & guarantee bounded context and low-latency communications between respective microservices. Integrated third-party APIs for VoIP (Twilio), Payments Processing (Stripe, Paystack, Square) and System notifications. Performance observability & monitoring are handled via Prometheus and Grafana.

System Requirements

β¦Ώ NodeJS 20+
β¦Ώ β‰₯ 16GB RAM
β¦Ώ Hard Drive: β‰₯ 5GB of available storage
β¦Ώ Docker Desktop (for local container deployment)
β¦Ώ Amazon Web Services

System Design & Architecture

Microservice Architecture

** Private Repositories (Access available upon request) πŸ”

  1. API Gateway Microservice
  2. Notification Microservice
  3. Authentication Microservice
  4. Users Microservice
  5. RentalService Microservice
  6. RentOrderInvoice Microservice
  7. Host-Guest Log Notes Microservice
  8. Chat Microservice
  9. VoIP Intercom Microservice
  10. Maintenance Request Microservice
  11. Amenities Reservation Microservice
  12. Agentic AI Microservice
  13. ClientUI Microservice

Services Synopsis

API Gateway

  • Object Oriented::Server, Route, Controller methods
  • JWT Authenticated Client<->API Gateway connection via HTTP
  • Secure API Gateway<->*Microservice(s) connection via HTTP & Socket.IO (WebSockets)
  • AMQP (RabbitMQ) Message Broker
  • Helmet.js - HTTP Header Security
  • HPP.js - Parameter Pollution Prevention
  • XSS(Cross Site Scripting) Sanitization
  • Elasticsearch & Kibana - Logs Monitoring
  • Redis Database for In-Memory Datastore

Notification Microservice

  • Nodemailer SMTP Transport
  • Extensible EJS Email Templates
  • AMQP (RabbitMQ) Message Broker
  • Email Notification Event Message Queue Consumers()
  • Elasticsearch & Kibana - Logs Monitoring

Default Services Health Info Routes

// API Gateway Health
fetch('http:localhost:2400/api-gateway-health');
// API Gateway Info
fetch('http:localhost:2400/api-gateway-info');
// Notifications Microservice Health
fetch('http:localhost:2401/notifications-health');

Toolstack

TypeScript ReactJS Tailwind CSS Radix UI

πŸ–₯ Backend & APIs

Node.js Express GraphQL Axios Bcrypt CORS Helmet.js JSON Web Tokens Sequelize Nodemailer

πŸ—„ Databases & Caching

PostgreSQL MySQL MongoDB Redis

πŸ“‘ Messaging & Real-time

Socket.IO RabbitMQ

πŸ›  Logging, Monitoring & Analytics

Winston Logger Elasticsearch Prometheus Grafana Kibana

πŸ§ͺ Testing & QA

Jest Cypress Postman JMeter

🐳 DevOps & CI/CD

Docker Kubernetes Minikube Jenkins PM2

πŸ“ž Communication & APIs

Twilio Ada AI Agent

πŸ’³ Payments & Cloud Services

Flutterwave Stripe Square API AWS

References

πŸ“– Treatise on Distributed Microservices

About

Microservices-Based Residential Property Management Platform (TypeScript)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published