Welcome to the Dynamic Rent Adjustment System (DRAS), a web application for real estate property management, connecting owners with tenants, and processing rental applications.
Academic Project: This project is being developed as an undergraduate thesis in the Department of Informatics and Telecommunications at Harokopio University of Athens. It follows a layered backend architecture, feature-based frontend architecture, RESTful APIs, and role-based access control.
- Overview
- Academic Context
- System Architecture
- Core Features
- Role Management
- Project Structure
- Requirements
- Installation
- Configuration
- Usage Guide
- Infrastructure & Deployment
- Author
- License
DRAS is a full-stack rental management platform developed as an undergraduate thesis project. It manages rental properties, tenant applications, and administrative workflows.
The Dynamic Rent Adjustment System (DRAS) is the implementation component of an undergraduate diploma thesis.
The objective of the project is to design and develop a modern rental management platform that demonstrates the application of contemporary software engineering principles, including:
- Layered backend architecture
- RESTful API design
- Role-based access control (RBAC)
- Feature-based React architecture
- Relational database design
- Authentication and authorization
- External data integration
The project is an academic research contribution and a demonstration of building a full-stack web application.
The project consists of two distinct applications communicating over HTTP via a RESTful API:
- Backend (Spring Boot API): Java REST API handling data persistence, authentication, role-based authorization, and business logic.
- Frontend (React SPA): Single Page Application built with Vite and React.
- Listing Management: Owners can create, update, and track real estate properties with metrics (price per m², property type, amenities).
- Application Workflow: Tenants can apply for properties, and owners can review these applications.
- Dynamic Roles: Automatic role assignment (Owner, Tenant) based on user activity and profile creation.
- Admin Oversight: Administrative workflows for user management and manual listing approvals.
- Frontend UI: User interface compatible with desktop, tablet, and mobile devices.
| Role | Description |
|---|---|
| USER | Assigned by default upon account registration. |
| OWNER | Assigned automatically when a user creates an owner profile to list a property. |
| TENANT | Assigned automatically when a user creates a tenant profile to apply for a rental. |
| ADMIN | Full system access; oversees approvals, user roles, and platform integrity. |
/
├── backend/ # Spring Boot REST API Service
│ ├── src/main/java/ # Java source code and domain logic
│ └── src/main/resources/ # Application properties and configurations
│
└── frontend/ # React Single Page Application
├── src/features/ # Domain-driven feature modules (Auth, Listings, etc.)
├── src/shared/ # Centralized API client, shared hooks, and UI components
└── src/app/ # Global routing and context providers
To run this application, ensure you have the following installed:
- Java: JDK 21+
- Node.js: v18+
- Maven: 3.8+
- Database: PostgreSQL (or any relational DB for development)
- Clone the repository:
git clone https://github.com/AthosExarchou/dynamic-rent-adjustment-system.git
- For the Backend:
cd backend mvn clean install mvn spring-boot:run - For the Frontend:
cd frontend npm install npm run dev - Access the web application in your browser at
http://localhost:5173/
Configure your database and email credentials:
spring.datasource.url=jdbc:postgresql://localhost:5432/dras_db
spring.datasource.username=postgres
spring.datasource.password=your_passwordConfigure the backend API URL:
VITE_API_BASE_URL=http://localhost:8080/api- Create an account and log in.
- Visit the Listings page to view available apartments.
- Click Apply on a listing and complete your Tenant Profile to submit the application.
- Log in to your account.
- Navigate to Listings and click Submit Property.
- Fill out the property details and your Owner Profile.
- Once the listing is approved by an Admin, manage incoming tenant applications from your dashboard.
- Log in with an Admin account.
- Review and approve pending property listings.
- Manage users and assign or revoke roles as necessary.
Detailed instructions for deploying the Dynamic Rent Adjustment System (including Docker, Vagrant, and Jenkins configurations, as well as troubleshooting tips for VirtualBox Secure Boot) have been moved to their own dedicated documentation.
- Name: Exarchou Athos
- Student ID: it2022134
- Email: athosexarhou@gmail.com
This project is licensed under the MIT License.