$ show LiuXin-Developer/rightHouse
This repository is a full-stack, multi-client rental property management platform called 'rightHouse' (房适). It consists of three frontends: a Vue 3 + Arco Design admin panel (RH-admin), a uni-app landlord mobile app (RH-landlord), and a uni-app tenant mobile app (RH-tenant), all backed by an Egg.js Node.js REST API (RH-server) with MySQL, Redis, MinIO, and OSS storage. The system enables landlords to publish houses, tenants to search and apply for rentals, and administrators to manage users, houses, and lease applications. Key workflows include lease application with approval flow, maintenance requests, rental market listings with location-based search, and tenant reviews. The architecture is monolithic on the server side but with separate client applications sharing some UI components (uView UI) and a custom HTTP client (luch-request). The codebase is functional and covers the full rental lifecycle, but suffers from duplicated UI component libraries across mobile apps, mixed Vue 2/Vue 3 frameworks, hardcoded configuration values, and lack of automated tests. The admin panel uses modern Vue 3 tooling, while the mobile apps rely on the older uView 2.0 library. The server side includes JWT authentication, SMS notifications, and file upload capabilities. Overall, it is a solid but not exceptional implementation of a rental management system, useful as a reference for similar multi-tenant applications but with several areas of technical debt.
The LLM identified 4 files worth highlighting for reuse:
A custom HTTP client built on top of luch-request, providing a clean API with request/response interceptors, base URL configuration, and error handling. This component is self-contained and could be extracted into a standalone npm package for any JavaScript project needing a robust HTTP client with interceptor support. It demonstrates good separation of concerns and is not tied to the rental domain.
A reusable Vue 3 form component that encapsulates a common pattern for search/filter forms with configurable fields. It uses slots for flexibility and can be easily adapted to different admin panels. The component is well-structured and decoupled from the specific business logic, making it a good candidate for extraction.
A Vue component for selecting Chinese administrative divisions (province/city/district) with cascading logic. It is self-contained, handles data loading and user interaction, and could be reused in any Chinese location selection scenario. However, it depends on a large static cityCode dataset, so extraction would require bundling that data.
A generic chart wrapper component using ECharts, designed to be easily configured via props for different chart types. It encapsulates chart initialization, resizing, and destruction, making it reusable across multiple dashboards. The component is not tied to any specific business data and can be extracted as a standalone chart library component.