// Overview
Domistra is a full-stack property management application that enables landlords to manage tenant information, track utility expenses, monitor electricity consumption, and generate professional PDF invoices.
The system automatically fetches current EUR/RON exchange rates from Romania's National Bank and provides analytics dashboards for revenue and payment visibility. It supports configurable cost-sharing among residents for shared utilities.
// Architecture
The application uses a containerized microservices architecture with Docker Compose for easy deployment. The frontend is built with React and Ant Design, while the backend uses Perl's Dancer2 framework with JWT authentication.
// Key Features
- Tenant management with contract tracking and history
- Utility billing with proportional cost distribution
- Electricity meter consumption monitoring
- Professional PDF invoice generation (wkhtmltopdf)
- Automatic EUR/RON exchange rate integration
- Dashboard analytics with Recharts visualizations
- Dark mode support throughout the UI
- Docker-based deployment with Nginx reverse proxy
// Technical Highlights
Backend: Built with Perl 5 using the Dancer2 web framework and DBIx::Class ORM for robust database interactions. JWT-based authentication ensures secure API access. PDF invoices are generated using wkhtmltopdf.
Frontend: Modern React 18 application built with Vite for fast development. Uses Ant Design component library for a polished UI, React Router for navigation, and Axios for API communication.
Infrastructure: Fully containerized with Docker Compose. Nginx handles static file serving and API proxying. The Perl application runs on Starman PSGI server for production performance.
// What I'd Improve
- Add multi-property support for larger portfolios
- Implement automated payment reminders via email/SMS
- Add document storage for lease agreements
- Build a mobile app for on-the-go access